diff --git a/.bzrignore b/.bzrignore
index 4b6b0411a47..751b823f1ea 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -1759,3 +1759,8 @@ vio/viotest.cpp
zlib/*.ds?
zlib/*.vcproj
mysql-test/r/*.log
+client/mysql_upgrade
+unittest/examples/*.t
+unittest/mysys/*.t
+unittest/mytap/t/*.t
+unittest/unit
diff --git a/BUILD/compile-dist b/BUILD/compile-dist
index 6cc537cdf9c..dea29d4612b 100755
--- a/BUILD/compile-dist
+++ b/BUILD/compile-dist
@@ -52,7 +52,9 @@ fi
--with-federated-storage-engine \
--with-berkeley-db \
--with-innodb \
+ --with-yassl \
--enable-thread-safe-client \
--with-extra-charsets=complex \
- --with-ndbcluster
+ --with-ndbcluster \
+ --with-zlib-dir=bundled
make
diff --git a/BUILD/test-alpha-ccc b/BUILD/test-alpha-ccc
deleted file mode 100755
index c6f4abc0973..00000000000
--- a/BUILD/test-alpha-ccc
+++ /dev/null
@@ -1,11 +0,0 @@
-cd /usr/local/mysql
-bin/mysqladmin shutdown
-libexec/mysqld --basedir . &
-cd sql-bench
-rm output/*
-perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta"
-perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta" --log --use-old
-mv output/* output-ccc
-perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta" --fast
-perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta" --log --use-old --fast
-mv output/* output-ccc
diff --git a/Docs/Books/algor.eps b/Docs/Books/algor.eps
deleted file mode 100644
index b202f02d12a..00000000000
--- a/Docs/Books/algor.eps
+++ /dev/null
@@ -1,1419 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /home/mwagner/work/bk/mysql/Docs/Flags/algor.eps
-%%CreationDate: Sun Dec 31 14:27:48 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 254 383
-%%EndComments
-%%BeginPreview: 100 154 1 154
-% fffffffffffffffffffffffff0
-% fffffffffffffffffffffffff0
-% fffffffffffffffffffffffff0
-% ffffffffff7ffffffffffffbb0
-% fbbbefffbbfefffffffffffff0
-% fffffff7fffffbdeefffffeff0
-% f7ffbf7ffffbffffffbff7bf70
-% ffffffffbeefffffffffbffff0
-% f77bfffbfffff7fffffffffdf0
-% fffffffffdffbfbffefeff7ff0
-% dfffeefffffeffffdffffffbf0
-% fb77bff7b7effffdfffbfdfff0
-% ffde3ffffde3f7bfff7ff785d0
-% 6f9f3feff977bfffff3fbf38f0
-% fe8f3f7fff33fffffbfffe7ff0
-% 774f31eb5532f4d75fb6fcfed0
-% 7e6f2c18011222224e2034fff0
-% fee72e9d3d333332ff33bcdbf0
-% 760724bc3933b3321f331cffb0
-% fcf3259cb933337b8733bc7ff0
-% 79f32f9d39373332ef333e7df0
-% f5e12049391323324e339b02f0
-% 7effce77def7deddbfd7bfd7f0
-% ffffdf7fffffffffffffffffd0
-% 6fefce7ffffffffffffffffff0
-% feff61fdfff7dffffffffffef0
-% 7ffffff7ddeffdff7efffbb7f0
-% f7deffffffff7ffdfbfbefffd0
-% 7effffdfffffffeffffffffdf0
-% 7fffeefedffbffffffefffbff0
-% f7fbffffff7f6dfdbfff7bf770
-% ffdfbffffff7ffeffffffffef0
-% 6ffffff77ffffffffdfffffff0
-% 7efffd7dfdfdddfef7dff7eff0
-% fffbfe9cffb2fdfffb9eff7f70
-% 7befbcb6aab7b955af5bfffdf0
-% effffe689138a548b0affbf7f0
-% 7fbff6ad9dbe4d568bcffffff0
-% 7ffefc88aab2b2355893bfbfb0
-% fbffeffff7dfdecbff7ffffff0
-% ffbbffffffffff5ffffffff6f0
-% 7ffffffffffffdffffffffbff0
-% 77fffffddfdfbffff7fffdfff0
-% ff7fbdfffefdfbf6ffef7fffb0
-% 7ff7ffffffffffffffbffffef0
-% f7ffffefdfffffefeffffffbf0
-% 7f7f7dfffffdfbfffffffdeff0
-% 6ffdfffffeffefdefff6fffff0
-% fef7ffdf7ff7ffffff7fffffb0
-% fffff7fffbffffbff7fffddef0
-% 6dffdffdfffffffdfffff7fff0
-% 7fefffbfefdfbeffdf77bffff0
-% ffff7fffff7ef7ffffffffbbf0
-% 6bbdff7bdffffff7bdffffffb0
-% fffffbffffffeffffffdfffff0
-% 6f7ffff7bdedbeeef7b7edddf0
-% fffbefffffffffffffffffffd0
-% 7daebaaaaaad6aad5addb77ff0
-% 6ffffffffffffffbf7b76ddbb0
-% ff756bbadb55aab6fffffffff0
-% 6db4d62100000000008a515ff0
-% fffdabbaad250896555ce7ff70
-% 6f6d76a9a449084233d7565df0
-% ffeaa73521004210891cd57ff0
-% 7da44a400a5494842041215ff0
-% 77fae53ad08021294a9e6afbb0
-% ff6dbf51442208423195b5aff0
-% 6ffd653a8c4110862adad77ff0
-% fdaaeb51410842105154a55fb0
-% 6f644044100210008401287df0
-% ffedaf29429442290956576ff0
-% 6ebad2b98c2108c6318cb57f70
-% ffeeee914a210844335aebdff0
-% bb68a10a484000814914a67bd0
-% 77ca4a50108451100221095ff0
-% ff74a4a5420800054846657f70
-% 6feeeb198c6314c4318cd6dbf0
-% 7d6aa6b08a210846229a657ff0
-% ffd4a90450882109445292df70
-% 6da40049010000100100087bf0
-% ff6aed225a52a5214a56e55ff0
-% 6feca330842288c6308c537fb0
-% fd6ad62986631844118a556ef0
-% 6fc80088204842884a50927ff0
-% ff65504208800011000104dff0
-% 7de885292252aaa44a54517bd0
-% 6f6d6611845318c4118c465ff0
-% ffd242b14c229482310852ff70
-% 7d649404209021114452885df0
-% efd1004002444224000012fff0
-% 7f645529589294894a52445fd0
-% edcd4210c4231892318c4afdf0
-% 7f6042914a4892662100515ff0
-% 7bd51424014950084849087bb0
-% ef62008020120550800012dff0
-% bfc928214ac4b2252a42887ff0
-% 7d6843188c2998c6218c425b70
-% efe110014a622545280028fff0
-% 7f4288a4108aa4100022815ff0
-% 7de524002104a9208a40947bb0
-% ef600952ca7244c62011085ff0
-% 7fcc621086251aa5318c637f70
-% fb6101154a49b04a2900005df0
-% 6fca944010820510802114fff0
-% fea21084211454000402115fd0
-% 6fe945298e61916f5150847bf0
-% fd6c4210c8451842310c635fb0
-% 7fc125294932a5922140087ff0
-% eb6a884210840000840292ddf0
-% 7fd020842108a5284020047fd0
-% 77654a3148329483294aa95bf0
-% ff6c6310866318c6318c42ffb0
-% 6dd14529245294a80908525ff0
-% ff64104411040001002204fdf0
-% 77c94482204842104400915fd0
-% ff74a539865298c4199a467bf0
-% 6f6d67208c6314a6310c6adfd0
-% fdd0a4a55210042540d2a2ff70
-% 77650840008040000a00085bf0
-% efca528a52048229405552fff0
-% 7f7ce7308c6318c6259a655fb0
-% edd5542984510844310cd7fdf0
-% 7f5aa555520200894aa4a45ff0
-% dde452000088421000020affd0
-% 7b5aad5aa81000214a28e25b70
-% f7eee6918a6218c63196affff0
-% bf5ad5394c210844294cb55ff0
-% 76eca54541004102529466fdd0
-% efca4a50100a12100022485ff0
-% 7d75e2aa820040014a94d3ffb0
-% 6fdebb315c62088a32daa6bbf0
-% fb69d6aa842110462995fb7ff0
-% 6fdaa52949084210529e455fb0
-% ff64524200509081002052fef0
-% 6dd6e739528022122a8d445ff0
-% ff6d6dd58c25084452dad7fdd0
-% 6fdad731204108822956b55ff0
-% 7d6aaa548a8841145298a3dfd0
-% fffffffffffffffffff7fefdf0
-% ed55555555555555555eadbff0
-% 7ffffffffffffffffff7fbf7b0
-% 77ffffffffffffffff7ffffff0
-% ff7fdfeeef7dbf7bb7feefdef0
-% 6fedff7ffff7fdfffffffffff0
-% fdfffdffbffff7ffffb7ff7bd0
-% 7fdfb7fffbff7fefbdff6ffff0
-% efffffedffb7ffbefffffeef70
-% 7dbbffffdfffeefff7eefffdf0
-% ffff7ddffeff7ffdfffff7ffd0
-% 6dffeffffff7fdffdeffffdbf0
-% 7ff7ffff6dffffeffff7df7fd0
-% fbbffedfffefdffefbffffff70
-% 77ff7bfdffffffffffef7efbf0
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-239.288271 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 154 8
-% Transformation matrix
-[ 100 0 0 154 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404
-0404045c0c735c0c735c04745c0c735c0c735c04745c04745c0c735c0c735c0c735c046c540b6c
-540b6c5c0c73540b6c540b6c5c0c735c046c5004645c046c500464540b6c540b6c540b74540b74
-540b6c500464540b6c500464540b6c540b6c5004645c0c73540b6c540b6c5c15745c15745c1574
-5c1574540b74500464500464540b6c540b6c5c0c73500464540b74500464500464540b6c500464
-540b6c500464540b74540b6c540b6c540b6c540b6c500464500464540b6c540b6c5004645c0c73
-540b6c540b74540b6c500464540b6c500464500464540b6c4c086c5004644c086c5004644c086c
-4c086c540b6c540b74540b6c540b6c500464540b745004644c0b74500464540b744c086c55146c
-5415745415745415745c1574541574540b6c55146c541574040404
-0404045c0c7c5c0c7c5c0c735c0c73640c795c0c735c0c735c0c735c0c735c04745c0c73640c79
-5c046c5c0c735c046c5c0c73540b6c5c0c735c0c735c0c735c046c5c0c73500464540b6c5c0c73
-5004645c0c735c0c735004645c0c73540b745c0c73540b6c540b6c5c0c73540b6c540b6c5c1574
-5c1574540b6c540b6c540b74540b6c5c0c73540b74540b74540b6c5c0c73540b6c540b74540b74
-540b74540b6c540b6c540b6c540b6c540b6c540b6c540b745c0c73540b6c540b74540b6c540b74
-540b6c540b6c540b74540b74540b6c540b74540b74500464500464540b6c500464540b6c540b6c
-540b6c4c086c541574540b6c540b744c086c540b6c4c086c540b6c4c0b74540b6c540b6c4c086c
-5415745415745c157454157454157454157454157455146c040404
-0404045c0c735c0c735c04745c0c735c0c73640c795c0c735c04745c04745c0c73640c79540b6c
-5c0c73540b6c5c0c735c0c73540b6c5c0c735c0c73540b6c5c046c5004645c04745c0c73500464
-5004645c0c735004645c0c73541574540b6c540b6c540b6c5c0c73540b6c540b6c540b6c5c0c73
-540b6c5c1574540b74500464540b6c5c1574540b74500464540b6c540b74500464540b6c540b6c
-540b6c540b6c540b6c5c0c73540b6c540b6c540b6c540b6c540b6c5c0c73540b6c540b6c540b6c
-540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b74540b74540b6c4c086c540b6c
-540b6c540b6c540b6c4c086c5004644c086c5004644c086c4c086c5004644c086c540b6c540b6c
-55146c54157454157455146c5c1574541574541574540b6c040404
-0404045c0c73640c795c0c735c04745c0c735c0c73640c795c0c735c0c735c0c735c04745c0c73
-660b655c04745c0c73540b6c5c046c540b6c5c0c735c0c735004645c0474540b6c5004645c0c73
-540b74540b6c5c0c735004645c0c73540b74540b6c5c0c73540b6c540b6c5c0c735c1574540b6c
-540b6c540b6c540b6c540b745c0c73540b6c5c0c73540b6c5c1574540b6c540b74540b74540b6c
-540b6c540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b74540b6c
-5c0c73540b6c540b6c540b6c540b6c540b6c540b6c500464540b6c500464540b6c5004644c086c
-540b6c4c086c4c086c540b6c540b6c540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c
-540b6c5415745c1574541574541574540b6c55146c540b74040404
-040404540b6c5c0c735c0c736414745c0c7c5c0c735c0c735c0c735c04745c0474540b745c0474
-540b6c540b6c5c0c73540b6c5c046c540b6c5004645c0c735c0c73540b6c5004645c0c73540b6c
-5c046c540b6c5c0c735c0c73540b6c540b6c540b6c5c0c73540b74540b6c540b6c540b6c540b74
-540b6c540b6c540b74540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c540b6c5c0c73
-540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b6c
-540b74540b6c5c0c73540b6c540b74540b6c540b6c500464500464500464540b74540b6c540b6c
-540b6c500464540b6c4c086c540b6c4c086c540b6c540b6c540b6c540b6c4c086c540b6c540b6c
-540b6c540b74541574541574541574541574541574540b74040404
-0404045c1574640c795c0c735c15746414745c0c7c5c0c735c0c735c04745c0c735c04745c046c
-5c0c73540b6c5c0c73540b6c5c0c735c0c735c0c73500464540b6c540b6c5c0c735c0c73500464
-540b6c540b6c5c1574540b6c540b6c540b6c540b6c540b6c5c0c73540b6c540b6c540b745c1574
-5c0c73540b6c540b6c5c0c73540b6c540b6c540b6c540b6c540b74540b6c540b6c540b6c540b74
-540b6c540b6c5c0c73540b6c540b6c540b6c540b6c540b6c540b74500464540b6c500464540b74
-5c0c73540b6c540b6c540b6c540b6c540b6c540b74540b6c540b74500464540b6c540b6c540b6c
-4c086c540b6c4c086c540b6c540b6c4c086c540b6c540b6c540b6c540b6c540b6c55146c4c086c
-540b6c540b6c54157455146c540b74541574541574540b6c040404
-0404046414745c0c7c5c15745c147c6414745c0c735c0c735c0c735c0c735c04745c04745c0c73
-5c0c735c0c73540b6c5c0c735c0c735c0c73500464540b6c5c04745004645c046c540b6c500464
-5c0c7355146c5c0c73540b6c540b745c0c73540b6c5c15745c1574540b6c540b6c5c0c73540b6c
-5c1574540b74540b6c540b6c5c0c73540b6c540b6c540b6c540b6c5c1574540b6c540b6c540b6c
-540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c540b74540b74500464
-540b6c540b74500464540b6c540b74540b6c540b6c540b74500464500464540b6c540b6c540b6c
-540b6c4c086c540b6c540b7454157455146c4c086c540b6c4c086c540b6c540b74540b74541574
-541c6c541574540b6c540b7455146c540b74540b6c540b6c040404
-0404045c0c735c0c735c0c73641a7c641a7c5c147c5c0c735c0c735c15745c0c73540b6c540b6c
-5c0c735c046c540b6c5c0c735c046c500464540b745c0c735004645c046c5004645c0c73500464
-5c0c7c540b6c5c0c735c15745c15745c15745004645c0c735c15745c1574540b6c540b6c540b6c
-5c1574540b6c500464540b74540b6c540b6c540b6c540b7455146c540b6c540b6c500464540b6c
-540b6c5c0c73540b6c540b74540b6c540b6c5c0c73540b6c500464540b74500464540b74500464
-540b74540b6c540b6c540b74540b74540b74540b6c540b6c540b6c540b74540b6c4c086c540b6c
-4c086c540b6c540b6c5415745415744c086c4c086c4c086c540b6c4c086c55146c540b6c540b6c
-541574541574541574541574540b74541574540b6c541574040404
-0404045c147c6414745c0c73641a7c5c15745c15745c04746414745c0c735c0c735c04745c0c73
-540b6c5c0c735c046c540b6c5c046c5c0c735004645c0c735c0c735004645c0c73540b745c046c
-540b6c540b6c540b6c5c0c73540b745c0c73540b745004645c0c73540b6c540b6c540b6c5c1574
-5c0c73540b6c5c1574540b6c540b6c5c0c735c0c73540b6c5c157455146c5c0c73540b6c500464
-540b6c540b6c540b6c5c0c735004645c15745c0c73540b6c540b74540b74540b74500464540b74
-540b74540b6c540b6c540b6c540b6c540b6c540b6c540b74540b6c540b6c540b6c500464540b6c
-540b74540b74540b6c540b6c4c086c4c086c540b6c540b6c54157454157455146c4c086c4c086c
-540b6c55146c540b6c541574540b6c541574540b74540b74040404
-0404046414746414745c0c73641a7c5c15745c0c735c0c735c0c73540b6c5c0c73660b65540b6c
-640c79540b6c5c046c5c046c540b74540b6c5c0c735004645c046c5c04745c0c73500464500464
-5004645c046c5c0c735c1574540b6c5c15745c0c735c0c735c0c73540b6c540b6c5c0c735c1574
-5c1574540b6c5c15745c1574540b6c541574540b6c540b6c5c15745c0c73500464540b74540b74
-540b6c540b6c540b6c540b74540b745c1574540b6c540b6c540b6c540b74500464540b74500464
-540b6c540b74540b6c540b74540b6c540b74540b6c540b6c540b6c540b74540b6c540b74540b6c
-540b6c540b74540b6c540b6c55146c4c086c4c086c540b6c540b745c15744c086c55146c55146c
-4c086c540b7455146c540b6c540b6c540b6c541574540b6c040404
-0404045c147c641a7c641a7c5c15746414745c0c735c0c735c15745c0c735c0c73540b745c0c73
-5c0c735c046c5c046c5c0c73641474540b6c5c046c5c0474540b6c5c046c540b6c5c0c73540b74
-5c0474540b6c5c0c735c1574540b6c5c1574540b6c5c15745c0c735c15745c0c73540b6c540b6c
-5c147c540b6c540b6c540b6c5415745c15745c0c735c0c73500464540b6c540b6c5c0c73540b6c
-541574540b6c540b6c540b6c540b6c5c1574540b6c500464540b6c540b6c540b74540b6c540b6c
-540b74540b6c540b6c540b6c540b6c540b6c55146c4c086c540b6c540b74540b6c540b6c540b74
-541574540b6c4c146c5415745415744c086c540b6c540b6c540b74541574540b6c4c0b74440458
-4c086c4c086c5004644c086c54157455146c540b74540b74040404
-0404045c0c73641474641a7c5c2479641a7c5c15745c0c735c0c73885b87b986805c046c5c0c73
-5c0c735c04747c4b82c8b7a8e9b899872164500464540b6c5c046c540b6c5c0c735c046c540b6c
-540b6c5c15745c0c73540b6c5c0c735c0c73540b6c540b6c540b74540b6c540b6c7c4b82a37483
-6817695c0c735004645c157494788fcac4b7ca83775c0460540b6c5c15745c1574540b6c55146c
-5c15745c1e6c540b6c540b6c540b7455146c540b6c500464540b74540b6c540b6c540b6c500464
-5c0c73540b6c540b6c540b74540b6c540b6c540b746b3779874d7a540b6c540b6c540b74540b74
-540b6c540b6c540b6c540b6c540b6c4c086c54157455146c55146c540b6c55146c7c4b8294788f
-a48899a48899a37483885b87641c7454157455146c541574040404
-0404045c0c7c5c147c641474641a7c6414745c147c5c0c735c1574c7b8b7fad9a581205c540b74
-5c0c735c0c73540b74c19ba5fad9a5872164540b745c0474540b6c5c0474540b6c5c0c73540b6c
-5c0c735c0c735c0c735c157455146c540b6c540b6c5c0c735c0c73540b6c4c086ca69798f7d8b8
-81205c6b3779885b876817696b3779faecc9c78c825c0460540b6c5c1574641c74540b6c55146c
-5c157455146c540b6c540b6c5c0c735c1574540b6c540b74540b74540b6c5c0c73540b74540b74
-540b6c540b6c540b6c540b6c5c0c73540b6c55146cc7b8b7e9b8996f175c540b744c086c5c1574
-5c0c7355146c55146c55146c55146c55146c5c1574541574540b6c541c6cb8a8a7e7c7a594788f
-773c7c7c4b8294788fe8dab9ca83774c146c54157455146c040404
-040404641474641a7c641474641a7c6414745c0c735c0c73773c7ce9b899f9ebb6ca83775c046c
-540b745c0c734c086ca48899fad9a581205c540b745c04745004644c086c540b745c0c735c0c73
-5c04745c046c500464540b6c5c0c735c0c73500464540b6c540b74500464540b6c641c746a2976
-4c086cb8a8a7f8d094660b65541574e8dab9ca8377500464540b74500464540b745c0c73540b6c
-540b74540b74540b74500464540b6c541574500464500464500464540b74540b745c0c73500464
-540b74500464540b6c540b7455146c540b6c540b6c6b3779773c7c540b6c540b6c540b74500464
-540b74500464540b6c541574540b744c146c5c1574541c6c4c1575c7b8b7f7c7a87926664c086c
-540b74540b7444045894788fab5f70540b74541574541574040404
-0404046414745c0c7c641a7c641a7c6414745c147c5c0c73b89898ab5f70c8b7a8f8d0946f175c
-5c147c5c0c73500464a48899fad9a5781a66540c7c7c4b8294788fa37483773372641c74641474
-641a7c885b8794788f885b87681769641c74773c7c773c7c6a2976885b877733726b3779874d7a
-5c1464b8a8a7f7be9a69256b641c74e8dab9ca83776a297694788f874d7a681769540b745c1c7c
-6b37797733726b377994788f773c7c5c0c64672784885b87874d7a540b6c540b74540b746a2976
-885b87885b8779266655146c540b6c5415745415745c15746a2976540b6c5c157464257c6a2976
-5c1574885b87773c7c55146c540b74540b6c55146c4c086c867389faecc9ab5f704c0b7455146c
-55146c55146c540b745c2479641c7455146c5c15745c2479040404
-0404045c0c735c147c640c795c147c5c0c7c5c0c73773c7cd7a899781a66885b87f9ebb6ab5f70
-5c046c5c0c73540b74a48899fad9a5792666b89898c78c82773c7cc8a9a7f9ebb6c9a799b98680
-d9b899ab5f70773c7cc8b7a8e9b899ae7b74d9d5b8f7be9ad7a899faecc9c78c82c8b7a8fad9a5
-ab5f70d9d5b8f7d8b8c9a79992655fd8c7b8e6aa9dc78c82c8a9a7faecc9c89887681769885b87
-e8dab9e9b899c89887c8b7a8f9ebb6b98680b7898fc8b7a8f9ebb6c78c825c0c64885b87d7a899
-885b87a48899e9b899792666540b74540b74885b87d9d5b8e9b8996f175c867389e8dab9d9b899
-b99886c8b7a8f9ebb6d6998669256b5c15745415744c1575b8a8a7f9ebb68a2f624c157555146c
-54157455146c55146c5415745c157454157455146c5c1574040404
-0404045c0c7c6414745c147c640c795c147c540b74a48899ca8377640c79641c74d9d5b8e6aa87
-660b655c0c7c500464a48899fad9a5ab5f70f9ebb68a2f62540b74773c7cfaecc9ab5f70b9b6a8
-e6aa875c0460540b7464257cfaecc9ca8377b89898f9ebb68f416b7c4b82792666a48899fad9a5
-8a2f62b9b6a8f7be9a681769641a7cd9d5b8e8bb88781a664c1575a48899f9ebb68a2f624c086c
-c8b7a8fad9a57926664c086cb8a8a7fad9a58a2f624c086cac99a7fad9a58a2f62c7b8b7d88e7d
-500464500464ab5f706817695415745c15744c146cb9b6a8f7be9a6f175c541574d8c7b8f8d094
-7926664c157594788ffaecc98f416b5415745c157455146cc8b7a8f9ebb68f416b541574541c6c
-55146c5415745c15745415745c1574541574541574541574040404
-0404046414745c0c7c6414746414745c0c7c672784e7c7a5c8a886a69798b89898dad4a8f9ebb6
-99275e5c0c73540b74ac99a7fad9a5ab5f70f9ebb6ab5f70540b74885b87f8d0948f416be9d8c8
-ca83775c046c5c15745c1574d7c8a8e6aa87b89898f8d0946f175c540b74540b74a48899fad9a5
-81205cb9b6a8f7bb86660b655c1574e8dab9d699865c0c64540b6c94788ff9ebb68a2f62541574
-c8b7a8efad935c0c644c086ca48899f7be9a68176950046494788ff9ebb68a2f62a48899f9ebb6
-d9b899a4889977337255146c540b6c540b6c541574b8a8a7f7be9a6f175c55146cc7b8b7efad93
-660b654c0b747c4b82f9ebb6ab5f704c146c54157455146cc8a9a7f9ebb68f416b541c7c5c1574
-55146c541c6c54157455146c55146c5c1574541574540b74040404
-040404640c796414745c147c641a7c5c0c7ca48899d699866c1c7c6a29766c1c7c6b3779f9ebb6
-e59b87540b6c4c086cac99a7f8d094781a66a48899e9b899a3748394788f8f416b641c74f9ebb6
-e09e75660b65641474540b74c8b7a8e6aa87b89898f7be9a781a665c0c73500464a48899fad9a5
-872164c8b7a8efad935c04605c1e6cd9d5b8d69986660b65540b7494788ff9ebb68a2f62541574
-cac4a7e9b8995c1464500464a48899f7be9a6817694c0b7494788ff9ebb68a2f625c1574885b87
-a48899cac4b7f9ebb6ab5f70540b6c540b74540b6cb8a8a7f7be9a6817694c0b74c7b8b7efad93
-5c0c644c086c7c4b82faecc9ab5f704c086c5c157455146c867389faecc9d88e7d5c1e6c541574
-5415745c15745c15745c157454157454157455146c541574040404
-0404045c0c736414745c147c5c147c672784e7c7a599275e5c047c5c0c7c5c15744c0b74a69798
-f9ebb68a2f624c086ca48899fad9a56f175ca48899c898877926666414745c147c5c0c73b9b6a8
-fad9a581205c4c0b745c1574e8dab9ab5f70a48899f8d0946817695c147c540b7494788ffad9a5
-781a66b9b6a8efad93681769541c6ce8dab9d88e7d5c0460540b7494788ff9ebb699275e4c086c
-c8b7a8efad9364105c4c086ca48899f7bb86660b654c086c94788ff9ebb681205ca37483781a66
-4c086c541c6ce8dab9ab5f70500464541574500464ac99a7f7be9a6f175c4c0b74cac4b7e9b899
-5c0460540b747c4b82f9ebb6ab5f705415745c1e6c55146c541574b9b6a8faecc9ae7b74540b6c
-4c086c540b6c4c086c541c6c641c745c15745415745c1574040404
-040404640c79641474640c796a2976c19ba5e9d9a6ae7b747926665c0c7c5c0c73773c7cc8a9a7
-f9ebb6c89887874d7ad8b7a8fad9a5ab5f70c8b7a8f9ebb6d7c8a8d7c8a8dad4a8c89997874d7a
-d9d5b8d9b899874d7aa69798c78c82773372cac4a7fad9a5ab5f706414746a2976b9b6a8f9ebb6
-ab5f70b7898ff9ebb6d7a899a37483e8dab9e9b8998f416b50046494788ff9ebb6ab5f707c4b82
-d9d5b8e7c7a58f416b6b3779b8a8a7fad9a58f416b50046494788ff9ebb6ab5f70c5b699c78c82
-773c7c94788fd7a899792666540b6c540b6c6b3779cac4a7fad9a5874d7a773c7cd9d5b8e7c7a5
-773372540b6c885b87faecc9ca83776a297654157455146c541574541c6cb89898faecc9d9b899
-a8878694788f94788fb8a8a7a3748355146c5415745c1574040404
-0404045c0c7c5c0c7c5c0c7c6c1c7c6b37796a2976773c7c6c14745c0c735c0c7c64257c773c7c
-6a29766b37797733726b377964257c885b87c9a799a374837c4b827c4b82a48899f9ebb6ab5f70
-641c74885b87885b87773c7c540b6c773c7c773c7c6b37797c4b82641c746a2976773c7c773c7c
-7c4b82681769885b877c4b82773c7c773c7c7c4b826b37795c0c736a2976885b877c4b82773c7c
-7c4b827c4b827733727733727c4b82885b87874d7a5c0c7364257c885b87885b87874d7a94788f
-94788f885b87681769540b74540b6c540b6c773c7c885b87885b87874d7a874d7a885b87885b87
-874d7a55146c5c2479885b87885b8769256b55146c540b6c5415744c086c4c146c6b377994788f
-a69798a4889994788f874d7a5c15745c1574541574541574040404
-0404045c0c7c640c795c147c5c047c5c0474640c795c0c7c5c0c7c5c0c735c0c735c0c73540c7c
-5c0c735c04745c04745c0474500464ac99a7e6aa875c0460540b74540b74540b6cf9ebb6ab5f70
-5004645004645c0c735c046c540b6c5c0c73500464540b74540b745c147c5c0c73540b74540b74
-540b74500464540b74540b745c0c73540b6c4c086c540b745c0c735c0474540b74540b6c540b6c
-540b6c540b6c4c086c540b745004645004644c086c5c0c735004644c086c4c086c4c0b744c086c
-4c0b74500464540b6c540b6c540b6c540b6c4c086c540b744c086c4c0b744c0b744c086c4c086c
-4c086c540b74540b744c086c440458540b74541574540b74540b6c540b6c541574541574540b74
-4c0b74540b6c4c086c540b7455146c541574541574541574040404
-0404045c0c735c0c7c6414745c0c735c0c735c0c7c5c0c735c15745c0c735c0c735c0c735c0c73
-5c15745c0c735c0c735c0c73500464b89898f8d0946f175c50046450046494788fe9b89981205c
-540b745c0c735c0c735c0c735c0c735c15745c0474540b6c6414745c0c73540b6c540b6c540b6c
-5c0c73540b745004645c0c73540b6c5c0c735004645c0c73540b6c540b745c0c735c1574540b6c
-540b74540b6c540b74540b6c5c0c735c0c73500464540b6c540b74540b6c5004645c0c735c0c73
-500464540b74540b74540b6c540b6c4c086c540b6c5c0c73540b74500464500464500464540b74
-500464540b6c500464500464540b74540b74540b6c540b6c540b6c540b6c540b74540b74541574
-541574540b745c1574540b74541574540b6c5c15745c1574040404
-0404046414745c147c6414746414745c0c7c640c795c0c735c0c73540b6c540b6c5c0c735c0c73
-5c0c735c0c73540b6c5c0c735c04745c1c7cb89898d7aaa794788fa48899b7898f773372540b74
-5c0c735c0c735c0c735c0c735c15745c1574540b6c5c0c73540b6c5c0c73540b74540b6c5c046c
-5004645c0c735004645c0c73540b6c5c15745c1574540b74540b6c540b6c540b6c5c15745c1574
-5c1574540b74540b6c540b6c5c1574540b74540b74500464540b6c5c15745c0c73540b6c540b6c
-540b6c540b6c540b6c540b6c540b6c540b6c540b74540b6c540b6c540b74540b6c540b74540b6c
-540b6c4c086c540b6c540b74500464540b6c540b6c540b6c4c086c540b6c540b6c540b6c540b6c
-54157454157454157455146c541574541574540b74541574040404
-0404046414745c0c7c5c0c7c6414745c0c735c0c735c0c736414745c0c735c0c735c0c735c0c73
-540b745c0c735c0c73540b745c0c735c0c73540b6c6c1c7c6b37796a29765c04745004645c0c73
-5c0c735c0c735c0c735c15745c15745c0c735004645c0c735c1574540b6c5c0c73540b6c5c0c73
-540b745c0c735c0c73540b745c1e6c5c1574540b74540b6c5c1574540b745c0c735c1574540b6c
-5c15745c15745c15745c0c73540b74540b6c540b6c540b6c500464540b74540b6c540b745c1574
-540b74540b6c540b6c540b74540b6c540b6c540b74541574540b6c540b6c540b6c540b6c540b6c
-540b74540b6c4c086c540b6c540b6c540b744c086c541574540b74540b6c4c086c5c157455146c
-54157455146c5c15745c15745c1c7c54157455146c5c1574040404
-0404045c0c7c5c0c7c6414745c0c7c641474641a7c6414745c0c735c0c735c15745c0c73540b6c
-5c0c735c0c735c0c73540b6c540b6c5c0c735c0c73540b6c5c046c5c0c73540b6c5c04745c046c
-5c0c73540b6c540b745c15745c0c73540b6c5c0c735c0c735c0c735c0c73540b745c0c73540b6c
-540b6c540b6c5c1574540b6c5415745c15745c0c735004645c0c735c0c735c15745c15745c0c73
-540b6c540b6c540b74540b6c540b6c5c0c73540b74540b6c540b6c540b6c5c15745c15745c1574
-540b6c540b6c540b6c540b74540b6c540b745c1574540b74540b6c540b744c086c540b6c540b6c
-540b6c540b6c540b6c540b6c540b6c54157454157455146c540b6c540b74540b6c540b7455146c
-55146c5415745415745c24795c1574541574541574541574040404
-0404045c0c735c0c735c147c640c795c147c5c0c736414746414746414745c0c735c0c735c0c73
-5c0c735c0c73540b745c0c735c0c735c0c735c0c735c0c735c0c735c0c73540b6c540b6c540b6c
-5c0c735c0c736414745c0c73540b745c0c735c0c73540b6c5c0c73541574540b6c540b6c5c046c
-540b6c540b6c5c0c735c0c735c0c735c15745415745c15745c1574540b74540b6c5c0c73540b74
-540b6c540b6c540b6c540b6c5c0c73540b74540b6c540b6c5c0c73540b6c541574540b6c5c1574
-5c1574540b6c540b745c1574540b74540b6c540b6c540b6c540b74540b6c540b74540b74540b74
-540b6c540b74540b6c540b6c540b74540b6c540b6c541574540b6c540b6c540b74541574540b74
-540b7455146c5c2479541c6c5415745415745c15745c1574040404
-0404045c0c735c15745c0c735c0c735c0c735c0c736414745c147c5c147c5c0c735c0c735c147c
-5c0c735c0c735c0c735c0c73540b6c6414745c0c73540b6c540b6c5c0c73640c79640c79641474
-5c0c735c0c735c15745c157455146c5c15745c15745c0c735c15745c0c73540b74540b6c540b6c
-5c046c540b74540b6c540b6c540b6c540b6c5415745c15745c15745c15745c1c7c5c1574540b6c
-540b74540b6c540b6c540b7455146c540b74540b6c540b6c5c15745c0c735c1574540b6c540b6c
-541574540b6c540b6c5c0c73540b6c540b6c4c086c540b6c5c1574540b6c5415745c1574540b6c
-540b6c540b6c540b744c086c540b6c540b6c4c146c541574540b74540b6c55146c541574540b6c
-5415745415745415745c15745c1574541574541574541c6c040404
-0404046414746414746414745c0c7c5c0c735c0c735c0c7c5c0c735c0c735c0c73540b745c0c73
-5c0c73540b6c640c79540b6c5c0c735c0c735c0c735c0c735c0c735c0c73540b6c540b745c0c73
-5c1574540b6c540b74540b6c5415745c15745c0c73540b6c540b74540b6c540b6c5004645c0c73
-540b6c5c0c735c0c73540b74540b6c5c1574540b6c5c15745c15745c15745c157455146c5c1574
-540b6c540b6c5c15745c0c735c0c73540b6c540b6c540b6c5415745c15745c1c7c5c15745c1e6c
-5c1574541574500464540b6c4c086c540b6c540b6c540b6c540b6c540b6c500464540b745c1574
-540b6c540b745c1574540b74540b6c540b7455146c55146c540b6c540b74541574541574540b6c
-540b6c5c24795c24795c24795c2479541c6c5415745c1c7c040404
-0404046414745c147c6414745c147c5c0c735c0c735c0c735c0474540b745c0c735c0c735c0c73
-5c0c735c0c73660b65540b6c5c0c735c0c73540b6c5c0c73540b6c540b6c5c0c735c0c73540b6c
-540b745c0c735c0c73540b6c540b745c15745c15745c1574540b6c540b6c540b6c5c0c73500464
-5c0c73540b6c5c0c73500464540b6c5c15745c1574540b6c540b6c5c1574540b6c5c15745c1574
-540b6c5c0c73540b745c1574540b6c5c0c73540b6c5c0c73540b745c0c735c15745c15745c1574
-5c15745c15745c0c73540b6c540b6c540b6c540b74540b74540b6c540b74540b6c540b6c540b6c
-540b74540b6c540b6c540b6c540b6c540b6c541574541574540b6c540b6c540b745415744c086c
-55146c5c15745415745c15745c24795c1574541574541c6c040404
-0404045c0c736414745c0c7c5c0c7c5c0c735c0c7c5c0c73540b745c0c735c04745c04745c0c73
-5c046c5c0c735c0c735c0c735c04745c0c735c046c540b6c5c04745c0474540b745c046c540b74
-540b6c540b6c5c0c735c0c7350046454047c5c0c73540b745c046c540b6c5c046c540b6c5c0c73
-540b745c15745c0c73540b745004645c0c73540b6c5004645c0c735c0c735c15745c15745c1574
-540b6c5c0c73500464540b745c0c73540b6c540b745c0c735c15745c157455146c5c0c73541574
-5c1574540b6c5415745c0c73540b6c540b6c540b74540b6c540b74500464540b74540b74540b6c
-540b6c540b6c540b74540b6c540b6c4c086c55146c55146c540b7455146c540b6c55146c540b6c
-55146c54157455146c54157454157454157455146c541574040404
-0404045c0c735c147c5c0c7c6414745c0c735c147c5c0c735c0c735c0c735c0c735c0c735c0c73
-5c0c73540b6c5c0c735c04745c0c735c0c73540b6c5c0c73540b74641c746b37796b3779792666
-540b6c5c0c735c0c735c0c736b3779773c7c6414745c0c73540b745c0c73540b6c540b6c540b74
-540b745c1574500464540b74540b6c5004646a29767c4b8269256b5c0c735c157455146c540b6c
-500464540b746b3779773372540b745c0c73540b6c5c15745c1574540b6c5415745c15745c1574
-540b6c540b6c540b6c54157455146c55146c540b74540b745415746b377955146c540b6c540b74
-540b6c540b6c540b6c540b74540b6c540b6c54157455146c4c1575540b6c4c086c4c086c540b74
-55146c54157455146c540b6c55146c540b7455146c540b6c040404
-0404046414746414746414745c0c735c0c735c0c7c6414745c0c735c0c735c0c735c0474640c79
-5c0c73640c795c046c5c0c735c0c735c0c735c0c73540b6c540b747c4b82e7c7a5874d7ab8a8a7
-a37483500464540b74540b7494788fd69986500464540b74540b6c540b74500464540b74540b74
-540b74540b74885b876817694c0b74885b87b7898f7c4b82b7898f681769540b74540b745c0c73
-5c04744c086cb89898a374835004644c086c540b745c0474540b74500464500464540b74540b6c
-540b6c540b74540b6c540b7494788f8f416b4c086c4c086c6a2976d8b7a88a2f62540b74541574
-540b6c540b74540b6c540b6c540b74540b6c541574541574540b6c55146c54157455146c5c1574
-5415745415745c1574541574540b7455146c540b74541574040404
-0404045c147c6414745c147c5c0c736414745c15745c0c735c147c5c15745c0c735c0c735c0c73
-640c795c0c735c0c735c0c735c0c735c0c735c0c735c0c7c5004646b3779e9b89964105c94788f
-d88e7d640c797c4b82874d7a7c4b82d69986885b87874d7a540b6c773c7c885b876a2976773c7c
-874d7a874d7ad8b7a88f416b4c0b74b89898ab5f70540b6c69256b55146c773c7c874d7a681769
-5c24797c4b82c89997ab5f705c1e6c7c4b827733726817696a2976885b876b3779773c7c69256b
-5c24796817696b3779773c7c773c7c69256b5c1574885b87773c7cc9a7997733726b37796a2976
-540b6c55146c540b7455146c540b6c540b74541574541574540b74540b7455146c540b74541574
-5c1574541574541574541574541574541574541574541574040404
-0404045c15745c147c6414746414745c147c5c0c735c0c735c0c735c0c735c0c735c0c735c0c73
-5c0c73540b6c540b6c5c0c735c0c735c15745c15745c0c735c04746b3779d8b7a8b89898b7898f
-6a2976b7898f773372a48899d7a899d7a899885b87c8a9a7c89887ae7b74a37483d7a899c5b699
-c89887a37483d8b7a8ab5f70540b747c4b82c8b7a8c8a9a7a37483a37483a37483a48899c89887
-b98680773c7cc8a9a7b98680b7898f874d7ad7c8a8b7898fb99886885b87d9b899d9b8998f416b
-a48899ab5f70885b87b98680b5a898a37483a37483885b87a37483c89997a37483a374836b3779
-55146c541574540b6c540b6c540b6c540b6c540b6c55146c540b7455146c540b6c55146c540b6c
-5415745c1574540b6c5c157455146c541574541574541574040404
-0404045c0c735c0c735c147c6414745c0c7c640c795c0c735c0c735c0c735c0c73640c795c0474
-5c04745c0c735c0c735c0c735c0c736414745c15746414745c04746b3779e6aa9da37483d7a899
-773372e6b8ab64105c885b87f7c7a8d88e7d44045894788ff9ebb6b7898f7c4b82874d7ac89997
-8f416b4c086cc9a799792666540b7468176955146c6b3779d8b7a8fad9a5a374837c4b82b8a8a7
-d6998644045894788fb7898fc89997885b87a37483a37483d7a8997c4b82936f72a48899c78c82
-b7898fd7a899a3748369256ba69798d7a899a37483500464541574c9a799e7c7a5874d7a4c086c
-540b7455146c541574540b6c540b74540b6c540b74541574540b6c541574540b6c4c086c55146c
-540b6c541574540b6c540b6c55146c54157455146c55146c040404
-0404045c0c735c0c735c0c735c0c7c5c0c735c0c73640c795c0c735c15745c0c735c0c735c0c73
-5c0c7c5c0c735c0c735c0c735c0c735c0c735c0c73540b6c5c04747c4b82e7c7a579266694788f
-c9a799d9b899ab5f7094788fb98680d9b899874d7aa37483a37483c89997874d7a773c7cc19ba5
-ab5f705c0c73c8a9a7a37483540b74a37483a374837c4b82a88786b7898fc89887773c7c874d7a
-d7aaa7936f72c19ba5b98680a69798c8a886885b87885b87d9b899874d7a7733726b3779e7c7a5
-792666ac99a7ca8377540b6cb8a8a7c89887c9a799874d7a773c7cc5b699ae7b74c9a799ab5f70
-540b74540b6c541574541574541574540b6c540b6c540b744c146c540b6c54157455146c4c086c
-55146c5415744c086c55146c540b74541574541574541574040404
-0404045c0c735c0c735c0c73641474640c79640c795c0c7c5c0c736414745c0c735c0c735c0c7c
-5c0474540b6c540b745c0c73540b6c5c0c735c0c735c0c735c0c736c1c7c773c7c6a29765c0c73
-773c7c6a29767c4b82773372641474773c7c874d7a640c79540b74773c7c7c4b826a2976773c7c
-6b3779500464773c7c7c4b825c157464257c7c4b827c4b82641474540b747c4b827c4b82641c74
-6b3779885b87773c7c885b87c89887885b87b89898c78c826b3779885b876b3779541574773372
-540b6c6b37796a29765c15747c4b82773c7c773c7c885b87773c7c7c4b826a29766b37797c4b82
-540b6c540b6c540b6c540b6c540b6c540b6c540b744c086c540b6c4c086c540b6c540b6c540b6c
-5415745c1574541574540b6c541574541574540b744c146c040404
-0404045c0c7c5c0c735c0c736414745c0c7c640c796414745c0c73540b745c0c735c04745c0474
-5c0c735c04745c046c5c04745c0c735c04745c0c735c04745004645c0c735004645c04745c0474
-500464540b74540b745c04745c0c73540b744c086c5004645c0c735004645004645c0c73540b74
-5004645c0c7c500464540b745c15745c0474500464540b745c0c735c0c73540b74540b6c540b74
-540b7450046455146c6b3779c8999768176994788f874d7a500464540b74500464540b6c4c086c
-5c157455146c540b6c540b6c4c086c540b6c540b6c4c086c540b6c4c0b744c0b745415744c086c
-4c0b74540b6c4c086c540b6c4c086c540b6c540b6c4c086c540b6c540b6c540b744c086c55146c
-541574541574540b6c540b6c54157454157455146c541574040404
-0404045c147c5c0c735c0c7c5c04745c0c735c0c735c0c7c5c0c735c0c735c0c735c0c7c5c0474
-5c04745c0c735c0c735c046c5c04745c0c735c0474540b745c0c735c0c735c04745c04745c0474
-5c04745c046c5c04745c046c540b74540b6c540b6c5c1574540b745c0c735c147c5c0c735c046c
-540b745004645c0c735415745c0c73500464500464540b6c540b6c540b6c540b74541574540b6c
-540b6c5415745c157455146c6b37797c4b826b37795c04745c0c73540b6c540b74540b6c5c1574
-540b6c540b6c540b6c540b74540b6c540b7455146c55146c500464540b6c540b6c55146c540b6c
-500464540b74540b6c540b6c540b6c540b6c4c086c540b6c4c086c540b6c4c086c5c1574541574
-540b6c541574540b6c4c146c55146c540b6c5415744c146c040404
-0404045c0c735c147c640c795c0c735c0c73640c795c0c735c0c735c0c735c0c735c04745c0c7c
-5c0c735c0c735c0c735c0c735c0c735c04745c0c735c046c5c0c735c04745c0c735c0c735c0474
-5c0474540b74540b745c04745c0c735c0474540b745c0c735c1574540b6c5c15745c15745c0c73
-5004645c0c73540b745c15745c0c73540b74540b74540b6c540b6c540b6c5c0c73540b6c5c1574
-540b6c5004645c1574540b74540b74500464540b745415745c15745c1574540b6c5c1574541574
-540b6c540b6c540b6c540b74540b6c540b74540b6c5c0c73540b6c4c086c55146c540b74500464
-540b6c4c086c540b6c5004644c086c540b6c500464540b6c540b74540b6c540b6c540b6c540b74
-540b6c541574540b6c540b745415744c086c55146c541574040404
-0404045c0c735c147c6414745c0c7c5c0c735c0c73640c795c0c7c5c0c7c5c0c7c5c04745c0c73
-5c0c735c0c735c0c73540b745c0c735c0c735c04745c0c735c04745c0c735c0c735c04745c0474
-5c0474540b745c0474540b745c04745c04745c0c735c0c73540b745c0c73540b6c5c0c73540b6c
-5c0c735c0c735c0c735c0c73540b6c540b6c5c04745c15745c1574540b6c540b6c5c0c735c0c73
-5c15745c1574540b6c540b6c540b6c5c0c73540b6c540b6c5c15745c15745c15745c1574540b6c
-540b6c540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b7454157455146c540b74
-500464540b6c540b6c4c086c540b6c540b6c540b74540b74541574540b6c540b74540b6c540b6c
-540b6c540b6c4c086c541574541574541574541574541574040404
-0404045c0c735c0c735c147c5c0c7c5c0c735c0c735c0c735c0c735c15745c0c735c0c735c0c73
-5c0c735c0c73540b745c0c73540b745c04745c0c735c0c735c04745c0c735c0c735c0474540b74
-5c04745c04745c04745c04745c0474540b74540b745c0c735c1574540b6c540b74540b6c5c046c
-5004645c04745c0c73540b74500464540b74540b6c5c0c7355146c540b745c0c73540b6c540b74
-5c15745c24795c0c73540b6c540b6c540b6c540b6c540b74540b6c5c15745c15745c1574540b74
-5c15745c1574540b6c540b74540b6c540b6c4c0b74540b74540b6c540b74641c74541574540b6c
-540b74540b6c4c086c540b6c4c086c540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c
-540b6c4c086c55146c540b6c541574540b6c55146c55146c040404
-0404045c0c735c0c7c5c0c735c0c735c0c735c0c73540b745c0c735c0c735c0c735c0c735c0c73
-5c0c735c0c735c0c735c04745c0474540b745c04745c0c735c0c735c0c735c0c735c04745c0474
-5c0474540b745c046c540b74540b745c04745c0474540b745c1574540b745c0c735c0c73540b74
-540b74540b74540b745c0474540b745004645c0c735c1574540b74540b6c540b74540b6c540b6c
-5c0c735c15745415745c0c73540b6c540b6c540b6c5c0c735c0c735c15745c1574541574540b74
-540b6c540b6c540b74540b6c540b74540b6c540b6c540b6c540b6c540b6c541574540b6c540b6c
-540b6c540b6c540b6c4c086c500464540b6c540b74540b6c540b74540b6c4c086c540b6c540b6c
-540b74540b74540b7454157455146c541574540b6c541574040404
-0404045c147c6414745c0c7c5c0c735c0c735c0c736414745c0c735c0c735c0c735c0c73540b74
-5c0c73640c795c0c735c0c735c0c735c046c5c0c735c046c5c04745c0c735c04745c0c735c0c73
-5c04745c046c5c04745c04745c04745c0474540b745c0c735c0c735c0c73540b745c0c73540b74
-5c0474500464540b745c046c540b745c0c73540b745c15745c0c73540b6c540b6c5c0c73540b6c
-540b6c5c1574540b74540b74540b74540b6c5c0c73540b6c540b6c5c147c5c1574540b6c540b6c
-540b6c540b74540b6c540b6c540b6c540b74500464540b6c540b6c540b74540b6c55146c540b6c
-540b6c540b74540b6c540b74540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b74
-54157455146c4c086c541574540b6c541574540b6c541574040404
-0404045c1574641a7c641a7c5c0c735c0c735c0c735c0c7c5c0c735c15745c0c73540b745c0c73
-5c0c735c0c735c0c735c0c735c0c735c0c735c046c540b745c04745c0c735c0c735c0474540b6c
-5c0c735c0c735c0c735c0474540b745c0474540b74540b6c540b6c5c04745c0474500464540b74
-5c0c735c0c735c0474540b745c0474540b6c540b6c540b74540b6c540b6c540b6c540b6c540b74
-5c0c73541574540b6c5c0c73540b6c540b6c5415745c1574540b6c540b6c5c1574541574540b6c
-540b6c540b74540b74540b6c540b6c5c1574540b74540b74540b6c540b6c4c086c5c15744c146c
-5c1574541574540b6c540b74540b6c540b6c4c086c540b6c4c086c540b6c4c086c540b6c540b6c
-540b6c540b6c55146c540b6c540b7455146c541574541574040404
-040404641a7c641a7c641a7c64257c6414745c147c5c15745c0c735c0c735c0c735c0c735c0c73
-5c0c735c04745c0c735c0c735c0c735c0c735c04745c04745c0c735c04745c047c5c0c735c0c73
-5c0c735415745c1574540b74540b74540b74540b6c5c0c735c046c540b6c540b6c5c0c735c0c73
-5c15745c147c540b745c0474540b6c540b745c04745c046c5c0c73540b6c540b745004645c0c73
-540b6c540b6c5c0c73540b6c5c0c73540b74540b6c540b6c540b74540b6c5c0c73540b6c540b74
-540b6c540b6c5c1574540b6c540b6c540b6c540b6c540b6c540b74540b6c500464541574540b74
-55146c540b74540b6c540b6c540b6c540b6c540b6c4c086c540b6c54157455146c55146c4c086c
-540b6c4c1575540b6c541574541574541574541574541574040404
-0404045c15745c147c641474641474640c795c0c735c15745c0c735c15745c0c735c0c735c0c73
-5c0c735c0c735c04745c0c735c0c7c5c0c735c0c735c0c735c04745c04745c0c735c0c735c0c73
-5c0c735c046c5c0c735c046c5c04745c0c735c0c73540b6c5c0c735c0c735c0c735c15745c1574
-5c0c735c0c735c04745004645c0474540b74540b6c540b745c0c73540b6c540b6c5c0c73540b6c
-5c0c73540b745c0c735c1574540b6c5c15745c0c73540b6c5c15745c1574541574540b6c5c1574
-541574540b6c540b74540b74540b74540b6c540b6c5c15745c1574540b74540b6c540b7455146c
-540b6c540b6c540b6c540b74540b6c540b6c4c086c540b6c5c15744c086c5415744c146c55146c
-540b6c540b6c4c086c540b7454157454157455146c5c1574040404
-0404046414746414745c147c5c147c5c147c5c147c6414745c15745c0c735c0c735c0c735c0c73
-5c0c735c046c5c0c735c0c73540b745c0c735c04745c04745c0c735c0474540b745c04745c0c73
-5c0c735c0c735c0c73540b745c0c735c15745c0c735c0c73540b74540b6c540b745c0c73541574
-540b6c5c0c73540b745c0c73540b745c04745c0c735c0c73540b74540b74500464540b6c5c0c73
-5c0c73540b6c540b74540b6c5c0c735c1574540b74540b745c0c73540b6c5c1574540b74540b6c
-540b6c540b7455146c540b6c541574540b74540b745c15745c1574540b6c540b74540b74540b6c
-541574541574540b74540b6c540b74540b6c540b6c540b6c540b7455146c4c086c5415745c1574
-4c15754c0b745415744c086c4c146c55146c540b7455146c040404
-040404641a7c5c0c7c5c147c5c15746414745c15745c147c5c0c735c0c735c0c735c15745c0c73
-540b6c540b6c540b6c5c0c735c0474540b745c04745c0474540b745c0c735c0474540b745c0c7c
-5c047c5c0c73540b745c0c735c0c735c0c735c15745c157455146c5c0c735c1574540b6c5c0c73
-5c1574540b745c0474540b745c0c73540b6c5c0c73540b6c5c0c73540b6c5c0c735c15745c1574
-540b6c540b6c540b6c540b745c0c73540b74540b74540b6c540b74540b6c5c15745c1574540b74
-540b6c5c1574541574540b6c540b6c540b6c5c157455146c540b74540b6c5c15745c0c73540b74
-540b6c540b6c540b745c1574540b74540b6c540b6c540b74540b6c540b6c5415745c157455146c
-4c086c540b6c540b74540b6c540b6c540b7455146c541574040404
-0404046414746414745c1574641a7c641474641a7c5c147c540b6c5c0c735c15745c0c735c0c73
-6414745c0c735c04745c0c73540b6c5c04745c0474540b745c04745c046c5c0c735c04745c0474
-5c0c735c0c735c0c73540b745c0c735c147c5c0c735c0c73540b745c0c735c0c735c0c735c0c73
-5c0c735c0c73540b745c046c540b74540b74540b6c5c0c735c0c73540b6c5c1c7c5c147c5c1574
-5415745c0c735c0c73540b6c540b6c540b6c540b74540b74540b6c5c0c735c0c735c0c73541574
-5c15745c15745c15745c1574540b745c15745c1574540b6c540b6c540b74541574540b6c540b74
-55146c540b74540b6c5c1574540b74540b6c4c086c540b6c540b6c540b6c55146c541574541574
-5c157454157455146c5415745415745415745415744c1575040404
-0404046414745c0c7c641a7c64257c6727846414745c0c735c0c735c147c5c0c735c0c735c0c73
-5c147c5c0c735c0c73540b745c0474540b745c0c73640c795c04745c04745c0c735c0c7c5c0474
-5c0c735c0c735c0c735c0c735c0c735c0c735c0c73540b745c0c735c0c73540b6c5c0c73540b74
-5c0c7c540b745c046c540b74540b6c540b6c5c0c735c15745c0c735415745c15745c15745c1c7c
-5c15745c0c735c0c73540b74540b74540b74540b6c540b6c5c0c73540b74540b6c540b6c540b6c
-5c1574541574540b7455146c5c15745c15745c1574540b74540b6c540b6c540b6c540b745c1574
-540b74540b6c540b745c1574540b74540b6c540b6c55146c540b74540b74540b6c54157455146c
-5415745c157454157455146c54157454157454157455146c040404
-040404641a7c641a7c64257c64257c641a7c641a7c5c0c7c5c0c735c0c735c0c7c5c0c735c0c7c
-5c15745c0c735c04745c0c735c046c640c79540b6c5c0c735c0c735c046c640c795c0c735c046c
-540b745c0c735c0c735c0c73540b6c5c0c73540b745c0c735c0c735c0c735c0c735c0c735c0c73
-5c0c73500464540b745c0c735c15745c0c73540b6c540b745c0c7355146c5c15745c15745c1574
-5c1574540b745c15745c15745c0c735c0c73540b6c540b745c1574540b6c5c0c735c0c73541574
-5c15745c15745c1574540b74540b6c5c0c735415745c1574540b6c540b74540b6c540b6c540b6c
-5c15745c1574540b6c540b74540b6c540b6c540b6c540b74540b74540b74540b6c540b6c5c1574
-5c157454157454157454157454157455146c541574541574040404
-04040464257c5c1c7c64257c641c74641a7c5c15745c15745c15745c0c735c0c735c0c735c0c73
-5c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c15745c0c73
-5c0c735c15745c1574540b6c540b6c5c0c735c0c73640c795c0c73540b6c5c0c735c0c735c1574
-5c15745c0c7c5c0c735c04745c15745c0c73540b745c15745c15745c0c73641c745c15745c1574
-55146c5c15745c15745c1574540b745c0c73540b746414745c1574540b6c5c15745c157455146c
-5415745c15745c15745c1574540b6c5415745c15745c15745c1574540b6c540b6c5c1574540b74
-540b6c5c1574540b74540b6c540b6c540b74540b6c5c15745c1574540b74540b6c540b74541574
-54157455146c540b7455146c541574541574541574541574040404
-040404641a7c641a7c641a7c5c147c5c15745c147c6414745c0c7c54147c540c7c540c7c540c7c
-5c0c7c540c7c540b74540b74540c7c540c7c540c7c540c7c54047c54047c540c7c540b74540b74
-54147c5c0c7c540c7c540c7c540c7c540c7c540b74540b74540c7c540c7c540b744c0b745c147c
-540c7c540c7c540b74540b74540b74540b74540c7c54157454157454147c54147c5415745c1574
-5c1574541574540b744c0b7454147c540c7c540c7c54147c540b7454157454147c541c7c54147c
-5c1c7c5415745415744c0b744c0b7454147c54147c540b744c0b74540b74540b74540b74540b74
-4c0b744c0b74540b74540b744c0b744c086c4c15754c0b744c0b744c15754c0b74540b744c1575
-541574540b6c55146c541574540b6c54157455146c541574040404
-040404641a7c641a7c6414746414746414745c147c5c147c681769b0254eb0254eb0254eb0254e
-b0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254ea52357
-a52357b0254eb0254ea52357a52357a52357a52357a52357a52357a52357a52357a52357a52357
-a52357a52357a5235799275ea52357a52357a5235799275ea5235799275e99275e99275e99275e
-99275e99275e99275e99275e99275e99275e8d1d5c99275e99275e8d1d5c99275e99275e99275e
-99275e8d1d5c8d1d5c8d1d5c8d1d5c8721648d1d5c8721648d1d5c872164872164872164872164
-87216481205c872164872164781a66872164872164872164781a66781a66781a66781a66781a66
-5c1574541574540b74540b6c541574541574541574541574040404
-040404641a7c5c147c5c147c6414745c147c6414745c147c8d1d5ccd342a852415852415472415
-852415472415852415472415852415852415472415852415852415852415852415852415852415
-852415852415852415852415852415852415852415852415852415852415852415852415852415
-852415852415852415852415852415852415852415852415852415852415852415852415852415
-852415a82916852415a82916852415a82916852415a82916852415a82916b63024b63024852415
-a82916852415a82916a82916a82916a82916b63024a82916a82916a82916a82916b63024b63024
-a82916b63024a82916a82916b63024b63024b63024b63024b63024b63024b63024cd342adb3738
-81205c54147c541574541574541574540b6c5c157455146c040404
-040404641a7c641c745c147c5c147c641474641a7c54147c8d1d5ccd342a141c104d3d2c5d4c36
-5d4c366c545646423b5d4c36472f223d363051524b45535b30444339291f3d363030444345535b
-30444339291f3d363045535b51524b51524b472f2251524b45535b51524b40474b4d3d2c4d3d2c
-51524b51524b595c59675f464d3d2c5d4c3645535b40474b51524b4d3d2c51524b51524b51524b
-675f4651524b51524b45535b595c5951524b46423b40474b40474b40474b51524b51524b40474b
-40474b3d363039291f46423b30444340474b3d363039291f304443302f2a30444319271c302f2a
-304443302f2a3d3630302f2a302f2a3044433d3630302f2a39291f39291f19271c141c10b63024
-8d1d5c4c0b7455146c540b74540b6c55146c540b6c55146c040404
-040404641a7c64257c64257c6414746414746414745c147c8d1d5ccd342a39291f4d3d2c8c6540
-a37483b99886d9b899666178815a556f596f9588a7d9d5b85f6b976c5456666178a8b1c9dad4a8
-7472977a687994788fc6c2cae8bb88a48899b98680c7abb5d8c7b8e8bb88d8b9b7e6aa87f7be9a
-d8b9b7efad93f7c8c8f7c7a8f6c5b7d7aaa7d7aaa7f5eae7f9ebb6f8ecd8d8b9b7c8a9a7fcf8e7
-f7d8b8f8ecd8d8b7a8e6aa9df7c8c8f6c5b7f6c5b7c7b8b7e6b8abe6b8abe6aa87e6b8abe8dab9
-d8b9b7c19ba5c78c82c19ba5d8c7b8c8b7a894788f92655f82839bccd6c69897a86c5456815a55
-747297c6c2ca878aa77a687992655f7a6879c8a886a48899a37483675f465d4c364d3d2ca82916
-8d1d5c4c0b74540b74541574541574540b744c146c541574040404
-040404641a7c64257c641a7c641a7c5c147c5c147c5c147c8d1d5cb63024472f225d4c3619271c
-565b68a37357c78b4f5c495a40474b4b4b6492655fa373575c495a45535b4b4b647c6267ae845d
-6f596f565b687a6879be8b70d2966d7b7779595c59a48899d69986df9b5ac898877a6879c19ba5
-e6aa87e6aa87e6aa9d7b7779e6b8abe7c7a5f7be9ad8c7b8878283e8d8d8e9d8c8e9d8c8c6c2ca
-878283e7c8c8e6b8abf7c7a8c8a9a7878283f6c5b7d9b899e6b8abc89997878283d7aaa7efad93
-d9a887a48899696f7aa48899d9a887be8b707a68795a6889776a86c898877c6267535f83565b77
-605170c8a886936f72565b774b4b646c5456d2966dae7b74666178302f2a8c654046423bb63024
-8d1d5c540b745c15745c0c73540b6c541574540b745c1c7c040404
-040404641474641a7c641a7c6414746414745c147c5c147ca52357a8291639291f92655f45535b
-3d363092655fc78b4f92655f565b6840474b815a55ae845d40474b45535b4b5967675f46be8b70
-6051704b5967605170be8b70c8988778798859667894788fc78d61df9b5ab8989870706aa69798
-d88e7de8bb88d7aaa770706ad8b9b7e6aa9de7c7a5c8a9a77b7779e8d8d8d7a899e9d8c8d7c8c8
-7b7779e6b8abe6aa87e7c8c8b8a8a7878283e6b8abe6aa87e9c8b8a48899696f7ac89997f0ac7d
-d699867b7779596678a37483d69986ae7b74596678565b776f596fae98706c5456565b774b5976
-5c495aa373577c62674b4b64666178936f72c78d6192655f40474b616568a887865d4c36a82916
-8d1d5c4c1575540b74541574540b745415745415745c1574040404
-0404045c147c6414746414745c0c7c5c147c5c15745c0c7c8d1d5ca829163d3630878283936f72
-5d4c36827668d9a8878f8b977c62675c495a878283c8a88666617840474b565b77a59887c5b699
-776a86815a55878283b8a8a7c8b7a8a37483be8b70ac99a7ca8377df9b5ad69b98d69986d6acb4
-d7a899d7aaa7e6b8abe9c8b8f7c8c8d88e7dc89997f6c5b7f8ecd8f5eae7b98680c8a9a7f7c8c8
-f8ecd8f7c8c8c78c82d7aaa7f6c5b7f7c8c8f7c8c8d69b98d3bac4d7aaa7d8b9b7d8b9b7efad93
-c7abb5b7898fb7898f999cb5d8c7b8999cb57a68797c6267747297d7c8a882839b565b685c495a
-676a88c8b688867389605170936f729588a7d9b888766a4d815a55936f72a6979851524bb63024
-8d1d5c4c0b7454157455146c54157454157455146c5c1574040404
-0404045c15746414745c147c5c0c735c0c736414745c147c8d1d5ca82916472f22d9a887c78b4f
-c78d61c8a671ae9870d9a887ab7b45c78d61b6a788a88786c8a6718c6540c8a671c5b699a69798
-e8bb88c78d61e9b899b9b7b4b5a898e8bb88d2966de9b899d8b7a8d7a899e6aa87f0ac7dd9a887
-d7a899d69b98e09e75efad93c89887c89997c89997c89887e7c8c8ae7b74c89887c78c82a59887
-e7c8c8c78c82c78c82d69986c89887e9b899d7a899d7aaa7d7a899e6aa87f7be9ae6b8abd8b7a8
-d8b7a8e6aa87e6aa87e9c8b8c7b8b7cac4b7e9b899d2966de7c7a5a8a6a9cac4a7ae9870a37357
-d9b899988884c8b7a8be8b70a37357d9b899b89898d9b888d2966dd2966dc9a79940474bb63024
-8d1d5c4c15755c1574540b745415745c1574541574541574040404
-040404640c796414745c147c6414745c15745c0c7c5c0c7c8d1d5ca82916302f2a6c5456815a55
-92655fb99886b6a7886c54565d4c367a6879a48899b6a7887c6267815a557c6267a59887c8b688
-747297936f72936f72b8aab7c8a9a79588a7ca8377b98680c7b8b7d9a887b8aab7e6b8abd7a899
-c8a9a7d69986d7c8c8f7c7a8e9b899c8a9a7d69b98ebdae5f5eae7f6c5b7c89997c78c82e8d8d8
-f5ebf5f6c5b7c89997d69b98e7c8c8f7c7a8d7aaa7d7aaa7d7aaa7e7c8c8e6b8abc8a9a7d8b9b7
-ac99a7c8a9a7d88e7da48899cac4b7b8aab7a48899ae7b74988884d7c8a8a697987a687992655f
-936f72c5b699a69798815a556c5456776a86c9a799b5a898a37357936f7287828346423bb63024
-8d1d5c4c15755415745c157455146c54157455146c541574040404
-0404045c147c6414745c0c7c6414746414745c147c5c0c7c8d1d5cb630244724155c495a40474b
-6661788c6540a3735740474b4b4b64565b77675f46a373575c495a45535b4b5976a88786e09e75
-6f596f4b5967666178c9a799e09e7586738961656882839be6b8abf7bb86a488997a6879b8aab7
-e7c8c8f7bb86c8b7a8988884e7c8c8e7c8c8e7c8c8d8b9b7878283e7c8c8c6c2cad8b9b7e7c8c8
-878283e6c9d9e8d8d8e9c8b8c7abb57b7779d3bac4e7c7a5f7be9aac99a7787988c7abb5f8d094
-d7a899776a865a688994788fe9b899c78c82666178666178867389e8bb8892655f565b774b4b64
-5c495abe8b707a68795966784b59675c495ac78d6194788f7a68794b4b64815a554d3d2cb63024
-8721644c0b7454157455146c540b745c15745415745c1574040404
-04040467278464257c641a7c672784641a7c6414745c0c7c8d1d5ca8291639291f6c545640474b
-304443815a55a3735751524b45535b45535b5d4c36ab7b457a6879595c594b4b64a37357d2966d
-6f596f4b5967565b77d2966dd9a8877a68794b5967787988e6aa87f7c7a8988884565b688f8b97
-f7be9afad9a5b89898616568d3bac4e9c8b8f5eae7c7abb570706ae7c8c8e7c8c8e8d8d8c7b8b7
-616568c7b8b7f6d8c8f8ecd8a8a6a9696f7ad6acb4f7be9af6d8c882839b565b68b8a8a7f7c7a8
-e6aa9d696f7a4b5967a37483f0ac7dd88e7d6661784b5976936f72e09e7592655f4b5967696f7a
-936f72ab7b45675f464b59675966786f596fa37357815a5545535b565b68936f7246423bb63024
-8d1d5c541574541574540b6c54157455146c541574541574040404
-04040464257c6a2976672784641a7c641a7c5c1c7c541c7c8d1d5ccd342a39291f696f7a6c5456
-5c495a936f72c8a67178798851524b4b4b64827668d9b56ab8989892655f5c495aae9870c8b688
-696f7a936f72867389b6a788c9a799878283b998869588a7b5a898e9c8b8ac99a7d8b7a8b9b6c0
-c9a799e9c8b8c7b8b7e8d8d8d8d7dad69986d8b9b7f7c8c8ebdae5ebdae5d69b98c8a9a7f7c8c8
-e8d8d8ebdae5e59b87d8b9b7e7c8c8e8d8d8d6c8d5f7be9ac7b8b7c8a9a7cac4b7a9a7baf7c7a8
-a9a7baa69798b8989882839bdac896999cb5867389a37483676a88dac8968673896f596fa37483
-c19ba5e8bb88867389565b776c5456787988d9b8997a687960517060517077809751524bb63024
-8a2f624c1575541574541574541574540b745415745c1574040404
-04040464257c64257c641a7c641a7c5c1c7c6414745c1c7c99275ea829163d3630dac896ae9870
-c78d61c5b699a59887d9b8888c6540c78b4fc8a671c8a671efad5ec78b4fd2966db6a788ae9870
-e8bb88df9b5af7bb86b5a898b5a898f8d094f7be9af7d8b8b9b6c0b9b6a8fad9a5fad9a5f7c7a8
-d8b7a8d7aaa7f7c7a8faecc9e6b8abd8b7a8e6aa9dd8b7a8e9e7e8d6acb4d69b98d69b98d7aaa7
-e8d8d8d8b7a8d7aaa7d7aaa7e6b8abf6d8c8e9c8b8d8b9b7e9b899f7c7a8f7d8b8f7d8b8b9b6c0
-d7c8c8f7d8b8f8d094fad9a5b9b6a8cac4a7e9b899f0ac7ddac896b5a898c8b7a8d9b888c78d61
-e8bb88c8b688d9b888c78b4fa37357d9b899b5a898c8b688c78d61c9a799b9b7b440474bb63024
-87216454147c5c15745415745c15745415745c1574541574040404
-04040464257c641a7c641a7c641a7c5c147c5c157454147c99275ecd342a3d36306775886c5456
-5c495a988884c8a6716c5456815a55a37357d9a887c8a671776a86ae7b74936f72a59887b6a788
-7b7779ae7b74936f72a8a6a9c5b6999588a7d7a899a48899b9b6c0c7b8b7ac99a7e7c7a5c89997
-c7b8b7d9b899c6c2cae9e7e8d8b9b7d6acb4d7aaa7ebdae5f5ebf5f7c8c8d7aaa7d69b98e8d8d8
-f5ebf5e6b8abd8b9b7d7aaa7d8d7dae9e7e8c8a9a7d7c8c8c19ba5d7c8c8e7c7a5a69798ccd6c6
-a8a6a9c7abb5e9b899a59887cac4a79fa19ac89997be8b70988884d9b899b5a898ae7b74ae7b74
-988884c8b688d9b899ae7b7492655f787988c8b688988884815a557b7779999cb540474bcd342a
-8721645415745415745c1c7c5415745415745c15745c1574040404
-040404641a7c5c1c7c641a7c64257c6414745c15745c1c7c99275ecd342a39291f4b4b644b5967
-45535b675f46a373575c495a40474b867389a37357c78b4f7a68794b5967596678be8b70f0af71
-6f596f4b5967666178e9b899f6c77c778097565b77778097e9c8b8f8d09482839b696f7a999cb5
-f8ecd8f8ecd8b8aab7787988b9b6c0e8d8d8e9d8c8b9b6c0988884e6c9d9d8d7dae9c8b8d7c8c8
-988884d6c8d5f5eae7e9c8b8b8aab7787988b5c0d5f8ecd8d8b9b7787988676a88ac99a7faecc9
-d8c7b8676a885966789588a7fad9a5c8a886535f834b4b64936f72f0ac7db99886666178565b77
-776a86d2966db986808f8b97565b775c495ac78d6170706a4b5976565b777b777946423bb63024
-8721644c15755415745415745415745c2479541c7c541c6c040404
-0404045c147c641a7c641c745c24795c1574641a7c5c1c7c99275eb6302439291f565b684b5967
-4b4b64675f46ae845d60517045535b45535ba37357c78b4f7c62674b5967666178ae845ddf9b5a
-c78c82616568666178e6aa87e8bb88776a8645535b687798e9b899fad9a582839b4b596782839b
-f7d8b8f5eae7a9a7ba616568a9a7baf6d9d9f5eae7a8a6a9616568c6c2caf6d8c8f5eae7b9b6c0
-696f7ab9b6c0f6d9d9f5eae7ac99a7565b68b9b6c0f8ecd8e8d8d8696f7a4b5967a8a6a9fad9a5
-e9c8b8676a884b5967a48899f8d094e6aa9d6051707b7779c89997df9b5aca83775966784b5967
-867389d2966da373574b4b644b59676f596fae845d6c54564b5967565b775c495a39291fb63024
-8721644c15755c15745415745415745415745415745c2479040404
-040404641a7c64257c64257c641a7c64257c641c745c1c7ca52357a8291640474b7b777951524b
-565b68988884c8b688666178815a556c5456936f72c8a671867389ae7b74936f72ae7b74efad5e
-e6b8abd699867a6879ae9870c8a886778097c8a9a79588a7b5a898c8b7a882839bcbcdc0a9a7ba
-c9a799e9d8c8a9a7bac6d2e1c8c9d8d7aaa7e7c8c8d7c8c8ebdae5ebdae5d69b98d8b9b7e7c8c8
-e9e7e8d6c8d5e6b8abd7c8c8b8aab7c8c9d8a9a7bae9d9a6b9b6c0999cb5b9b6c09588a7e9d9a6
-999cb5878aa7b8aab782839bdac896a48899867389d7aaa7d8b7a8efad5e988884867389a37483
-747297d9b899936f726f596f7c6267776a86dac8968f8b974b4b6460517082839b5d4c36b63024
-8721645415745415745c15745415745415745415745c2479040404
-040404641a7c641a7c64257c64257c641a7c5c1c7c5c1c7ca52357a8291646423bd7c8a8a37357
-ae9870c5b699a69798d9b888c78b4fd9b56ac8a671a59887d9b56adf9b5adf9b5ad9b56ac89887
-f0af71f0af71f8d094b5a898b6a788f8d094fad9a5fad9a5c8b7a8b5a898fad9a5f8ecd8f8ecd8
-c7b8b7c7b8b7f7d8b8fcf8e7f6d8c8d8b7a8d8b7a8f7c8c8fcf8e7d8b9b7e6aa9dd7aaa7d8b7a8
-f8f6f7f6d8c8e6b8abd8b7a8fad9a5fcf8e7e9d8c8c7abb5c6c2caf8ecd8f8ecd8e9d9a6b9b6a8
-cac4b7f9ebb6fad9a5e9d9a6b5a898c8b7a8fad9a5f7bb86f7bb86d7a899c8a671efad5ee09e75
-d9b899a69798c8b688e09e75d2966ddac896b5a898c5b699ae845db6a788cac4b740474bb63024
-8a2f6254147c5415745c1574541574541574541c6c5c2479040404
-040404641a7c641c74641a7c641a7c641a7c5c157454147ca52357a829163d36308673896f596f
-6c5456988884c8b68886738992655f827668988884c8a6717c6267ae7b74d9a887e6aa87d69986
-988884d7a899a48899a69798b5a898878283d9b899a59887a8a6a9c8b7a8a9a7bad8d7daa9a7ba
-b8aab7c7b8b7a8b1c9d8d7dab8a8a7d8b9b7d8b7a8c8c9d8e9e7e8d8b9b7d6acb4d7aaa7d2dae7
-e9e7e8c7b8b7d8c7b8c19ba5c8c9d8dbe1e7ac99a7d7c8c8a8a6a9b5c0d5e8d8d89fa19acac4b7
-a8a6a9c8a9a7dac896988884d9b888a8a6a9c89997e6aa9da69798d9a887e6b8abe6aa87c78c82
-867389c8b688a59887a37483ae7b748f8b97c8b7a8a69798936f7292655f9fa19a45535bb63024
-8721644c15755c15745c15745415745415745c15745c2479040404
-040404641a7c5c1c7c5c147c5c1574641a7c641a7c5c1c7c99275eb6302439291f6c5456565b68
-4b5967936f72c78d617c62674b59674b4b64ae7b74efad5e7c626745535b94788fe09e75f0af71
-988884565b77676a88e8bb88f8d094867389565b68687798e9d8c8faecc9878aa7596678687798
-e9e7e8f5eae7878aa7696f7aa9a7baf2f4eaf8ecd89897a870706ab9b6c0e9e7e8e9d8c8a9a7ba
-7b7779a8b1c9fcf8e7e9d8c8999cb566617898a8c2f8f6f7e8d8d868779859667898a8c2fcf8e7
-d8c7b85a6889565b778f8b97f8d094d8c7b8676a88676a88a48899f7bb86e9b899a48899605170
-7a6879f0af71a88786535f83596678867389e6aa87936f724b597659667886738951524bb63024
-81205c5415745c15745415745415745c1574541574541574040404
-0404045c1c7c641a7c641a7c5c1c7c641a7c5c24795c1c7c99275eb630243d36307c6267565b68
-4b596792655fd9a8877a68794b5967605170be8b70f0ac7d7a6879565b684b5967b99886f7bb86
-867389565b778f8b97e8bb88f0af71e6b8ab70706a676a88e8dab9faecc97887a8596678687798
-d9d5b8f8ecd87b8db45966788896b8f6d9d9f2f4ea999cb5677588a8b1c9e8d8d8e9e7e89897a8
-696f7a999cb5f8ecd8e9e7e8878aa75a68898896b8faecc9c8c9d86877985966788896b8faecc9
-d8c7b8565b777b7779f7c8c8f7bb86f7bb868782834b59769897a8f8d094c78c824b59764b5967
-94788ff0af71b7898f596678565b77936f72d9a887a37483565b685966787c62674d3d2ccd342a
-8721645415745415745c15745c15745415745c15745c1c7c040404
-0404045c1c7c641a7c641a7c641a7c641a7c64257c541c7ca52357b6302446423b988884a37357
-936f72b5a898c8b7a8988884ae7b749888848f8b97b5a898988884c89887a88786988884c8a886
-9897a8d9b899d9a887ca8377df9b5af7c7a8e9d8c8a69798988884c8b7a89897a8d8d7daa8b1c9
-b5a898b9b7b49897a8d2dae7a8b1c9c8b7a8c7b8b7b9b6c0dbe1e7c8c9d8d8b7a8d8b9b7c6c2ca
-dbe1e7b5c0d5d7c8a8b9b6c0b9b6c0dbe1e7a8b1c9d7c8a8999cb5a8b1c9c8c9d88a95a9dac896
-8f8b97a9a7baf6d8c8f6c5b7f0af71b99886c7abb5d8b7a8878aa7d8b7a8878283a88786b89898
-867389cac4a78f8b97a37483a3748382839bd3bac4999cb5936f72a374839897a846423bcd342a
-781a664c15755c15745c1c7c5c1574541574541574541574040404
-040404641a7c5c1c7c641a7c641a7c5c1574641a7c5c1c7c99275eb6302451524bdac896c78d61
-d2966dc8b7a8b5a898d7c8a8e09e75f0af71b6a788b5a898e8bb88f6c77cf6c77cc8b688a59887
-f6c77cf6c77cefad5edf9b5ad2966defad5ef6d8c8f9ebb6b5a898a59887e9d9a6fcf8e7faecc9
-b9b6a8b9b6a8f9ebb6fcf8e7f8ecd8c7b8b7c7b8b7faecc9f2f4eaf6c5b7d8c7b8d8b9b7e9d8c8
-f2f4eae9d8c8c7b8b7c7b8b7fcf8e7fcf8e7e9d9a6acb4accac4a7fcf8e7fcf8e7e9d9a6b5a898
-c8b7a8faecc9f7d8b8efad5ef0ac7de09e75f0af71fad9a5e7c7a5a59887c8b688f6c77cf8d094
-e9d9a6b5a898cac4a7f7bb86e8bb88d7c8c8ac99a7d8c7b8d69986d9a887cac4a746423bb63024
-7926665415745c15745415745c15745c15745415745c1574040404
-040404641a7c641c745c1c7c641a7c641a7c5c15745c1c7ca52357b6302446423b988884936f72
-936f72ac99a7d9a887867389ae7b74827668a69798d9b888778097b99886a37483988884c8b688
-696f7ab99886f7c7a8f0ac7dd2966db9b6c0c6c2ca7b8db4b89898c8b7a8687798b8aab7878aa7
-a9a7bad7c8a88896b8c8c9d88a95a9c6c2cac7b8b798a8c2b5c0d5a9a7bad7c8c8c5b699a8b1c9
-b5c0d58896b8d7c8c8b9b7b48896b8b5c0d58a95a9d9d5b89fa19aa8b1c9b9b6c082839bdac896
-9897a898a8c2ebdae5c7abb5df9b5aefad93f6c5b7c9a7998f8b97d9b56a878283a48899b89898
-82839bd7c8a8a4889994788fae7b74878aa7d8b9b7a69798a37483ae7b74ac99a746423bcd342a
-8721644c15755415745415745415745415745415745c1574040404
-040404641a7c641a7c641a7c641a7c641a7c5c1c7c5c1c7ca52357a829164d3d2ca37357595c59
-565b68be8b70df9b5a92655f4b5967565b77c89887f6c77ca374834b5967596678d9b899f6c77c
-8782834b5967b89898f7d8b8f7d8b8b8aab7565b68778097e8d8d8fcf8e7878aa745535b687798
-e9e7e8fcf8e78a95a9565b688896b8f8f6f7dbe1e77b8db46661788896b8dbe1e7d8d7da8a95a9
-565b688896b8eaebf6f2f4ea7887a84b596798a8c2fcf8e7d8d7da5a6889565b6898a8c2f8ecd8
-dbe1e75a6889696f7ab5c0d5f7d8b8f6d8c8a697984b5967b89898f6c77cd8b7a8565b774b5976
-ac99a7f8d094c89887535f834b597694788fe6aa87b98680596678676a88a374833d3630cd342a
-781a665415745c157454157454157455146c5415745c1574040404
-040404641a7c641a7c5c1c7c641a7c64257c5c1c7c5c1c7ca52357a829163d3630a887867b7779
-70706aae7b74e6aa87988884616568596678c89887f8d094878283565b685a6889d8b7a8f8d094
-878283565b685a6889e8dab9f7d8b87887a8696f7aa8b1c9e7c7a5e7c7a5f6d9d98782835a6889
-d9d7c8f8ecd87887a85966787887a8e9d8c8ebdae56b7eab5966787b8db4ccd6c6d2dae77887a8
-5a68897887a8d8d7dae9e7e86b7eab5a68898896b8f8ecd8d7c8c8596678988884ebdae5f7d8b8
-e8d8d8a9a7ba59667898a8c2f8ecd8d8c7b8565b774b5976b5a898f6c77cd8b7a85a6889596678
-a48899f7c7a8c8a9a75a6889696f7aa37483e09e75b7898f616568696f7ab986803d3630b63024
-87216454147c541574540b6c5415745c15745c1574541574040404
-040404641c74641a7c641a7c5c1c7c641c7464257c5c2479a52357a8291651524bc89887c78d61
-b98680b99886c8b7a8a59887c89887b89898ac99a7c8b7a8a69798d9b899a8a6a99fa19ac5b699
-a69798d8c7b89fa19ab6a788c8b688a8a6a9ebdae5d7c8c8d69986f0ac7df6c5b7e9e7e8a9a7ba
-b5a898b9b6a88a95a9d2dae798a8c2b9b6a8acb4ac999cb5b5c0d598a8c2b8a8a7cac4b7a8b1c9
-c6d2e198a8c2cac4a7b9b7b498a8c2dbe1e79897a8dac8969fa19aa8b1c9e9e7e8f7c8c8f0af71
-d7a899e8d8d8c8c9d88f8b97c5b699988884b9b7b4c6c2ca878aa7d9b56a988884b8a8a7c7b8b7
-9897a8d7c8c8ac99a7b7898fd7aaa7ac99a7d9b899c19ba5b98680b7898fb8aab746423bcd342a
-872164541574540b6c5415745c1574541574541574541574040404
-0404046414745c15745c15746414745c1c7c641a7c541c7ca52357a829165d4c36c5b699d2966d
-c78b4fd9a887b5a898e9b899f0ac7df7bb86c8b688b8a8a7e8dab9f8d094f8d094c5b699b5a898
-dad4a8f8ecd8fad9a5b5a898b6a788e9d9a6f8ecd8f7bb86e09e75e09e75d2966df8ecd8faecc9
-c5b699b5a898e8dab9fcf8e7faecc9aab4b8cac4a7faecc9dbe1e7f8ecd8c7b8b7b9b6c0e9e7d7
-dbe1e7e8dab9c8b7a8b9b7b4f8ecd8fcf8e7e9d9a6b5a898b9b6a8f8ecd8faecc9df9b5ad88e7d
-e09e75e8bb88f8ecd8e9d9a6a59887c5b699f9ebb6faecc9e9d9a69fa19acac4a7fad9a5f9ebb6
-e9c8b8b8a8a7d8c7b8f7c7a8f7be9ae6b8abc19ba5c9a799d88e7dd9a887c8a9a746423bb63024
-79266654147c541574541574540b6c5415745c1574541574040404
-0404045c147c641a7c5c147c5c15746414745c1c7c5c1c7ca52357a829164d3d2cc89887ae7b74
-b98680c8a9a7d69986a48899b99886a88786a9a7bad9b8998f8b97b89898878283a8a6a9dac896
-878aa7a8b1c97887a8b5a898b6a788747297b9b6c0f6d9d9e6aa87d2966de8d8d8d6c8d57b8db4
-b5a898cac4b777809798a8c27b8db4cac4b7b9b6c08896b8a8b1c97b8db4c6c2cab9b7b47b8db4
-a8b1c97b8db4cbcdc0b9b6a87b8db4a8b1c9687798d9b8999fa19a9897a8ebdae5d3bac4df9b5a
-e6aa9df5eae7c6c2ca778097dac8968f8b97a9a7bab5c0d58a95a9d7c8a88f8b97ac99a7c9a799
-9897a8d8c7b8ac99a7c8a9a7d69b98ac99a7d7aaa7c19ba5c89887c78c82b8a8a740474bcd342a
-781a665415745c157454157454157455146c540b745c1574040404
-0404045c1574641474641a7c5c147c5c147c5c1574541574b0254ea82916472f22c78d61595c59
-70706ac89887f0af71be8b70565b68696f7ae6b8abf8d094ae98704b5967677588f6d8c8faecc9
-a9a7ba45535b677588e9e7e8f8ecd8778097565b68b8a8a7f6d9d9f6d8c8c8c9d8616568677588
-e9e7e8e9e7e87887a84b59677887a8dbe1e7c6d2e16175a65966787887a8d2dae7d2dae7687798
-4b59767b8db4dbe1e7d8d7da6b7eab565b688896b8e9e7d7dbe1e75a6889787988dbe1e7e7c8c8
-f8ecd8b8a8a7565b6898a8c2fcf8e7d8d7da5a6889565b77b5c0d5faecc9d8c7b8596678565b77
-b8a8a7fad9a5d8b7a8677588676a88c8a9a7efad93d7a8997a6879787988c898873d3630b63024
-7926664c15755c15745c1574540b6c5415745415745c1574040404
-0404045c1c7c6414745c15745c1574641a7c641a7c541c7ca52357a829164d3d2cd2966d988884
-936f72d2966de09e75d8b7a87b7779787988d9a887f7bb86ac99a77b7779778097d7c8a8f8ecd8
-9897a8596678687798ccd6c6faecc96b7eab5966785a6889d9d7c8f6d8c8687798696f7ad7c8c8
-e7c8c8d8b7a8e8d8d8867389687798d8d7dac6c2ca6175a65a68896b7eabccd6c6c6d2e16175a6
-5a68896175a6d9d7c8c6c2ca5a68898f8b97e8d8d8d9b899e8d8d8c7b8b7565b68999cb5f8ecd8
-c8c9d8565b775966789897a8f9ebb6d7c8c85a6889596678b9b6c0f8ecd8d6c8d5676a88677588
-c9a799f7be9ae7c8c8787988878283d7a899e59b87d7aaa77b777994788fd88e7d4d3d2ccd342a
-781a66540b745c15745c157454157455146c5415745c1574040404
-040404641a7c5c147c6414746414745c1574641a7c5c1c7ca52357a8291646423bd88e7dd2966d
-d9a887b89898c89997c89887f0ac7dd9b899b5a898c9a799a69798e8dab9c6c2cab9b7b4cac4b7
-a8a6a9d8d7dab5c0d5a8a6a9b8a8a79fa19ae9e7e8a8a6a9a8a6a9b5a898999cb5dbe1e7f6d9d9
-e59b87d88e7de9c8b8c6d2e19897a8c5b699c5b69998a8c2c6d2e198a8c2b9b6a8aab4b898a8c2
-b5c0d5999cb5b9b6a89fa19a98a8c2c6d2e1e9c8b8d88e7de6aa9df7c8c8c6d2e18f8b97c5b699
-988884c6c2cad2dae78896b8d9b56aa59887b5c0d5c6d2e1999cb5d7c8c8a8a6a9c7b8b7d8d7da
-b8aab7d9b899b8aab7d7aaa7e7c8c8c7abb5c89997c7abb5d69b98d7aaa7c7abb5472f22cd342a
-781a665415745415745415745415745415745c1574541574040404
-0404045c1574641c746414745c1c7c641474641a7c54147ca52357a829165d4c36b99886c8a671
-e09e75c89887c8a886d7a899e8bb88f0ac7dd7a899c9a799e7c7a5f8ecd8f7d8b8d8b7a8c8b7a8
-e9d8c8fcf8e7faecc9c5b699b9b6a8e8dab9fcf8e7f9ebb6c5b699b5a898e9d9a6e9e7e8d69986
-e09e75e59b87ca8377d6c8d5e9d8c8b6a788c5b699e8dab9dbe1e7e9d8c8c8b7a8b9b6a8e9e7d7
-dbe1e7dad4a8b5a898c5b699faecc9d3bac4c78d61e59b87d2966dd9a887f5eae7d7c8a8a69798
-cac4a7f9ebb6fcf8e7e9d9a6b9b6a8cac4a7faecc9fcf8e7e9d8c8b9b7b4d8c7b8f8ecd8faecc9
-e6b8abd7aaa7d8b7a8f7c7a8efad93d69b98c8a9a7c89997e6aa87d69986c898873d3630cd342a
-7926664c0b745c15745c15745415745415745c15745c2479040404
-0404045c1c7c641a7c5c1c7c6414745c1c7c5c1c7c54147cb0254ea829164d3d2ce6aa9dd9a887
-d69986e6b8abbe8b70d7aaa7d7a899c9a799d6acb4d9b899ac99a7b9b6c0a8a6a9b8aab7e7c7a5
-878aa7a8b1c98a95a9cac4b7dac8968896b8a8b1c97887a8a8a6a9dac896747297b9b6c0f6d9d9
-e6aa9dd88e7df6d9d9a8b1c95a6889b5a898b9b7b468779898a8c26b7eabcbcdc0b9b6a86b7eab
-7b8db45f6b97d7c8a8a8a6a9676a88c6c2caf7c8c8ca8377e6aa9debdae598a8c2687798dac896
-9fa19a8896b8c6c2ca8a95a9d9d5b8b5a898b5c0d5b5c0d58896b8e9c8b8b8a8a7c8c9d8d6c8d5
-a9a7bad7aaa7d8b7a8d8b9b7e9b899c8a9a7c89887e6aa9de6b8abefad93d7aaa73d3630cd342a
-781a66541574541574541574541574541574541574541574040404
-040404641c7464257c641a7c641a7c5c15745c15745c1c7cb0254ea829165d4c36e09e75766a4d
-7c6267e9b899e09e75e8bb88595c597b7779e8dab9f6d8c8c7b8b7595c59787988dbe1e7f8ecd8
-b9b6c0565b68687798f8f6f7fcf8e7a9a7ba4b5967687798e9e7e8e9e7d78a95a9616568b8aab7
-d6c8d5c6c2cab9b6c0616568778097d8d7dac8c9d8677588565b686b7eabc6d2e1b5c0d5687798
-4b59678a95a9c6d2e1d2dae76775887b7779c8c9d8c7b8b7d6c8d5a8a6a9565b6898a8c2f8ecd8
-d8d7da677588596678a8b1c9fcf8e7e9e7d7677588676a88c6d2e1fcf8e7d6c8d5787988696f7a
-d6c8d5f6d8c8e7c8c894788f7b7779d8b9b7efad93e6b8ab867389988884d7aaa73d3630db3738
-781a664c1575540b6c55146c5415745c157455146c5c1c7c040404
-040404641a7c64257c641a7c641a7c641a7c5c15745c147cb0254eb6302451524be6aa87b99886
-b99886e6aa87c8a671e6b8aba88786a69798e6b8abe9c8b8c6c2ca87828382839bd8b9b7f7d8b8
-a8b1c9787988778097ccd6c6fcf8e78896b8677588687798ccd6c6e9e7d76b7eab676a885a6889
-c8c9d8d9d5b8565b77878283e8d8d8c89997c7b8b7dbe1e77b77795a6889ccd6c6b9b7b44b5967
-8f8b97eaebf6c8a9a7c7abb5e6c9d9696f7a687798e9e7d7b9b6c0535f835a68898896b8e9e7d7
-d2dae75f6b97596678a8b1c9fcf8e7e9e7e8687798677588c6c2caf6d8c8dbe1e77780978f8b97
-d7c8c8e9c8b8e8d8d8a48899988884e6aa9de09e75e9c8b8a37483a88786e59b8739291fcd342a
-7926665415745415745c15745415745415745415745c1574040404
-040404641a7c672784641a7c5c1c7c641a7c5c1c7c5c147cb0254ea829165d4c36d2966df0ac7d
-e8bb88c89887b98680c89887fad9a5d8c7b8c19ba5d7a899d7a899e8d8d8d8d7dac9a799d7a899
-b89898e9e7d7c6d2e1b9b7b4c7b8b7aab4b8e9e7e8b5c0d5b9b7b4cac4b7acb4acc6d2e1a9a7ba
-a8a6a9b6a7889fa19ab5c0d5d6acb4d88e7dd7a899e7c8c8a8b1c982839bb6a788a598879897a8
-b5c0d5d3bac4d69986d69986e7c8c8b5c0d5988884c5b699a59887aab4b8c6d2e198a8c2d7c8a8
-a8a6a9b9b6c0dbe1e798a8c2d8c7b8b8aab7c6c2cadbe1e7b8aab7d8b7a8c7abb5d7c8c8ebdae5
-d3bac4d7aaa7c7abb5e9c8b8e8d8d8d7aaa7b98680d7aaa7f7be9ae9c8b8d69b98472f22cd342a
-7926664c15755415745c15745415745415745c1574541c7c040404
-040404641a7c6414745c15745c1c7c641a7c5c1c7c5c147cb0254ea8291651524bb6a788e09e75
-d2966dc78d61c78c82c9a799e8dab9e6aa87d88e7dc9a799d8b7a8e9e7e8f7c7a8d7a899d7a899
-d8c7b8fcf8e7faecc9d7c8a8c8b7a8e9e7d7f2f4eae9d8c8c8b7a8b9b6a8e8dab9dbe1e7e8dab9
-c5b699b6a788dad4a8d7c8c8ca8377ca8377ca8377ae7b74b5c0d5d9d5b8ae9870b6a788d9d5b8
-a9a7baae7b74c78c82d88e7dc78c82c8c9d8d8c7b8b5a898c5b699e8dab9e9e7e8dad4a8b9b6a8
-cac4a7f8ecd8ecf8fce9d8c8b9b6c0d7c8a8f8ecd8f8ecd8e6b8abd8b7a8d9b899f6d9d9e9d8c8
-c9a799d7aaa7c89997e9c8b8d8b9b7b7898fc89997ca8377d7a899c78c82b898983d3630cd342a
-792666541c7c540b7455146c5c15745415745c1574541574040404
-040404641a7c64257c641a7c641a7c641a7c641a7c5c147ca52357a829165d4c36f6c5b7d9b899
-e6aa87e6b8abbe8b70f7c7a8d7c8c8e6b8abd8b9b7c89887d8b9b7c6c2cab9b6c0d7c8c8e9b899
-b8aab7b5c0d5a9a7bac6c2cadac8968896b898a8c27887a8b9b6c0dad4a87b8db48896b87887a8
-b8aab7c5b6996175a6a8b1c9f5eae7b98680d69b98eaebf6878aa745535bc5b69998888445535b
-98a8c2f5ebf5c78c82d69b98eaebf698a8c26b7eabdac8969897a87b8db498a8c27887a8d9d5b8
-a8a6a98896b898a8c28896b8d9d7c8c8a9a7c8c9d8c8c9d8b8aab7d8b7a8d8b9b7d2dae7d6c8d5
-d3bac4c89997e6b8abebdae5f6d9d9e6b8abb98680e6aa9df7c7a8f7c7a8d7c8c83d3630cd342a
-7926665415745c15745c15745415745415745415745c1574040404
-04040464257c5c1c7c641a7c5c1c7c5c157464257c5c1c7cb0254ea829165d4c36f7be9a7b7779
-827668e7c7a5e7c7a5e7c8c8675f46988884f6d9d9e9d8c8d6c8d5595c598f8b97f5ebf5f5eae7
-c6c2ca595c5982839bf5ebf5e9e7e8999cb5565b68687798d2dae7d8d7da8896b8565b68687798
-c6d2e1d8d7da7887a861656898a8c2b9b6c0a8b1c99897a8616568778097b9b6c0a8b1c9696f7a
-70706a98a8c2a9a7bab5c0d598a8c2565b687b8db4dbe1e7c6d2e15f6b9759667898a8c2dbe1e7
-c6d2e15a6889616568a8b1c9f2f4eae9e7e8787988696f7ac6d2e1f8ecd8e8d8d88782837b7779
-d2dae7e6c9d9e8d8d894788f7b7779ebdae5e7c8c8e9c8b87a6879a69798e6b8ab4d3d2ccd342a
-641c745415745c15745415745415745415745c1574541574040404
-04040464257c64257c64257c641a7c641474641a7c5c1c7ca52357a8291646423bf6d8c8cac4a7
-d7c8a8e6b8abb99886f7c8c8b5a898d8b7a8e6aa9dc9a799e7c8c8c8a9a7c7b8b7d8b7a8d8c7b8
-d6c8d5ac99a7999cb5d8c7b8e7c8c8999cb58a95a97887a8b9b6c0d8d7da6b7eab7887a86175a6
-aab4b8d8d7da6175a6687798596678c6c2cab5a8983044438a95a9ecf8fcb98680a69798ecf8fc
-787988304443cbcdc0b8a8a7565b775f6b976b7eabe9d8c8b5c0d56175a66877987b8db4e9e7d7
-b5c0d56b7eab82839b98a8c2e8d8d8dbe1e78a95a99897a8d7c8c8e9c8b8dbe1e7ac99a7ac99a7
-f7c9d7c8a9a7ebdae5c8a9a7b89898f7c9d7c89997e8d8d8a69798c6c2cae9b89939291fdb3738
-781a665415745415745415745c15745415745c15745c1e6c040404
-04040464257c641a7c5c1574641a7c5c1c7c641a7c5c1c7cb0254ea8291651524bc89887e8bb88
-e9b899c89887be8b70be8b70e9c8b8d3bac4c89887c78c82c89887e9d8c8e8d8d8c9a799c89887
-c9a799e8d8d8ebdae5c8b7a8d7a899c8b7a8d8d7dac8c9d8c7b8b7c7b8b7cac4b7d2dae7c8c9d8
-b9b7b4b8a8a7b9b6a8c6c2cac8b7a8b6a788ae845da0b0a0a8b1c9b89898be8b70ca8377c89997
-a8b1c9ae9870b6a788c8b688b9b6a8b5c0d5b9b6c0cac4b7b8a8a7cbcdc0c6d2e1b9b6c0c6c2ca
-b9b6a8ccd6c6d2dae7c6c2cad8b7a8c7b8b7d7c8c8eaebf6d8b9b7d7aaa7c8a9a7e8d8d8f5ebf5
-d6acb4c89887d69b98d8b9b7e8d8d8d7aaa7b98680c8a9a7f6c5b7c6c2cab8a8a73d3630cd342a
-7926665415745c157455146c5415745415745415745c1574040404
-040404641a7c64257c5c15745c147c5c15745c1c7c54147cb0254ea829165d4c36c9a799e7c7a5
-e8bb88b99886ae7b74b98680d7c8c8d7a899c78c82c78c82c9a799e8d8d8d8b7a8c89887d7a899
-d8b9b7e9e7e8d7c8c8d7aaa7c8a9a7d7c8c8d2dae7d8c7b8c8b7a8b9b7b4c6c2cad2dae7cbcdc0
-b9b6a8acb4accbcdc0b5c0d5cac4a7b6a788ae9870b5a898a9a7bab98680b98680ae7b74936f72
-a8b1c9cac4b7ae9870c8a886c5b699c6d2e1cac4b7cac4b7b9b6a8d2dae7dbe1e7d7c8c8c7b8b7
-cac4b7dbe1e7d8d7dad8b7a8d8b7a8d8b7a8e9e7d7f6d9d9c19ba5d7aaa7c8a9a7e8d8d8e8d8d8
-c89997c89997c78c82c6c2cad3bac4ae7b74c19ba5b99886d8c7b8d7a899b898983d3630db3738
-6817695415745c15745c15745c157454157455146c5c1574040404
-0404045c1c7c641a7c64257c5c157464147464147454147cb0254ea829164d3d2cf7d8b8c7b8b7
-d8b9b7d8c7b8be8b70f7c7a8c8a9a7e6b8abd8b9b7c89887e6b8abb8aab7b9b6c0d6c8d5d7a899
-d3bac4a9a7ba999cb5d8d7dae7c7a5999cb58896b87887a8c8c9d8d7c8c86b7eab7b8db46b7eab
-b9b6c0d9d5b86175a6687798596678c5b699a0b0a030444398a8c2f8f6f7936f72c9a799ecf8fc
-7887a8304443b6a788cac4a7535f836175a66b7eabe9d8c8aab4b86b7eab7b8db47b8db4e9e7d7
-b9b6c07b8db48896b8a8b1c9e9d8c8d6acb4a8b1c9b9b6c0c8c9d8d8b7a8d6acb4c6c2cad3bac4
-e6c9d9c89997e6aa9de8d8d8e7c8c8f7c8c8b7898fe7c8c8e8d8d8e8d8d8d7c8c83d3630db3738
-681769541574541574541574541574541574541574541574040404
-0404045c1c7c641474641a7c641a7c5c147c641a7c541574b0254ea829165d4c36f7bb86616568
-827668f7c7a8e9c8b8e9c8b851524b988884f6d9d9e7c8c8d6c8d5595c597b7779e9e7e8f5eae7
-c8c9d8595c59787988e9e7e8dbe1e7999cb5565b68687798c6d2e1d2dae78896b8565b68687798
-c6d2e1c6d2e17b8db46165688896b8a8b1c998a8c278798861656898a8c2a9a7baa8b1c98a95a9
-595c59778097a8b1c9b5c0d5778097565b688896b8d2dae7c6d2e15f6b974b596798a8c2d2dae7
-d2dae77780974b5967a8b1c9e9e7e8eaebf6787988616568dbe1e7f5eae7f5eae77b7779595c59
-d8d7dae8d8d8ebdae5a48899616568ebdae5e7c8c8f7c8c870706a878283e7c7a53d3630cd342a
-781a664c1575541574541c6c5415745415745c1574541574040404
-040404641a7c641a7c641a7c5c1c7c641a7c64257c5c147cb0254ea8291651524bf7c7a8d9b899
-d9a887e09e75b99886e7c8c8d7a899c8a9a7e6aa9dc8a9a7d3bac4b8aab7b8aab7d8b9b7e9c8b8
-b9b6c0999cb59897a8c7b8b7e8d8d87887a87887a86b7eabc8b7a8d9d7c86b7eab7780976175a6
-b9b7b4e8dab95f6b978a95a9eaebf6c78c82c8a9a7ecf8fc787988304443ccd6c6a59887304443
-9fa19af5ebf5b7898fb8aab7eaebf67887a86175a6e8dab9a9a7ba6175a67887a86b7eabe8dab9
-b5c0d56b7eab7887a88896b8e8dab9d2dae78a95a98a95a9c6c2cae9c8b8dbe1e7a9a7baa8a6a9
-d6c8d5d8b9b7ebdae5c7abb5c19ba5f7c8c8c89997e7c8c8c89997c7b8b7e9b899472f22db3738
-6817695415745415745415744c157555146c5415745c1574040404
-040404672784641a7c5c1c7c641a7c5c1c7c641a7c5c147cb0254e85241551524bc8a671df9b5a
-e09e75c78c82c78c82c78c82e8dab9e9c8b8d69b98c89887d9a887e8d8d8e9d8c8d8b7a8d7aaa7
-c9a799f8ecd8f5eae7c8b7a8b9b7b4cac4b7e9e7e8d8d7dac8b7a8b9b6a8c8b7a8c6d2e1cbcdc0
-b5a898b5a898b9b6a8c8c9d8c8a9a7d88e7dd69b98c19ba5a8b1c9b6a788a59887ae9870acb4ac
-98a8c2b89898d88e7dd69986d7aaa7c6d2e1b5a898b6a788b5a898cbcdc0c6d2e1b9b6c0c8b7a8
-c5b699d9d5b8dbe1e7b9b6c0d8b7a8c8b7a8e8d8d8f8f6f7c7b8b7d8b7a8d7aaa7e7c8c8e9e7e8
-d8b9b7d69b98d69b98f6c5b7e9e7e8d7aaa7b7898fd69b98e8bb88e6b8abb8a8a7472f22cd342a
-79266654157454157454157455146c55146c5415745c2479040404
-0404045c157464257c641a7c641a7c641a7c5c1c7c5c1c7cb0254ea829165d4c36c89887d9b888
-e09e75be8b70c78c82c89887fad9a5d9a887c78c82c89887c8b7a8e8d8d8d8b7a8c89887c9a799
-c7b8b7f2f4ead8c7b8b8a8a7b8a8a7c8c9d8f2f4eaccd6c6a8a6a99fa19ab9b7b4dbe1e7cac4b7
-b6a788b6a788c8b688d6c8d5d69b98d88e7dd69986b89898b5c0d5c7b8b7b6a788ae9870c7b8b7
-a8b1c9ca8377d69b98d88e7dc19ba5d2dae7cac4b7b5a898b6a788d9d5b8dbe1e7d9d5b8b9b6a8
-acb4ace9e7d7fcf8e7d7c8c8b9b6c0c7b8b7f5eae7f5eae7d8b7a8d8b7a8d8b7a8e8d8d8e9d8c8
-c89997c8a9a7c8a9a7e7c8c8e9c8b8ca8377c89997b7898fd7a899d88e7db7898f3d3630cd342a
-6c147454157455146c541574541574540b745415745c2479040404
-040404641a7c641a7c641c745c1c7c5c1c7c641a7c541c7cb0254e8524154d3d2cf0ac7dd69986
-d9a887d9b899c78b4fefad93b5a898c9a799d8c7b8d9a887c7abb5a8a6a99897a8c6c2cae7c7a5
-999cb59897a87887a8d8d7dae8dab97887a87887a8687798b5c0d5dad4a86877987887a85a6889
-a8a6a9d7c8a84b59768a95a9f6d9d9c78c82d7aaa7f5ebf5878aa74b5976dac896b5a8984b5976
-98a8c2f8f6f7c89997d69b98ebdae582839b596678e8dab9a9a7ba5f6b977887a86b7eabe9d8c8
-acb4ac7b8db48896b87b8db4e9e7d7b9b7b48896b8aab4b8a8b1c9e9c8b8c8a9a7b5c0d5c6c2ca
-c8c9d8d8b9b7d7aaa7d3bac4d7c8c8e9c8b8c78c82e6aa9de6b8abe6b8abd6acb4302f2adb3738
-68176954157454157454157454157455146c5415745c1574040404
-040404641a7c641a7c5c147c641c74641a7c641a7c5c147cb0254ea829165d4c36f0af71616568
-7c6267e9b899f0af71d9a887595c59878283f7d8b8f7d8b8c7b8b7595c597b7779ebdae5f5eae7
-b9b6c051524b778097f5eae7f8f6f7999cb545535b687798e9e7e8e9e7d77b8db44b59678f8b97
-d8d7dac6c2ca9897a8595c59999cb5c8c9d8c8c9d88a95a9595c596b7eabc6d2e1b5c0d5677588
-61656898a8c2c8c9d8d6c8d59897a8616568a8b1c9c8c9d8d2dae77879884b596798a8c2f2f4ea
-e9e7e86775884b5967b5c0d5f8f6f7f2f4ea778097596678d2dae7fcf8e7ebdae5677588696f7a
-ebdae5f8ecd8f6d8c87b77797a6879e6b8abe9b899f7c7a87b7779936f72d7a8993d3630cd342a
-681769540b745415745c15745c1574540b7455146c5c2479040404
-040404641a7c641a7c5c15745c1c7c641a7c641a7c54147cc3324e8524155d4c36efad93c78c82
-c8a886d9a887d2966dc8b7a8b99886b5a898d7a899e6b8abb8aab7a8a6a9878aa7c8a9a7e9d8c8
-8896b88a95a97887a8cac4a7e9d8c87887a8878aa7687798cac4b7d8c7b85f6b979897a8f6d9d9
-d69b98d69986f6d9d99897a84b5976d9d5b8b8a8a75a68896b7eab5f6b97cbcdc0a8b1c96175a6
-7887a85f6b97d9d7c8b9b6a84b5976b8aab7f7c9d7ca8377d8b9b7e8d8d882839b6175a6e8dab9
-aab4b86877987887a88896b8f9ebb6c8c9d8878aa7878aa7a9a7bafaecc9c8c9d8878aa79897a8
-b9b6c0f7c7a8d8d7daac99a7a69798d7aaa7d7a899e7c8c8b7898fc89997e6aa9d472f22db3738
-68176954157455146c5415745415745415745415745c2479040404
-0404045c1c7c641a7c641a7c641a7c5c24795c1c7c54147cb0254ea8291651524bd69986df9b5a
-e09e75c89887c89887be8b70f0af71e9b899d8b7a8c9a799d9b899faecc9e9d8c8c8b7a8b8a8a7
-d7c8a8f5eae7e9d8c8b5a898acb4accac4a7f2f4ead8c7b8b6a788b6a788cac4a7dbe1e7d7a899
-d88e7dd88e7dd69b98c6c2cac9a799b6a788b6a788cac4b7d2dae7ccd6c6b9b6a8b9b6a8d9d5b8
-d2dae7c5b699b5a898b6a788d8d7dac6c2cad69986d88e7de59b87e6b8abe8d8d8b5a898b6a788
-b5a898f9ebb6f2f4eab9b6c0c8b7a8b9b6a8e9d8c8f8f6f7b9b6c0c8b7a8c8b7a8f8ecd8f5eae7
-d8b9b7d6acb4d7aaa7efad93f7c7a8c7abb5d69b98d69b98e6aa87e6aa9dc19ba54d3d2cdb3738
-69256b5415745415745c1574541574540b6c5415745c2479040404
-0404045c1c7c64257c5c15745c247964257c5c15745c1c7cb0254e8524155d4c36c9a799d2966d
-d2966dc78c82c8a886c9a799f7be9ad9a887b89898c9a799d8b9b7f6d8c8dac896b5a898b8a8a7
-b9b6c0e9e7e8cac4b7b5a898c5b699d9d7c8fcf8e7d9d5b8a59887b6a788c5b699f5eae7efad93
-d2966de09e75d7a899d8d7dacac4a7b5a898b5a898cac4b7d2dae7b9b7b4b9b6a8b9b6a8c6d2e1
-d2dae7cac4a7c5b699b5a898cbcdc0d7c8c8d88e7de59b87e59b87e9c8b8f8f6f7cac4b7b6a788
-b5a898e8dab9fcf8e7dad4a8b9b6a8b9b6a8f2f4eafcf8e7d8c7b8c7b8b7cac4b7f8ecd8f6d8c8
-d9b899c7b8b7d8b9b7f7d8b8e6b8abc89887c8a9a7c89997e6aa9de59b87b998863d3630db3738
-69256b5415745c15745415745c15745415745c15745c2479040404
-0404045c1574641a7c641c7464257c64257c64257c541c7cc3324ea829165d4c36d69986b98680
-b99886c8b7a8d2966dc9a7999888848f8b97c7b8b7f0ac7da69798a6979882839bc6c2caf7d8b8
-82839b7780976b7eabd6c8d5dad4a87887a8878aa75f6b97c5b699dad4a85f6b978a95a9e6c9d9
-e6b8abd69b98f6d9d99897a85f6b97dad4a8b9b6a86175a67b8db46b7eabd9d7c8b9b7b46b7eab
-7887a86175a6d9d5b8b9b6a85a6889b9b6c0ebdae5d69986e6b8abebdae59897a87887a8fad9a5
-a0b0a06877988896b87b8db4faecc9b9b7b47b8db48896b8999cb5f8ecd8999cb5999cb5a8a6a9
-b8aab7f7c7a8c19ba5999cb5c8a9a7d3bac4d7a899d69b98c19ba5d7aaa7c19ba5302f2adb3738
-69256b5415745c15745c15745c15745415745c1574541574040404
-0404045c1c7c641a7c641c7464257c64257c641a7c541574c3324e8524155d4c36d2966d595c59
-70706ae59b87e8bb88b99886595c597b7779f7be9af6c77ca598874b5967677588f7d8b8faecc9
-a9a7ba45535b787988f8ecd8f5eae79897a8595c598f8b97e9e7d7f8ecd8ac99a745535b999cb5
-f5eae7d8d7da9897a845535b7b8db4d2dae7c6d2e16877984b59678896b8d2dae7c6d2e1687798
-4b59677b8db4d2dae7d2dae7676a88565b68c8c9d8e9e7d7e9e7e887828345535bc8c9d8fcf8e7
-f5eae77b77794b5967b9b6c0fcf8e7e9e7e8677588616568d2dae7f8ecd8e7c8c8696f7a596678
-d8b7a8f7c7a8e6b8ab696f7a616568d7aaa7e6aa87c9a7996165687b7779ca837739291fdb3738
-6817695415745415745415745415745c15745c1c7c5c2479040404
-040404641a7c5c157464257c641c745c1c7c6414745c147cb0254ea8291651524bb99886ae7b74
-a59887d69986d9b888ac99a7a88786988884c8a886e7c7a582839b988884747297b5a898e8dab9
-7780978f8b97687798cac4a7d9b8995a68899897a8f7c9d7e59b87d9a887c6c2caa8a6a9687798
-dad4a8d9b8995f6b977780976175a6d9d5b8c6c2ca6175a67887a86b7eabd9d7c8b5c0d56175a6
-7887a86b7eabd9d5b8c6c2ca6175a67780976b7eabf9ebb6ac99a7687798b9b6c0d8d7dae09e75
-f7c8c8e7c8c882839b7887a8f9ebb6a9a7ba7780977887a89897a8f9ebb6a8b1c978798882839b
-a48899fad9a5b9b6c094788f8f8b97b89898e9b899c7b8b794788fac99a7c89887472f22db3738
-68176954157454157454157455146c5415745c15745c2479040404
-0404045c24795c157464257c641c745c1574641a7c5c1574c3324e852415595c59d9a887df9b5a
-e09e75d9b899c9a799d9a887f0ac7de9b899c8b7a8c8b7a8d9b899f8d094e9b899b5a898b5a898
-dac896faecc9e8dab9a59887b6a788cac4a7f8ecd8e9b899e09e75d2966de6aa87f6d9d9e9d9a6
-b6a788b6a788d7c8a8e9e7e8cbcdc0a8a6a9b9b6a8cbcdc0d2dae7d7c8c8b9b7b4b9b6c0d7c8c8
-d2dae7c6c2cab9b7b4b9b6a8e9d8c8e9e7e8c5b699b6a788b5a898e9e7d7faecc9d69986e09e75
-efad93f6c5b7fcf8e7b6a788b6a788c5b699faecc9fcf8e7c7b8b7b9b6a8b5a898f8d094f7d8b8
-b9b6c0d6acb4c8b7a8e9b899e6b8abd3bac4d7aaa7d7aaa7d2966dd7a899c8a9a73d3630db3738
-68176954157454157454157454157455146c5415745c2479040404
-040404641c7464257c641a7c641a7c641a7c64257c5c147cc3324e852415675f46c9a799b98680
-c78d61b89898c9a799c8a9a7e8bb88c89887b99886b8a8a7b9b7b4f7be9ac8b688b6a788b5a898
-b8a8a7e8dab9c5b699a59887b6a788c9a799f5eae7e9b899e09e75f0ac7de7c7a5f5eae7c7b8b7
-b6a788b6a788cac4a7f2f4eab9b7b4b9b6a8b9b6a8d8d7dadbe1e7cac4b7c7b8b7c7b8b7d2dae7
-dbe1e7cac4a7b9b6a8b9b6a8dbe1e7f2f4eadac896b5a898988884e9d8c8f6d9d9e09e75f0ac7d
-e6aa87e8dab9f5eae7cac4a7b6a788b6a788f7d8b8f8ecd8cac4a7b9b6a8b9b7b4f7d8b8f7d8b8
-cac4b7c6c2cac7b8b7f6c5b7f7be9ad7a899c8a9a7c8a9a7d69986d9a887c5b69946423bdb3738
-69256b541c7c541574541574541574540b745415745c2479040404
-0404045c1c7c64257c5c1574641a7c5c147c641a7c541574c3324e8524155d4c36ae7b7470706a
-7b7779c89887df9b5a9888847a68797b7779c5b699e8bb887a6879696f7a676a88c8b7a8f6c77c
-878283596678666178dac896e8dab96b7eab787988b9b6c0e9c8b8f7c7a8e6c9d9878283687798
-d9d5b8e8dab96b7eab6775887887a8e9e7d7c7b8b76b7eab7887a88896b8d8d7dac7b8b77b8db4
-7887a87b8db4d8d7dad9d5b86b7eab7780977b8db4f9ebb6acb4ac676a88b9b6c0f6d9d9f7bb86
-e7c8c8b9b6c07780977b8db4fad9a5b8a8a77780977780979897a8f9ebb6ac99a77780978f8b97
-9897a8f7d8b8ac99a7778097a48899ac99a7e9b899b8989894788fa48899ac99a73d3630db3738
-69256b5415745415745415745415745415745415745c1574040404
-040404641a7c64257c64257c5c1c7c5c15745c15745c147cc3324e8524155d4c36ae7b74595c59
-616568be8b70e09e75936f72595c59596678e09e75f7bb8698888440474b596678dac896f6c77c
-936f7245535bb8a8a7f7d8b8f6d8c89897a851524b778097f8ecd8f8ecd882839b45535b7887a8
-fcf8e7fcf8e77887a845535b8a95a9f8f6f7dbe1e768779861656898a8c2e8d8d8d2dae782839b
-45535b8896b8f2f4eaf2f4ea7780974b596798a8c2f8f6f7e9e7e859667845535bc6c2cafcf8e7
-ebdae5677588565b68c8c9d8f8ecd8f6d8c87b777945535bc8b7a8f8d094d6acb44b59764b5967
-c9a799f7c7a8d7aaa7596678596678b98680e6aa87b986805966787b7779ae7b7439291fdb3738
-69256b54157454157454157454157455146c5415745c2479040404
-040404641c74641a7c641a7c641a7c641a7c641a7c54147cb0254e852415595c59a88786ae7b74
-936f72c8a886cac4a7878283ae7b74867389a59887dac89694788fb99886867389a59887c8a671
-787988c89887f7be9af0ac7dd2966db9b6c0c6c2ca7887a8c5b699b99886687798b9b6c08896b8
-cac4a7cac4b78a95a9a8b1c97887a8d8c7b8b9b6c08896b8aab4b898a8c2e7c7a5c8c9d8999cb5
-a8b1c98896b8d9d7c8b9b6c08896b8a8b1c97887a8e8dab998a8c27b8db49897a8687798e7c7a5
-9897a87b8db4b9b6c0b9b6c0f0af71f6c5b7e6b8ab776a8682839bf8d09482839b77809782839b
-82839bfad9a5ac99a786738974729794788ff7c7a8999cb586738994788fa6979839291fdb3738
-6817695415745c15745415745415745415745415745c2479040404
-040404641a7c641a7c5c1c7c641c745c1c7c641a7c54147cc3324ea82916595c59d9b888c78d61
-c8a671c8b7a8b5a898dac896e09e75f6c77cb6a788b5a898f8d094f7bb86f6c77cb6a788a59887
-f6c77cf6c77cefad5edf9b5adf9b5af0af71faecc9f8d094b6a788b6a788fad9a5fcf8e7f9ebb6
-b9b6a8b9b6a8f9ebb6f8f6f7e9d8c8b9b6c0c7b8b7e9d8c8f5ebf5e9c8b8d8b9b7d7c8a8e8dab9
-f2f4eae9d8c8c7b8b7c7b8b7f8ecd8fcf8e7e8dab9acb4accac4a7faecc9f8ecd8d9b888b6a788
-c5b699faecc9f7d8b8d2966de09e75f0ac7df7bb86f8d094c8a886a59887c5b699f8d094f7c7a8
-c7b8b7acb4acc8b7a8f0ac7de6b8abb9b6c0c7b8b7d8b9b7d2966dd9b899b9b7b4302f2adb3738
-69256b5415745415745415745415745415745415745c2479040404
-0404045c1c7c641a7c641a7c5c1c7c6414745c1c7c54147cc3324e852415675f46a8a6a9ae7b74
-92655fac99a7b5a898a48899be8b70ae845da69798b6a788988884d69986988884936f72c8a886
-a69798e9b899c89997be8b70f0af71e6b8abe9c8b88f8b97b6a788b6a7889897a8d8d7da999cb5
-b9b7b4b5a898a8b1c9e9e7e8aab4b8d8c7b8c8b7a8d2dae7e9e7e8c7b8b7e6b8abd7aaa7d2dae7
-eaebf6c8b7a8d8b9b7c8b7a8c8c9d8e9e7e89fa19ac8b7a8a8a6a9d2dae7e9e7d79fa19ac8b688
-a88786d8c7b8f7d8b8f7be9ae09e75b99886e9b899e9d9a6b8a8a7c5b699a59887d7a899e9b899
-b5a898b8a8a7a9a7bac89997d69986b8aab7b9b6c0b8aab7b98680be8b70b5a8983d3630db3738
-641c744c1575541574541574541574541574541574541574040404
-04040464257c641a7c641a7c641a7c5c1c7c641a7c54147cc3324e8524155d4c36827668616568
-616568a88786d2966d6661786165685a6889b99886df9b5a666178565b68565b68c8a671f6c77c
-8782835966788f8b97f0ac7df0af71e6b8ab696f7a787988fad9a5f9ebb66877985966787887a8
-e9e7e8e9d8c87887a867758898a8c2f8ecd8d9d7c882839b677588b5c0d5faecc9e9c8b8999cb5
-78798898a8c2f5eae7e8dab97887a85a68898896b8f8ecd8b9b6c0687798676a888896b8f9ebb6
-b5a898535f83ac99a7f6c5b7efad5ed8b7a882839b687798a48899f8d094988884565b77676a88
-747297fad9a59888845f6b97676a8882839be6b8ab94788f676a88776a868f8b973d3630db3738
-68176954157454157454157454157455146c5415745c2479040404
-04040464257c64257c64257c641a7c641c74641a7c5c1c7cc3324eb6302451524b7c626745535b
-45535ba37357c78d617a687945535b616568c78d61df9b5a7c626745535b988884f0ac7df0af71
-936f7245535b787988e9d9a6f7bb867a687945535b778097f6d8c8f8ecd8878aa745535b82839b
-f8ecd8f2f4ea7887a8595c59a9a7bafaecc9e9e7e88f8b9770706ac6c2cae8d8d8eaebf6ac99a7
-565b68a9a7bafcf8e7f8f6f79897a8565b68a8b1c9fcf8e7dbe1e75a68894b5967b5c0d5f8ecd8
-e9d8c85966784b5967b5a898f8d094e9c8b85966784b5976c8a9a7f7bb86e6aa9d696f7a45535b
-b98680f0ac7dae7b74565b77596678ae7b74e09e75a374835966786661786c5456472415db3738
-6817694c157555146c5c15745415745415745415745c2479040404
-04040464257c5c2479641a7c64257c641a7c64257c5c1c7cc3324e85241570706a8782836c5456
-6f596fa59887c8b688696f7a92655f7a6879ae9870c8a6717a6879ae845dd69b98e8bb88c78d61
-82839bc89887867389b5a898ae9870787988b6a78882839bb9b6a8c7b8b78a95a9c8c9d8999cb5
-b9b6a8c7b8b79897a8c6c2caa9a7bad7a899c7b8b7c7b8b7d8d7dad6c8d5d7a899d7c8c8d7c8c8
-c6d2e1b9b6c0d8b7a8d3bac4a9a7bab5c0d5999cb5e9d8c8999cb5999cb5a8b1c98896b8e9d9a6
-9897a88f8b97a88786778097dac896a488999588a7a488999897a8f7bb86e6b8abc19ba5885b87
-787988e8bb88867389776a8674729782839be7c7a582839b676a88676a88778097472f22db3738
-681769540b6c5415745415745c15745415745c1574541574040404
-04040464257c64257c64257c5c24795c157464257c5c1c7cc3324e852415595c59dac896ae9870
-ae9870b6a788a59887e8bb88c78b4fefad5eae9870ae9870d9b56adf9b5aefad5ed2966dc8a671
-f0af71f0af71f6c77cae9870b6a788f8d094f8d094fad9a5b5a898c5b699f9ebb6fcf8e7f8ecd8
-c7b8b7c8b7a8fad9a5fcf8e7e9c8b8d8b7a8e9b899f6c5b7f5eae7e6b8abd7aaa7d7a899e7c7a5
-f5eae7e9c8b8d8b7a8e6b8abf7d8b8fcf8e7e9c8b8b9b6c0d8c7b8f8ecd8fcf8e7d9d5b8b9b6a8
-cac4a7fad9a5fad9a5d9b888b99886cac4a7f8d094f7bb86f0ac7dd7a899e8bb88f0af71f0af71
-c8a671b5a898c5b699d2966dd9a887c7b8b7b8a8a7b9b6a8ae7b74d8c7b8aab4b8472f22db3738
-5c1e6c5415745c15745c1574541574541574540b745c2479040404
-04040464257c672784641a7c5c15745c247964257c5c1c7cc3324e852415766a4d8f8b9751524b
-595c59a59887b6a7887b7779815a55766a4d936f72ae98707b7779ae845d7b7779ae845df0af71
-d7a899d69986936f72ae9870b6a788a69798d9b8998f8b97b9b7b4b5a898a9a7bae9d8c8a8a6a9
-c7b8b7c8b7a8c8c9d8d8d7dab8aab7d8b9b7e6b8abeaebf6e9e7e8d8b9b7d7aaa7d7aaa7e9e7e8
-f5eae7d8c7b8e9c8b8d7a899d2dae7e8d8d8b8a8a7e9c8b8a8a6a9d8d7dad9d5b8a69798cbcdc0
-a8a6a9d8c7b8e8dab99fa19ac8b688988884d7a899f7be9ae7c7a5e8bb88ae9870c78c82d69986
-b5a898c5b699a59887ae7b74ae7b74b5a898b9b7b49897a8675f46988884a0b0a03d3630db3738
-6817695415745c15745c15745415745415745415745c2479040404
-0404045c157464257c641c7464257c64257c5c24795c2479c3324e852415675f46595c5945535b
-45535b6c5456ab7b45565b6845535b4b4b64a37357c78d616661784b5967666178be8b70df9b5a
-b99886616568596678e8bb88f0ac7d676a884b5967778097e8dab9f8d09478798859667882839b
-f8ecd8f6d8c89897a8696f7ab9b6c0f8ecd8e9e7d7ac99a78f8b97d8d7daf6d9d9f6d9d9b8aab7
-878283c8c9d8f6d9d9e9c8b89897a8787988b5c0d5f8ecd8c7b8b77780976877989897a8f9ebb6
-c5b699687798676a88a48899f8d094b6a7885966789897a8e6aa9defad5ea88786676a88676a88
-94788fe8bb887c62674b4b64565b77776a86c8a8866661784b59764b5976776a8639291fdb3738
-5c1e6c5415745c15745415745c15745415745c15745c2479040404
-04040464257c5c157464257c67278464257c5c24795c1c7cc3324e8524155d4c36595c5945535b
-45535b675f46ab7b455c495a40474b936f72ae845dc78b4f6f596f45535b666178d2966ddf9b5a
-6f596f45535b696f7ae8bb88e8bb887879884b5967787988f7c7a8f7d8b8787988616568878aa7
-f7d8b8f5eae79897a870706ad6c8d5f7c8c8f5eae7a6979870706ae8d8d8e9d8c8f5eae7b8a8a7
-616568c6c2caf6d9d9f5eae7a8a6a9616568c6c2caf8ecd8e8d8d8787988596678b8a8a7fad9a5
-e9c8b8696f7a4b5967ac99a7f8d094d7aaa7666178565b68b98680f0af71b7898f596678565b77
-ae7b74c78d61ae7b74676a884b4b647c6267a373575c495a4b5976565b685c495a39291fdb3738
-5c1e6c5415745415745415745c15745415745415745c2479040404
-04040464257c64257c64257c64257c64257c6727845c2479c3324e8524156165687879886c5456
-5c495a878283c8a67170706a815a55a37483d9b56abe8b70867389a373577a6879b6a788ae9870
-7b7779c78d6194788fb6a788b8a8a78f8b97c89887778097b8a8a7b9b7b4a48899d9b899b9b6c0
-c9a799d8c7b8c7b8b7ebdae5e6c9d9d7a899d7c8c8e7c8c8ebdae5f7c9d7c89887d6acb4f6d9d9
-e8d8d8e6c9d9d9a887d3bac4e7c8c8d8d7dab8aab7f7c7a8b8aab7b8a8a7b8a8a79897a8e9d8c8
-999cb58f8b97a6979882839be9d9a6ac99a794788f936f72787988e8bb8894788f867389776a86
-687798e8bb88c8a9a7a374836f596f676a88e8bb88676a88605170676a887879884d3d2cdb3738
-5c1e6c540b745415745c1c7c541574541574540b745c2479040404
-0404045c157464257c67278464257c64257c5c24795c2479c3324e85241551524bdac896ae845d
-ab7b45ae9870ae9870d9b56aab7b45c78b4fd9b56ad9b56aefad5ec78b4fd9b56aae9870ae9870
-efad5eefad5ee8bb88c5b699c8b7a8f8d094f7bb86f7d8b8b9b7b4c7b8b7fad9a5fad9a5f7c7a8
-d6acb4d8b7a8f8d094f8ecd8e9b899e6aa9dd7a899e6b8abe9e7e8c9a799d69b98d69b98d7a899
-e9e7d7d7aaa7d7aaa7e6aa9de6b8abf8ecd8e9c8b8d8b7a8e9b899f7be9afad9a5e8dab9c7b8b7
-cac4b7f7c7a8f7c7a8e8dab9acb4acd7c8a8f7bb86f7bb86d9b888b5a898cac4a7e09e75d2966d
-c9a799c5b699f8d094c78d61c78d61c8a886b6a788b6a788a37357c5b699a9a7ba472f22db3738
-5c1e6c5415745c15745415745415745415745415745c1c7c040404
-04040464257c64257c5c24795c247964257c64257c5c1c7cc3324e852415766a4d7b77796c5456
-595c59a37357ae98707a6879675f46595c59ae845dd9b56ab7898fa37357815a55ae9870b6a788
-7b7779ae7b74867389b9b7b4b6a788ac99a7d7a899a48899c7b8b7d9b899c6c2cae7c7a5c19ba5
-d8b7a8e9b899e8d8d8e9d8c8e6b8abd7a899e6aa9df5eae7f5eae7e6b8abc89997d7a899ebdae5
-f5eae7f6c5b7e6b8abe6aa9de8d8d8f6d8c8e6b8abe6b8abc8a9a7e9d8c8f6c5b7c8b7a8d8c7b8
-a9a7bad6acb4d7a899a69798b9b7b4a8a6a9b99886c898879897a8c8b688988884ae7b74be8b70
-e6b8abd9b8889888846c5456827668b5a898c5b699a5988792655fa8878682839b3d3630db3738
-6817695415745415745415745415745415745c15745c2479040404
-04040467278464257c64257c6b377964257c64257c64257cc3324e852415675f467c626740474b
-40474b8c6540ab7b4561656845535b4b4b64766a4dab7b4594788f565b684b4b64ae845ddf9b5a
-6f596f4b5967676a88e6aa9ddf9b5a776a86596678878283e7c7a5f0af71867389616568ac99a7
-f6d8c8f7bb86ac99a7878283e8d8d8e8dab9f6d8c8c8a9a7a48899ebdae5d7c8c8f6c5b7d8b9b7
-988884e6c9d9e8d8d8f6c5b7b8aab78f8b97e7c8c8f7c7a8e6b8ab9588a7778097b8aab7fad9a5
-c8a8866877985a688982839bf8d094a88786676a885a6889867389f0af717c6267565b778f8b97
-b7898fc78d61616568535f835a68897a6879c8a6717a68794b5976565b777a6879472f22db3738
-5c1574540b6c54157455146c54157454157455146c541574040404
-04040464257c5c157464257c64257c64257c5c1c7c5c1c7cc3324e852415675f466c5456304443
-666178a373578c654040474b51524b565b68766a4dab7b455c495a45535b605170ae845dd2966d
-6661784b5967696f7ae09e75e6aa87787988595c598f8b97f7bb86e8bb88a48899616568c8b7a8
-f7be9afad9a5a69798827668f7c8c8e9c8b8f5eae79fa19a827668e8d8d8d8b9b7e9e7e8b8a8a7
-70706ad7c8c8f6d9d9f8ecd8c8a9a770706ae6b8abf7be9af6d8c88f8b97616568c9a799f7be9a
-e6b8ab787988596678b98680efad93c89887596678596678ae7b74e09e75936f724b59764b5967
-7c6267ab7b455c495a596678565b77815a55a3735792655f565b68565b68815a55472415db3738
-55146c55146c5415745c1574540b7455146c5415745c1574040404
-040404641a7c64257c64257c5c15745c1c7c6414745c1574c3324e852415766a4d8276688c6540
-92655fb6a788ae98706165685c495a7c6267b99886be8b70565b68815a556f596fb6a788b5a898
-936f72ae7b7494788fc5b699b8a8a794788fc78c82ac99a7c8a886d8b9b7b89898e9b899d3bac4
-d69986d8b9b7e6b8abf7c7a8e6b8abc89887e7c8c8f6d9d9ebdae5f6d8c8be8b70d6acb4f6d8c8
-ebdae5f6d9d9d7a899d8b9b7f6c5b7e9c8b8d3bac4e6aa87d7c8c8d8b7a8c8a9a7b8aab7e9b899
-b8aab7b7898fa488999588a7e8dab9999cb586738986738982839bdad4a8747297666178605170
-676a88dac8968673896165685c495a677588e8bb889888847a6879605170677588472f22db3738
-641474540b7454157454157455146c540b745415745c2479040404
-040404641a7c641a7c64257c641a7c5c15745c15745c1574c3324e852415675f46d9b56ac78b4f
-c78b4fc78d61ae9870df9b5a8c6540df9b5aae9870ae9870d9b56a8c6540c8a671b5a898b8a8a7
-e8bb88c78d61e7c7a5b9b7b4c8a9a7e8bb88e09e75e9b899d8c7b8d8b7a8f7be9af7be9ad7a899
-d7a899d7aaa7e6aa87e9b899c89887d7a899c78c82d9b899e7c8c8b98680c89997c89997c8a886
-e8d8d8c89887d7aaa7d69b98d9a887f7c7a8d7a899e6b8abd7aaa7efad93f7c7a8e6b8abd8b9b7
-e6b8abf7bb86f7c7a8e9d8c8b9b6c0d3bac4d7a899e9b899d8c7b8b9b7b4d7c8a8be8b70c78d61
-c5b699b5a898d9b899ae845dae845dc8a886b5a898dac896be8b70d2966d98888439291fdb3738
-681769541574541574540b6c54157455146c5415745c2479040404
-040404641a7c64257c641a7c64257c64257c641c745c1574c3324e852415766a4d988884827668
-675f468c6540d9b56a8276686c5456595c59827668c8a6716f596f595c59666178a8a6a9b6a788
-7472977c62677a6879c7b8b7b5a8989588a7b98680a88786d7aaa7e8bb88d3bac4d9b899d7a899
-d7aaa7d7a899f6d9d9f7c7a8e6b8abc89887e6b8abe8d8d8faecc9e9d8c8b99886d8b7a8e9e7e8
-f6d8c8e6b8abc89997e6aa9df6d9d9f6c5b7e6b8abd7aaa7d8b9b7e9c8b8e9b899d8b9b7e9c8b8
-c8b7a8c19ba5d69986b8a8a7d7c8c8a9a7baa88786ae7b74b5a898cbcdc0999cb57c6267827668
-9fa19ac5b69998888492655fa37483c7b8b7d9b888936f72ae7b74c9a799a59887472f22db3738
-55146c540b745c1574541574540b6c5415745415745c1c7c040404
-040404641a7c64257c641c7464257c641a7c5c147c5c1c7cc3324e852415675f46a37357304443
-3044438c6540ab7b45815a5545535b40474b815a55ab7b454b4b6445535b4b4b64766a4da37357
-6051704b59677a6879ae845dca83777879884b5967988884e09e75e09e75a48899616568c8a9a7
-e6b8abf7bb86b5a8987b7779e9d8c8e9b899f7be9aa6979882839bf5eae7e9c8b8f6d8c8c6c2ca
-7b7779e9c8b8e9b899f7c7a8c8b7a8878283f7c8c8e6aa9df7be9aa48899787988d6acb4efad93
-d88e7d82839b677588a48899e9b899ae7b745a68895966787a6879b6a7886165685a6889565b77
-605170c8a6716f596f4b5976677588ae7b74d9a88770706a45535b778097a37483472f22db3738
-55146c54157454157455146c5415745415745c15745c2479040404
-0404045c1c7c64257c64257c641a7c5c15745c1c7c5c1574c3324e8524158c65405d4c36302f2a
-7c6267ae9870df9b5a6c545651524b4b4b64878283c8a671565b77565b68565b77ae9870b5a898
-666178616568787988d9b56ad8b7a88673897b7779b89898d9b888d9b899b5a898878283d8b7a8
-f7bb86f7c7a8d7aaa7988884f6c5b7d9a887e9d8c8b8a8a7878283f5eae7d8b7a8e9e7e8cbcdc0
-878283e9d8c8e6aa87e8dab9c8a9a7988884f6c5b7e9b899f6c5b7ac99a7787988d7a899e8bb88
-d7a8998f8b97696f7ab7898fd9b888b98680696f7a677588867389b99886616568535f83535f83
-616568b998866f596f4b59764b59677a6879d2966dae7b7445535b40474ba373574d3d2cdb3738
-55146c541574540b6c5415745c157454157455146c64257c040404
-0404045c1574641a7c641a7c5c1c7c641a7c5c15745c1574c3324e8524154d3d2c766a4dab7b45
-a373578276688276688276688c65407c62678782839fa19a8782835d4c368782839fa19a9fa19a
-8782838c6540878283b5a898b8a8a7ae9870ae845db8a8a7b8a8a7c7b8b7c9a799d88e7dd8b9b7
-c8a886c7b8b7e6b8abe9b899d8b7a8c78c82cbcdc0e8dab9e8dab9e8d8d8b99886d7c8c8e9d8c8
-e8dab9e8d8d8c9a799d8b9b7f6c5b7e9c8b8f7c8c8d7a899d8b9b7efad93d7a899d8b9b7e7c7a5
-d7c8c8c89997b7898fb8a8a7e9d9a6a9a7baa374838673899897a8d9d5b87887a86661786f596f
-878aa7d8c7b87780977a68797c6267867389d9b888a48899a374835d4c36595c594d3d2cdb3738
-641c745415745415745415745415745c15745415745c2479040404
-0404045c147c5c1574641a7c641a7c641a7c5c1c7c5c1c7cc3324ea8291639291f472f22472415
-472415472415472415472415472415472415472f22472415472f22472f22472f22472f22472f22
-47241547241547241539291f47241547241539291f39291f472f22472f2247241547241539291f
-39291f47241539291f472f223d3630472f2239291f472f224d3d2c4d3d2c3d36303d3630472415
-4d3d2c3d3630472f22302f2a472f22472f223d36304d3d2c4d3d2c4d3d2c4d3d2c3d36303d3630
-4d3d2c4d3d2c4d3d2c46423b46423b46423b472f223d363046423b46423b46423b4d3d2c46423b
-40474b3d36304d3d2c472f224d3d2c46423b46423b46423b4d3d2c46423b19271c472415db3738
-641c745415745415745415745415745415745415745c1574040404
-040404641474641474641a7c5c1c7c641a7c641a7c5c1c7cb0254edb3738cd342acd342acd342a
-cd342acd342acd342acd342acd342acd342acd342acd342acd342adb3738cd342adb3738cd342a
-cd342acd342acd342acd342acd342acd342acd342adb3738cd342adb3738cd342acd342acd342a
-cd342acd342acd342acd342acd342acd342acd342acd342adb3738cd342acd342acd342acd342a
-cd342acd342acd342acd342acd342acd342acd342acd342ab63024cd342ab63024cd342acd342a
-cd342acd342acd342acd342acd342acd342ab63024b63024b63024b63024b63024b63024b63024
-b63024b63024b63024b63024b63024b63024b63024b63024b63024a82916b63024cd342adb3738
-55146c5415745c157454157454157455146c541574541c6c040404
-0404045c147c5c1c7c5c1c7c641a7c641a7c641a7c5c1c7c641c74641c74681769641474681769
-681769681769681769681769681769681769681769681769681769681769681769681769681769
-6817696817695c1464681769660b656817696f175c781a666817696817696817696f175c681769
-6f175c681769681769781a66781a66792666781a667926666a2976681769781a666f175c6f175c
-6f175c781a66781a66781a666f175c781a66781a66792666872164781a6687216479266681205c
-781a667926668a2f627926667926668721648721648a2f6281205c8d1d5c8721648d1d5c872164
-8721648a2f628721648d1d5c87216487216499275e8721648d1d5c8721648d1d5c8d1d5c872164
-55146c5415745415745c15745415745415745415745c2479040404
-0404045c15745c1574641a7c641a7c5c1c7c5c147c5c1574641a7c5c147c5c0c735c0c735c0c73
-540c7c5c0c73540b745c0c735c0c73540b74540b74540b74540b74540b745c0c735c0c735c0c73
-5c15745c15745c1574540b745c0c735c147c5c147c54157454157455146c5c0c735c1574541574
-540b74540b74540b6c540b744c1575540b74540b745415745c1574540b6c541574541574541574
-540b74540b74540b74540b74540c7c540b74541574540b74541574540b74540b74540b744c0b74
-5415744c157554147c54157454147c4c0b744c1575541c7c5415744c15754c0b744c0b744c1575
-4c0b744c15754c15754c15754c0b744c15754c0b744c0b744c1575540b744c0b744c0b7454147c
-54157455146c5415745415745c157454157455146c5c1c7c040404
-040404641a7c641a7c641a7c641a7c641a7c5c15745c147c5c147c5c15745c0c735c15745c0c73
-540b6c5c0c735c1574540b745c15745c15745c15745c0c73540b6c5c0c735c0c73540b74540b74
-5c0c735c1574540b74540b6c5c15745c157455146c5c1e6c5c15745c157455146c5415745c0c73
-5c15745c15745415745c15745c1574540b6c55146c5c24795c24795c15745c15745c157455146c
-541574540b6c540b745415745c1574540b74540b74541574540b745c15745415745415745c1574
-55146c540b745c157455146c54157455146c54157454157454157454157455146c541574540b6c
-5415745415745c1c7c54157455146c54157454157454157454157455146c540b6c55146c541574
-541574541574541574541c7c54157455146c5415745c2479040404
-040404641a7c641a7c5c147c5c1c7c5c147c5c15745c15745c147c5415745c0c735c15745c0c73
-540b745c1574540b745c0c735c1574540b6c540b6c540b6c5c0c73540b74540b6c5c1574540b6c
-5415745c1574540b6c5c0c735c1574540b6c55146c5c24795c15745c15745c0c735c0c73540b6c
-5c15745c15745c15745c15745c157455146c5c15745c24795415745c15745415745c15745c1574
-541574540b6c55146c540b74540b6c540b745c15745c0c73540b74540b6c540b6c540b6c541574
-541574540b6c540b6c540b6c54157455146c5415745415745415745c157455146c540b6c541574
-54157455146c5415745415744c157554157455146c541574540b6c4c086c540b6c4c1575541574
-5415745415745415745415745415745415745415745c1574040404
-0404045c1c7c5c147c5c15746414745c15745c15745c15745c147c5c15745c0c735c1574540b74
-540b6c5c1574540b6c5c0c73540b745c157455146c5c0c73540b6c5c15745c0c735c0c73540b6c
-5c15745c1574540b6c5c1574540b6c540b6c5c15745c1e6c55146c540b6c55146c5c1574500464
-540b7455146c5c15745c0c735c1574540b74540b6c5415745415745c15745415745415745c1574
-5415745c1574540b74540b6c540b745c15745c1574541574540b6c55146c540b7455146c540b6c
-540b6c540b6c4c1575540b6c541574541574540b6c540b6c55146c541574540b7455146c4c146c
-54157455146c54157454157455146c55146c541574540b6c55146c540b6c541574541574541574
-54157454157454157454157455146c5415745415745c2479040404
-0404045c1574641a7c641a7c641a7c6414746414745c147c5c15745c15745c15745c0c735c1574
-5c0c735c0c735c0c735c15745c15745c15745c15745c15745c0c73540b745c1574540b6c5c0c73
-5415745c0c7355146c540b74540b6c540b6c540b74540b6c5415745c15745415745c15745c0c73
-540b6c540b74540b6c540b6c540b6c55146c540b6c540b6c5c1574541574540b6c5c157455146c
-540b6c5415745c15745c1574541574540b745c15745c15745c0c73540b6c540b6c540b6c540b6c
-54157455146c5c157454157454157455146c540b6c540b6c5c157454157455146c541574541574
-540b6c4c1575541574541574540b6c541574540b6c4c086c54157455146c4c1575541574541574
-5415745415745415745415745415745415745415745c2479040404
-040404641a7c641a7c5c1c7c641a7c5c147c5c147c5c15745c15745c15745c0c735c1574641474
-5c1574540b6c5c1574540b74540b6c5c15745c15745c15745c0c73540b6c540b745415745c1574
-5c15745c15745c0c73540b6c5c15745c1574540b6c5c15745c15745c1574541574540b74540b6c
-5c157455146c540b74540b6c540b6c5c1574540b6c540b745c15745c15745c1574541574541574
-5c15745415745415745c15745415745415745c1574540b745c15745415745c1574541574541574
-54157455146c5c2479541574541c6c541574540b6c540b6c541574541574541574541574541574
-5415745415745c157455146c541574541574541574540b74540b6c55146c5c2479541574541574
-54157454157454157454157454157454157454157464257c040404
-0404045c15745c147c5c15745c1c7c6414745c15745c1574641a7c5c1574540b745c15745c1574
-5c15745c0c735c157455146c5c1574540b6c540b745c1574540b6c5c0c735c1574540b6c541574
-5c15745c15745415745c157455146c5c1574540b7455146c5c15745415745c1574540b6c55146c
-64147455146c540b6c55146c5415745c1574540b6c5c157455146c540b74540b6c541574541574
-5c15745c15745415745415745c15745c1574540b74540b6c540b74540b6c5c0c7355146c541574
-541574541574541574541c6c5415745c1574540b74540b6c54157455146c5415745415744c086c
-55146c5415745415744c157555146c5415745c15744c0b74540b6c541574541574541574541574
-5c24795415745415745c2479541574541c7c5c15745c2479040404
-0404045c15745c15745c15746414745c1c7c6414745c0c7c64257c5c15745c0c735c0c73540b74
-540b745c15745c15745c15745c15745c157455146c540b745c15745c15745c1574540b6c5c0c73
-5c15745c15745c1574540b6c540b6c5c1574540b6c540b6c5415745c15745c1574540b6c540b74
-55146c540b6c55146c540b6c540b6c5c15745c15745c1574540b6c5c15745c1574540b6c540b6c
-5c15745c157455146c55146c5c157455146c5c15745c15745c15745415745c15745415745c1574
-5c15745c15745415744c146c541574541c6c541574540b6c4c086c55146c540b6c54157455146c
-4c086c55146c540b6c55146c540b6c54157455146c540b6c55146c540b6c541574541574541574
-5415745415745415745415745415745415745415745c2479040404
-0404045c0c735c147c5c15745c147c641a7c641a7c5c0c735c15745c1574540b74540b6c5c1574
-5c1574540b745c15745c1574540b745c15745c1574540b6c540b6c5c15745c1574540b745c1574
-5c15745c15745c1574540b74540b6c540b74540b6c5415745c0c735415745c1574540b6c540b6c
-540b74540b6c540b7455146c540b6c5c1574541574540b6c540b6c540b6c5c1574540b6c540b6c
-5c15745c1574541574540b6c540b745c1574540b6c5c1574540b6c55146c540b74541574541574
-5415745415745415745415745c15745415745c1574541574541574541574540b6c55146c540b74
-540b6c4c086c541574541574540b6c4c086c5415745415744c146c540b7455146c4c146c541574
-5415745415745c1c7c5415745415745415745415745c2479040404
-0404045c0c735c1574641a7c6414745c147c5c15745c0c735c24795c0c735c0c735c0c735c1574
-5c1574540b745c0c73540b74540b6c5c1574540b6c5415745c15745415745c157455146c540b6c
-5c15745415745c1574540b6c540b6c540b6c5c15745415745c15745c15745c157455146c5c1574
-5c15745c15745c1574540b6c5c0c73541574540b6c5c1574540b6c540b7455146c5415745c1574
-540b74541574540b6c540b74540b6c55146c540b745c1574540b6c54157455146c5c1574541574
-55146c55146c5415745c15745415744c146c541574541574540b6c540b6c540b6c54157455146c
-4c086c55146c540b6c540b7455146c54157455146c4c15754c146c55146c4c1575541574541574
-5415745415745415745415745415745c15745415745c2479040404
-0404045c15746414745c1c7c641a7c641a7c5c15745c15745c15745c15745c0c735c15745c1574
-5c15745c0c73540b745c0c735c0c735c0c735c0c73540b6c5c15745c15745c0c735415745c1574
-5415745c1574541574540b745004645c0c73540b6c540b745c15745c1574540b6c5415745c0c73
-5415745c0c73540b74540b6c55146c540b6c55146c5c0c73540b6c5415745c0c7355146c540b74
-540b6c540b745c0c7355146c540b745c1574540b6c540b6c540b6c540b6c540b74541574540b6c
-540b6c540b6c5415745c15745415744c1575540b6c55146c540b6c4c146c540b7455146c4c086c
-55146c5415744c086c540b6c55146c540b745415744c146c541574541574541574541574541574
-54157454157455146c5415745415745415745415745c1574040404
-040404641a7c641a7c5c1574641a7c641a7c5c147c5c0c735c147c5c147c5c15745415745c1574
-540b74541574540b745c15745415745c0c73540b6c540b745415745c15745c15745c1574541574
-5c15745415745c15745c0c735c0c73540b74540b6c5c15745c15745c1574540b6c540b6c540b6c
-540b6c540b74540b6c540b6c540b6c540b6c540b74540b6c540b6c540b6c540b745c157455146c
-540b74540b6c540b6c540b74540b6c540b74540b6c5c1574540b74540b74540b6c540b6c540b6c
-541574540b6c55146c4c146c541574541574541574541574540b6c540b6c55146c4c086c55146c
-540b74540b6c5415744c086c540b7455146c540b6c541574540b6c55146c4c086c55146c4c146c
-55146c4c157555146c5415745415745415745415745c2479040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404040404040404040404040404
-040404040404040404040404040404040404040404040404040404
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/algor.gif b/Docs/Books/algor.gif
deleted file mode 100644
index 6b640dee39c..00000000000
Binary files a/Docs/Books/algor.gif and /dev/null differ
diff --git a/Docs/Books/algor.txt b/Docs/Books/algor.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/dbi.eps b/Docs/Books/dbi.eps
deleted file mode 100644
index e636ad315e7..00000000000
--- a/Docs/Books/dbi.eps
+++ /dev/null
@@ -1,1212 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/dbi.eps
-%%CreationDate: Sun Dec 31 14:29:02 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 296 383
-%%EndComments
-%%BeginPreview: 100 131 1 131
-% fffffffffffffffffffffffff0
-% 80aaaaaaaaaaaaaaaaaaaaa810
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000004401012000000000010
-% 80000000000240200000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80a00000000400000000000010
-% 800552a4251100000000000010
-% 80900411110100000000000010
-% 80000000000000000000000010
-% 80012000020800000000000010
-% 81fedffffdf7fffffffffff810
-% 8112a4924a4a24444444444810
-% 80ed5b6db58adbbbbbbbbbb010
-% 81001555554aa000a000a02810
-% 81638aaaaa8558745c68a85010
-% 81424555554aa8aa2a2a50d410
-% 8152a555554ad4aa145428a810
-% 8142c286a88aa8ab8a5450a810
-% 8162a471484aac548a5458a810
-% 81428491048aa8ab0a01a8a810
-% 815008e14b4ad4ad4a2850a810
-% 8142b0094a8aa855445458a810
-% 8162a9d68aa554aa8a5428a810
-% 8142a92aca8aa8aa8a5728a810
-% 8152a8d54acad4ad145428a810
-% 8142a8aa8a855455165528a810
-% 8162d4514a8aa8542a5450a810
-% 8140aa068282a000d004a72810
-% 8155558935355b6f592f595010
-% 815556b6d5d56a92aadbb75810
-% 8155aaaaaa55556d555faaa810
-% 8155555555aaaaaaaadbeda810
-% 800000000000000000ffdac010
-% 800000000000000001fe754010
-% 800000000000000003dda56010
-% 800000000000000007f9bfe010
-% 80000000000000000fab6f6010
-% 80000000000000001fdb74a010
-% 8000000000000007fedd577010
-% 800000000000003fbfe8aeb010
-% 8000005a954000ff7faebfb810
-% 80000ffffffffffdefd9053810
-% 80001effffffffd52f697b5010
-% 80007bf7ffffffadffdc4fa010
-% 8000f56ab6ddf77b55abda4010
-% 8003b56b6dbbdfd7aff4a10010
-% 8007d66ddbaebcb5b7b1800010
-% 800ea9b6bed7efaedde3000010
-% 801f7abdeada5adb56d2000010
-% 801dca6db555bdfd7aa6000010
-% 803eb6ebeb77eb4eade4000010
-% 803b553dabac9bbb2a68000010
-% 807f4b6bf8d377abbac0000010
-% 807da8976fadd6b7d550000010
-% 80fe9b4af976b7766048000010
-% 80fba4a3bf555bebea90000010
-% 81ff6d54fbfb2bbf4a50000010
-% 81fbe4c15d56ebeaa2a0000010
-% 83ff5a543ffd19df6d00000010
-% 83ffbaa516b3a7bc8b30000010
-% 83f572bd4bfef97aeea0000010
-% 83af7b384eeaabf73c80000010
-% 87a5b97f0055b76af300000010
-% 85a7de7ff29f4ee9f400000010
-% 87e3b57ff925dd5b4100000010
-% 8d23ec7abe1254a76f00000010
-% 876352ef55e445d4ff00000010
-% 8b43fcdce13f5ef7fe00000010
-% 8ac1e5f6a00031b4ea00000010
-% 8f43a935600005dafc00000010
-% 8b435a7a400002b4f600000010
-% 8ac3ec246000036c6900000010
-% 8d235438800002ba5c00000010
-% 8fc3f012c00002ac5a00000010
-% 8563a82a800001d82200000010
-% 8aa36034800001f47600000010
-% 86a3d029000001583000000010
-% 85e3e026000001582e00000010
-% 8797c058000000f43400000010
-% 84afc02ad00001343100000010
-% 83a780c4880000d83500000010
-% 836b805a080000d82a00000010
-% 817380ec080000a41000000010
-% 81688075580000b43500000010
-% 80b62051a80000281900000010
-% 804d486ef00000e81400000010
-% 803dc58e600000241b00000010
-% 8005b96fc00000c80c00000010
-% 801b9b6f800000a80d00000010
-% 801edb7e800000540480000010
-% 801ebbeb000000140400000010
-% 801c055e800000580550000010
-% 801600057000002c02a8000010
-% 801500028c0000240324000010
-% 80160002b40000160294000010
-% 80140001ac0000118174000010
-% 80134000200000154000000010
-% 801540000000000ab000000010
-% 801520000000000a5000000010
-% 8015400000000004e000000010
-% 800fc000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80810000000000000000000010
-% 815a6900000000000000000010
-% 804a4100000000000000000010
-% 81022800000000281080120010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-281.300715 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 131 8
-% Transformation matrix
-[ 100 0 0 131 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202
-020202ffffffffffffffffffffffffffffffd9eaec7dd6e509a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffd9eaecd9eaecd9eaecd9eaecd9eaec
-d9eaecd9eaecffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffd9eaecd9eaecffffffffffffffffffffffffffffffd9eaecd9eaecffffffffffffffffff
-ffffffffffffd9eaecc7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-d9eaecffffffffffffd9eaecffffffffffffffffffffffffd9eaecffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffc7c7c9c7c7c99b9b9fc7c7c9afafb2c7c7c99b9b9fc7c7c9afafb2c7c7c9c7c7c9c7c7c9
-afafb2d9eaecc7c7c9c7c7c9afafb2c7c7c9afafb2afafb2c7c7c9c7c7c9afafb2c7c7c99b9b9f
-afafb2c7c7c99b9b9fafafb2d9eaecafafb2c7c7c9d9eaecffffffc7c7c9d9eaecd9eaecc7c7c9
-afafb2c7c7c9ffffffc7c7c9c7c7c9c7c7c9d9eaecafafb2ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffd9eaecffffffd9eaecc7c7c9c7c7c9d9eaecc7c7c9d9eaecd9eaecd9eaecd9eaecc7c7c9
-d9eaecffffffd9eaecffffffd9eaecffffffc7c7c9afafb2d9eaecd9eaecafafb2ffffffd9eaec
-c7c7c9d9eaecd9eaecc7c7c9d9eaecd9eaecafafb2afafb2ffffffc7c7c9d9eaecd9eaecd9eaec
-d9eaecd9eaecffffffd9eaecd9eaecd9eaecd9eaecc7c7c9ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffc7c7c9d9eaecafafb2ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffd9eaecffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff9b9b9fffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffff8a8a8ed9eaec7a7b80c7c7c9afafb2
-c7c7c9d9eaecd9eaecc7c7c9c7c7c9ffffffafafb2c7c7c9d9eaecc7c7c9c7c7c9d9eaecafafb2
-d9eaecc7c7c9c7c7c9c7c7c9c7c7c9d9eaecc7c7c9d9eaecafafb2d9eaecd9eaecafafb2c7c7c9
-d9eaecc7c7c9ffffffffffff9b9b9fd9eaec9b9b9fafafb2d9eaecd9eaecc7c7c9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffd9eaec8a8a8ed9eaecd9eaec9b9b9fd9eaec
-8a8a8effffff6c6c71c7c7c9afafb2d9eaec9b9b9fc7c7c9c7c7c9afafb2afafb2afafb2afafb2
-afafb2afafb2c7c7c96c6c719b9b9fc7c7c9c7c7c9d9eaecafafb29b9b9fc7c7c9afafb2c7c7c9
-afafb29b9b9fffffffffffff9b9b9f9b9b9fd9eaecafafb26c6c71d9eaecc7c7c9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffafafb2afafb2ffffffd9eaecafafb2ffffff
-c7c7c9d9eaecc7c7c99b9b9fc7c7c9c7c7c9d9eaecafafb29b9b9fafafb2c7c7c99b9b9fc7c7c9
-c7c7c98a8a8ed9eaecafafb2c7c7c9c7c7c9afafb2c7c7c9c7c7c99b9b9fafafb2afafb2c7c7c9
-8a8a8ed9eaecffffffc7c7c9afafb2afafb2c7c7c9c7c7c98a8a8ec7c7c9ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffc7c7c9ffffffc7c7c9ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafb2
-d9eaecc7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffff7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e5d9eaecffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be7dd6e5d9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be7dd6e57dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e57dd6e57dd6e57dd6e5d9eaec7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e509a4be09a4be
-09a4be09a4be09a4be09a4be7dd6e5d9eaecd9eaecffffffd9eaec7dd6e57dd6e57dd6e57dd6e5
-7dd6e509a4be09a4be09a4be09a4be09a4be7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e509a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4bed9eaecffffff
-d9eaec09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be7dd6e5ffffffffffff7dd6e509a4be09a4be09a4be09a4be7dd6e5d9eaecd9eaec7dd6e5
-09a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5
-ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e57dd6e5ffffffd9eaec7dd6e509a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5
-ffffff7dd6e509a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be
-09a4beffffffffffff09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4bed9eaecffffff7dd6e509a4be09a4be09a4be7dd6e5
-7dd6e57dd6e57dd6e509a4be09a4be09a4be09a4be09a4be09a4be7dd6e509a4be09a4be7dd6e5
-7dd6e509a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-d9eaecffffff7dd6e509a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be
-09a4beffffffffffff09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be7dd6e5d9eaec09a4be
-09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be7dd6e5ffffff
-ffffff7dd6e509a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffff7dd6e509a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffff7dd6e509a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4bed9eaec7dd6e509a4be09a4be
-09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be7dd6e5ffffffffffff7dd6e509a4be7dd6e5
-7dd6e509a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffffd9eaec09a4be09a4be09a4beffffffffffff7dd6e57dd6e57dd6e57dd6e5d9eaec
-d9eaec09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-d9eaec7dd6e57dd6e57dd6e57dd6e5ffffff7dd6e509a4be7dd6e5ffffff7dd6e509a4be09a4be
-09a4be09a4be7dd6e5d9eaecffffff09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4beffffffffffff09a4be09a4be09a4beffffffd9eaec7dd6e57dd6e57dd6e57dd6e5d9eaec
-ffffff7dd6e509a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be7dd6e57dd6e57dd6e57dd6e509a4be09a4bed9eaecffffff7dd6e57dd6e57dd6e5
-7dd6e57dd6e57dd6e57dd6e57dd6e509a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4beffffffffffff09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4bed9eaecd9eaec09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffffd9eaec09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffff7dd6e509a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-09a4be09a4beffffffd9eaec09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-ffffffd9eaec09a4be09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-09a4be09a4beffffffd9eaec09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4bed9eaec
-ffffff7dd6e509a4be09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be
-09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff
-7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be
-09a4be09a4be09a4be7dd6e57dd6e509a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be
-09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4bed9eaecffffff7dd6e509a4be09a4be09a4be09a4be09a4be09a4bed9eaecffffff
-7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be
-7dd6e5ffffffffffff09a4be09a4be09a4be09a4be7dd6e5d9eaec7dd6e509a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be7dd6e5d9eaecffffff
-d9eaec7dd6e57dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5d9eaecffffff
-ffffffd9eaecd9eaec7dd6e509a4be09a4be09a4be7dd6e5d9eaecffffffd9eaec7dd6e509a4be
-09a4be09a4be7dd6e5d9eaecffffffd9eaec7dd6e509a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e57dd6e5ffffffffffffffffff7dd6e57dd6e57dd6e57dd6e57dd6e5d9eaec7dd6e509a4be
-09a4be09a4be09a4be09a4be7dd6e5d9eaecffffffffffff7dd6e57dd6e57dd6e57dd6e509a4be
-c7c7c9d9eaec09a4be09a4be09a4be09a4be7dd6e59b9b9f6c6c716c6c717dd6e57dd6e509a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be7dd6e509a4be09a4be
-09a4be7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-7dd6e57dd6e509a4be09a4be09a4be09a4be09a4be7dd6e509a4be09a4be7dd6e509a4be09a4be
-09a4be09a4be7dd6e509a4be09a4be7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be7dd6e509a4be09a4be09a4be7dd6e509a4be7dd6e57dd6e509a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be7dd6e57dd6e509a4be09a4be7dd6e57dd6e57dd6e56c6c71444348
-1f1f2209a4be09a4be09a4be09a4be09a4be7a7b805d5e62afafb25d5e629b9b9f09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be0202027a7b80
-4443480202025050546c6c714443485050545d5e6250505450505434353909a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be3435391f1f227a7b80
-3435390202023435398a8a8e6c6c718a8a8e6c6c717a7b805d5e626c6c7109a4be09a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be
-09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be5d5e626c6c711f1f221f1f225d5e62
-1f1f221f1f220202021f1f226c6c716c6c718a8a8e5050547a7b805d5e6244434809a4be09a4be
-09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaec
-d9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaec
-d9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaec
-d9eaecd9eaecd9eaecd9eaecd9eaecffffffd9eaec5050544443483435391f1f221f1f221f1f22
-1f1f223435391f1f225050545d5e625050545050546c6c717a7b808a8a8e3435395d5e62afafb2
-d9eaecd9eaecffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffd9eaec3435391f1f221f1f224443483435391f1f22020202
-5d5e625d5e628a8a8e6c6c715d5e624443487a7b808a8a8e7a7b807a7b808a8a8e5050547a7b80
-d9eaecffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffd9eaec5050543435394443483435395d5e623435391f1f221f1f22
-9b9b9f8a8a8e5050545d5e626c6c716c6c719b9b9f6c6c718a8a8e9b9b9f9b9b9f505054343539
-9b9b9fffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffd9eaec5d5e621f1f221f1f223435393435395050545050540202027a7b80
-c7c7c94443485050548a8a8e7a7b805d5e627a7b805d5e623435393435393435391f1f22020202
-afafb2ffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff7a7b803435393435391f1f223435394443486c6c716c6c713435399b9b9f
-6c6c715050547a7b808a8a8e3435395050543435393435393435393435396c6c713435391f1f22
-c7c7c9ffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffd9eaec6c6c713435393435391f1f223435391f1f223435396c6c714443484443488a8a8e
-5050545050548a8a8e3435391f1f226c6c715d5e623435397a7b807a7b808a8a8e6c6c71343539
-8a8a8effffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffc7c7c9c7c7c98a8a8e505054444348343539
-3435391f1f221f1f221f1f221f1f221f1f223435391f1f224443487a7b807a7b804443486c6c71
-7a7b807a7b807a7b806c6c715050545d5e627a7b803435393435398a8a8e8a8a8e7a7b80343539
-1f1f22ffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffafafb26c6c711f1f221f1f221f1f22343539343539343539
-4443484443483435391f1f221f1f220202023435393435393435396c6c716c6c715d5e625d5e62
-afafb29b9b9f8a8a8e7a7b809b9b9f8a8a8e1f1f223435394443489b9b9f3435398a8a8e444348
-1f1f229b9b9fffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffd9eaecd9eaecc7c7c9afafb29b9b9f
-9b9b9f6c6c716c6c717a7b807a7b808a8a8e9b9b9f9b9b9f9b9b9f9b9b9f9b9b9f8a8a8e8a8a8e
-8a8a8e9b9b9f9b9b9fafafb2afafb2afafb2afafb2c7c7c9c7c7c9d9eaecd9eaecd9eaecffffff
-ffffffffffffd9eaecafafb24443481f1f223435391f1f223435394443483435391f1f225d5e62
-5050543435394443481f1f221f1f220202021f1f224443485d5e627a7b807a7b805050546c6c71
-7a7b809b9b9f7a7b809b9b9f6c6c715d5e624443481f1f225050544443485050548a8a8e343539
-343539343539d9eaecffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffd9eaec7a7b801f1f22020202343539020202020202
-1f1f221f1f220202020202021f1f220202021f1f220202020202020202020202021f1f22020202
-0202020202020202020202020202020202020202020202020202020202020202021f1f22343539
-4443485050541f1f220202023435391f1f223435394443483435391f1f225d5e624443485d5e62
-5050544443487a7b804443481f1f221f1f223435394443483435395d5e626c6c711f1f228a8a8e
-8a8a8e8a8a8eafafb29b9b9f9b9b9f9b9b9f7a7b804443485d5e621f1f229b9b9fafafb2343539
-1f1f22505054ffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff9b9b9f1f1f223435394443484443485d5e62444348343539
-1f1f221f1f223435391f1f221f1f221f1f221f1f221f1f221f1f221f1f221f1f223435391f1f22
-1f1f221f1f220202021f1f221f1f221f1f220202020202021f1f221f1f220202021f1f22020202
-0202021f1f220202021f1f224443483435397a7b805050546c6c715d5e626c6c71505054505054
-7a7b806c6c716c6c713435391f1f221f1f221f1f225d5e625050546c6c717a7b803435398a8a8e
-c7c7c97a7b80afafb29b9b9f8a8a8e7a7b806c6c718a8a8e7a7b805050549b9b9fafafb29b9b9f
-505054d9eaecffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffc7c7c95050541f1f223435394443484443485050541f1f225d5e62343539
-1f1f223435394443483435395050544443480202024443481f1f225050543435391f1f22343539
-1f1f224443480202021f1f223435393435393435391f1f223435390202021f1f224443481f1f22
-4443483435390202023435393435397a7b805d5e628a8a8e4443481f1f228a8a8e8a8a8e444348
-5d5e621f1f223435395d5e624443481f1f220202024443485050546c6c718a8a8e4443486c6c71
-9b9b9fc7c7c99b9b9f7a7b807a7b806c6c715d5e625050544443481f1f225050547a7b807a7b80
-afafb2ffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff8a8a8e3435391f1f223435395050545050546c6c717a7b805d5e625d5e625d5e62
-3435395050545050548a8a8e7a7b806c6c71505054505054505054343539444348444348444348
-5d5e624443483435395050544443480202024443484443483435391f1f224443483435391f1f22
-5d5e624443480202024443485d5e627a7b804443486c6c714443486c6c715d5e623435395d5e62
-7a7b807a7b805d5e627a7b805d5e623435391f1f223435395050547a7b807a7b803435398a8a8e
-8a8a8e6c6c716c6c715d5e626c6c715050546c6c714443481f1f225d5e629b9b9f5d5e628a8a8e
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-afafb23435393435396c6c715d5e625050544443487a7b805d5e628a8a8e9b9b9f6c6c716c6c71
-3435398a8a8e4443488a8a8e5d5e625d5e627a7b805050546c6c715d5e62505054444348505054
-4443480202026c6c713435391f1f225d5e625d5e624443481f1f22444348343539444348343539
-1f1f221f1f221f1f224443485050545050546c6c715d5e627a7b806c6c715d5e62020202505054
-6c6c714443489b9b9f4443481f1f224443483435391f1f225d5e624443485d5e626c6c718a8a8e
-afafb28a8a8e3435395d5e628a8a8eafafb2c7c7c9c7c7c9d9eaecafafb2c7c7c9c7c7c9ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9b9b9f
-1f1f223435394443481f1f224443487a7b807a7b807a7b801f1f227a7b807a7b80afafb27a7b80
-4443486c6c718a8a8e5d5e628a8a8e6c6c715050543435395050547a7b805d5e625d5e625d5e62
-5050545050548a8a8e6c6c716c6c714443481f1f225d5e625d5e625050545050545050545d5e62
-3435390202028a8a8e7a7b805d5e625d5e625d5e623435396c6c713435397a7b805d5e62444348
-6c6c711f1f226c6c716c6c715050545050540202020202028a8a8e5050544443488a8a8ec7c7c9
-9b9b9f8a8a8e505054d9eaecffffffffffffd9eaecffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafb2343539
-3435394443485d5e623435396c6c716c6c716c6c717a7b808a8a8e9b9b9f8a8a8e4443487a7b80
-6c6c714443485d5e620202026c6c716c6c716c6c715050543435391f1f22444348343539444348
-8a8a8e5d5e621f1f227a7b806c6c717a7b806c6c714443484443485d5e621f1f22444348505054
-3435394443486c6c713435395050546c6c715d5e626c6c716c6c715d5e625d5e625d5e62444348
-4443487a7b805050543435396c6c716c6c715050541f1f22444348343539505054d9eaecc7c7c9
-6c6c71343539c7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec444348343539
-4443481f1f225d5e626c6c716c6c711f1f226c6c714443488a8a8e8a8a8e7a7b807a7b806c6c71
-6c6c711f1f225050545d5e625d5e626c6c713435395050546c6c715050546c6c71505054444348
-9b9b9f4443483435397a7b805d5e624443486c6c716c6c715d5e628a8a8e7a7b808a8a8e6c6c71
-3435395d5e625d5e624443485050545d5e626c6c713435393435397a7b803435391f1f229b9b9f
-8a8a8e8a8a8e6c6c716c6c71343539343539afafb23435391f1f226c6c716c6c71d9eaecc7c7c9
-5050547a7b80ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffff9b9b9f1f1f22343539
-1f1f226c6c715d5e621f1f226c6c715050548a8a8e8a8a8e6c6c719b9b9f7a7b80c7c7c9444348
-4443486c6c715d5e623435397a7b801f1f224443486c6c714443486c6c717a7b808a8a8e9b9b9f
-9b9b9f7a7b807a7b806c6c718a8a8e8a8a8e6c6c717a7b807a7b805d5e625d5e62505054444348
-1f1f226c6c717a7b806c6c715050543435396c6c715d5e624443485d5e626c6c717a7b806c6c71
-6c6c711f1f225050544443487a7b807a7b808a8a8e5d5e625d5e62505054afafb2c7c7c9afafb2
-5d5e62d9eaecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffff4443481f1f22343539
-3435395d5e626c6c716c6c716c6c719b9b9f5d5e628a8a8e4443486c6c716c6c71afafb25d5e62
-3435396c6c717a7b806c6c716c6c711f1f225050543435391f1f227a7b805d5e626c6c717a7b80
-3435398a8a8e7a7b800202025d5e628a8a8e0202023435396c6c710202024443486c6c717a7b80
-5d5e625d5e621f1f224443485d5e626c6c716c6c716c6c713435393435395d5e627a7b809b9b9f
-7a7b803435397a7b803435395050548a8a8e5050545d5e621f1f22343539afafb2c7c7c97a7b80
-afafb2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffc7c7c91f1f223435391f1f22
-5d5e623435393435396c6c716c6c719b9b9f3435398a8a8e8a8a8e6c6c717a7b809b9b9f7a7b80
-5050545d5e624443485d5e625d5e625050543435394443485050547a7b809b9b9f9b9b9f7a7b80
-1f1f225d5e625d5e626c6c715d5e626c6c716c6c717a7b807a7b807a7b806c6c717a7b80444348
-5d5e628a8a8e5050543435396c6c718a8a8e5d5e625050546c6c715d5e623435396c6c718a8a8e
-9b9b9f5d5e628a8a8e5050549b9b9f5d5e62c7c7c96c6c711f1f226c6c71afafb27a7b809b9b9f
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffff5d5e620202023435391f1f22
-4443484443485050549b9b9f7a7b808a8a8eafafb26c6c717a7b808a8a8e4443489b9b9f7a7b80
-5050546c6c716c6c715050543435395050543435395050544443485d5e621f1f226c6c719b9b9f
-9b9b9f7a7b803435399b9b9f6c6c716c6c718a8a8e6c6c711f1f227a7b805d5e62505054343539
-5d5e627a7b805d5e621f1f221f1f228a8a8e7a7b806c6c717a7b805d5e625d5e621f1f226c6c71
-8a8a8e5050546c6c711f1f22afafb25d5e629b9b9f9b9b9f5050549b9b9fd9eaec8a8a8ed9eaec
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffc7c7c9020202020202444348444348
-0202025d5e626c6c715050547a7b807a7b809b9b9f8a8a8e9b9b9f9b9b9f9b9b9f9b9b9f6c6c71
-8a8a8e7a7b806c6c716c6c713435395050544443481f1f224443487a7b804443486c6c716c6c71
-5d5e624443488a8a8e5d5e626c6c711f1f228a8a8e9b9b9f5d5e625d5e625d5e628a8a8e6c6c71
-7a7b804443480202025050545d5e628a8a8e5d5e626c6c715050545050545d5e62444348343539
-3435398a8a8e7a7b808a8a8e8a8a8eafafb28a8a8eafafb2505054afafb29b9b9f8a8a8effffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffff5050540202020202021f1f221f1f22
-3435395d5e625050541f1f229b9b9fc7c7c97a7b805d5e629b9b9f5050549b9b9f5d5e626c6c71
-afafb2d9eaec7a7b807a7b803435395d5e625050543435393435395d5e624443485d5e627a7b80
-5d5e626c6c717a7b801f1f227a7b808a8a8e5050546c6c717a7b806c6c715050545050545d5e62
-6c6c718a8a8e1f1f225050546c6c716c6c715050543435397a7b803435395d5e628a8a8e6c6c71
-5d5e625d5e626c6c719b9b9fafafb2afafb2afafb2c7c7c97a7b80afafb29b9b9f7a7b80ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffc7c7c90202020202021f1f22343539444348
-4443480202025050545d5e627a7b80afafb2afafb28a8a8e7a7b809b9b9f8a8a8e9b9b9f8a8a8e
-9b9b9fafafb2afafb2afafb28a8a8e5d5e625050546c6c711f1f221f1f223435393435396c6c71
-5d5e626c6c715d5e627a7b805d5e629b9b9f4443485d5e627a7b809b9b9f8a8a8e8a8a8e343539
-3435397a7b800202024443484443484443483435394443484443488a8a8e3435390202027a7b80
-4443483435397a7b801f1f22c7c7c95d5e62c7c7c9afafb29b9b9fc7c7c99b9b9fafafb2ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec4443480202021f1f220202023435391f1f22
-4443481f1f225050546c6c71505054505054c7c7c99b9b9f3435398a8a8e7a7b808a8a8e505054
-afafb27a7b809b9b9f8a8a8ec7c7c9afafb25050545d5e623435393435393435396c6c716c6c71
-1f1f225d5e623435395d5e620202025d5e627a7b807a7b804443489b9b9f9b9b9f8a8a8e9b9b9f
-7a7b807a7b803435391f1f225050544443481f1f227a7b806c6c716c6c715d5e623435397a7b80
-5d5e625d5e62afafb29b9b9fc7c7c98a8a8ec7c7c98a8a8e7a7b80afafb28a8a8eafafb2ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffafafb21f1f221f1f22020202020202343539343539
-5d5e624443481f1f225050544443484443489b9b9f8a8a8e7a7b80afafb2afafb25d5e62343539
-afafb2c7c7c9afafb2afafb2c7c7c99b9b9f9b9b9f5d5e625d5e625d5e623435395050545d5e62
-3435395050545d5e625050545050548a8a8e3435394443485d5e628a8a8e5050545050545d5e62
-7a7b809b9b9f5050541f1f224443481f1f225050545d5e621f1f225050545050546c6c71505054
-6c6c718a8a8eafafb29b9b9fc7c7c96c6c719b9b9f5d5e629b9b9f8a8a8ec7c7c9afafb2ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffff8a8a8e0202021f1f221f1f220202021f1f221f1f22
-3435391f1f223435395050546c6c715050546c6c716c6c71afafb26c6c719b9b9fafafb26c6c71
-afafb2afafb29b9b9fafafb2c7c7c9c7c7c9afafb2afafb25050543435393435391f1f22444348
-5050543435395d5e620202023435396c6c715050545d5e626c6c718a8a8e9b9b9fafafb27a7b80
-343539afafb29b9b9f1f1f221f1f223435397a7b806c6c714443485d5e620202027a7b806c6c71
-8a8a8e5d5e628a8a8e6c6c717a7b808a8a8e5050548a8a8eafafb2c7c7c99b9b9fc7c7c9ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffff5050540202021f1f221f1f221f1f221f1f22343539
-1f1f221f1f223435394443487a7b801f1f225d5e623435399b9b9f5050547a7b806c6c718a8a8e
-7a7b809b9b9f9b9b9f7a7b809b9b9fafafb28a8a8ec7c7c9c7c7c97a7b80343539444348444348
-4443485050545050545050545050545d5e627a7b807a7b806c6c715d5e628a8a8e4443487a7b80
-9b9b9f6c6c718a8a8e1f1f223435398a8a8e5050545050541f1f223435395d5e628a8a8e6c6c71
-6c6c71c7c7c9afafb29b9b9f6c6c711f1f22444348afafb2d9eaec8a8a8e7a7b80ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffd9eaec1f1f221f1f22444348343539343539343539444348
-4443485d5e625050545d5e625050543435395050548a8a8eafafb28a8a8ec7c7c98a8a8e7a7b80
-7a7b805d5e623435395d5e627a7b808a8a8e7a7b80afafb2afafb29b9b9f5d5e627a7b80343539
-1f1f225050540202023435395050541f1f226c6c711f1f227a7b801f1f225050541f1f225d5e62
-5050546c6c718a8a8e3435395d5e625d5e624443483435393435395d5e627a7b809b9b9f5d5e62
-4443485d5e628a8a8e3435394443485050548a8a8e5d5e629b9b9f9b9b9fc7c7c9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffff9b9b9f0202020202024443484443483435398a8a8e9b9b9f
-3435393435393435398a8a8e4443483435391f1f225d5e629b9b9f6c6c715050549b9b9f9b9b9f
-4443481f1f22343539505054afafb2afafb2afafb28a8a8eafafb2c7c7c97a7b806c6c71505054
-7a7b806c6c714443484443487a7b806c6c716c6c715050547a7b806c6c718a8a8e7a7b808a8a8e
-5d5e628a8a8e3435391f1f226c6c714443481f1f221f1f225050543435395050545050548a8a8e
-8a8a8e3435396c6c713435394443486c6c71c7c7c99b9b9fc7c7c99b9b9fd9eaecffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffff5d5e624443483435394443487a7b804443489b9b9fd9eaec
-1f1f226c6c711f1f227a7b808a8a8e6c6c713435393435396c6c71afafb25d5e62c7c7c98a8a8e
-1f1f220202021f1f220202023435398a8a8e9b9b9fafafb2c7c7c9d9eaecafafb28a8a8eafafb2
-afafb29b9b9f6c6c717a7b805050546c6c715d5e628a8a8e3435397a7b806c6c718a8a8e505054
-8a8a8e5d5e620202024443486c6c713435394443485d5e629b9b9f7a7b807a7b809b9b9f343539
-3435395d5e621f1f22505054afafb28a8a8e7a7b80c7c7c98a8a8ec7c7c9ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffd9eaec5050545050540202024443487a7b80444348afafb2ffffff
-4443483435393435391f1f225050545d5e625d5e623435393435398a8a8e5d5e62c7c7c95d5e62
-0202021f1f223435393435391f1f221f1f221f1f221f1f225d5e626c6c71d9eaecc7c7c9c7c7c9
-8a8a8e7a7b808a8a8e9b9b9f6c6c715d5e625050545050543435398a8a8e8a8a8e8a8a8e7a7b80
-5050540202026c6c718a8a8e4443483435393435396c6c716c6c719b9b9f9b9b9f5d5e62343539
-5050541f1f224443487a7b80afafb2c7c7c9c7c7c98a8a8ec7c7c9ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff9b9b9f1f1f226c6c714443485050544443481f1f22c7c7c9ffffff
-9b9b9f0202024443484443485d5e626c6c715d5e623435396c6c716c6c715d5e62afafb2444348
-1f1f223435391f1f223435393435391f1f223435394443481f1f223435395050549b9b9f9b9b9f
-7a7b809b9b9fc7c7c99b9b9f8a8a8e8a8a8e6c6c715050547a7b801f1f225d5e628a8a8e7a7b80
-6c6c713435398a8a8e7a7b806c6c716c6c716c6c717a7b805050548a8a8e5050540202028a8a8e
-5050545d5e62c7c7c9c7c7c9c7c7c99b9b9f5050549b9b9fffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff8a8a8e1f1f226c6c716c6c717a7b807a7b805d5e62d9eaecffffff
-afafb20202021f1f224443481f1f223435398a8a8e5d5e625050549b9b9fc7c7c9c7c7c9343539
-3435394443481f1f223435394443485d5e625d5e625050544443481f1f221f1f224443487a7b80
-c7c7c9d9eaecc7c7c9afafb29b9b9f9b9b9fc7c7c99b9b9fc7c7c97a7b805050549b9b9f8a8a8e
-8a8a8e3435398a8a8e9b9b9f7a7b806c6c717a7b807a7b808a8a8eafafb20202026c6c717a7b80
-3435396c6c718a8a8e8a8a8e4443480202021f1f22c7c7c9ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff7a7b805d5e623435394443487a7b80505054505054ffffffffffff
-d9eaec3435390202026c6c713435395d5e627a7b808a8a8e9b9b9f9b9b9fc7c7c9afafb21f1f22
-5050545050543435394443486c6c715d5e625d5e626c6c716c6c71343539c7c7c95d5e62444348
-5d5e627a7b807a7b807a7b80c7c7c9afafb2afafb28a8a8ec7c7c9afafb28a8a8eafafb2c7c7c9
-afafb25050548a8a8e7a7b805d5e623435397a7b809b9b9f8a8a8e6c6c715050549b9b9f7a7b80
-3435391f1f221f1f221f1f223435390202025d5e62ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff7a7b807a7b801f1f22343539c7c7c98a8a8e7a7b80ffffffffffff
-ffffff5d5e620202026c6c716c6c715050545d5e62505054505054afafb2c7c7c93435391f1f22
-6c6c714443480202025050545d5e627a7b807a7b805d5e623435398a8a8effffffffffffafafb2
-8a8a8e9b9b9f8a8a8e6c6c714443485d5e625050545050546c6c718a8a8e7a7b808a8a8e7a7b80
-6c6c713435395d5e626c6c716c6c713435391f1f224443488a8a8e8a8a8e5d5e624443481f1f22
-3435393435394443483435393435394443489b9b9fffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffd9eaec5d5e626c6c717a7b80afafb26c6c714443489b9b9fffffffffffff
-ffffff7a7b800202021f1f221f1f223435395d5e627a7b805d5e62afafb28a8a8e505054444348
-5050545d5e625050544443486c6c718a8a8e7a7b809b9b9f343539c7c7c9ffffffffffffffffff
-ffffffffffffffffffd9eaecc7c7c9c7c7c97a7b80afafb2ffffffd9eaecc7c7c96c6c715d5e62
-c7c7c96c6c719b9b9f4443485d5e628a8a8e5d5e621f1f227a7b808a8a8e7a7b80afafb2020202
-0202021f1f227a7b803435394443487a7b809b9b9fffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffd9eaec4443485050543435395d5e627a7b801f1f229b9b9fffffffffffff
-ffffff5d5e621f1f225d5e624443486c6c719b9b9f343539afafb2afafb25d5e62d9eaec6c6c71
-1f1f223435396c6c716c6c719b9b9f1f1f228a8a8e5d5e625d5e62d9eaecffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffff9b9b9f8a8a8e8a8a8e3435391f1f228a8a8e6c6c713435396c6c719b9b9fffffff1f1f22
-1f1f220202025050543435391f1f227a7b80afafb2ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffd9eaec5d5e626c6c710202023435399b9b9f343539afafb2ffffffffffff
-ffffff6c6c711f1f226c6c716c6c716c6c716c6c711f1f22afafb25d5e629b9b9fffffff9b9b9f
-1f1f225050545050548a8a8e9b9b9f8a8a8ec7c7c93435395d5e62ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffafafb27a7b807a7b805d5e625050547a7b805050545050548a8a8eafafb2ffffff5d5e62
-1f1f220202023435396c6c715d5e627a7b80afafb2d9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffd9eaec6c6c717a7b808a8a8eafafb28a8a8e5d5e62afafb2ffffffffffff
-ffffff5d5e620202025d5e623435393435398a8a8e5050546c6c716c6c71ffffffffffffd9eaec
-3435396c6c718a8a8e5050548a8a8ec7c7c9c7c7c99b9b9f7a7b80ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffd9eaec7a7b805d5e625d5e626c6c710202025d5e625d5e625d5e62afafb2ffffff9b9b9f
-1f1f225d5e625d5e625d5e628a8a8e9b9b9f9b9b9fd9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffd9eaec5d5e624443487a7b808a8a8e9b9b9f6c6c719b9b9fffffffffffff
-ffffff5d5e621f1f225050545050545d5e626c6c717a7b807a7b80d9eaecffffffffffffffffff
-5050543435396c6c71afafb2d9eaecc7c7c9afafb28a8a8ec7c7c9ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff4443488a8a8e8a8a8e6c6c710202025050546c6c714443489b9b9fffffffafafb2
-3435398a8a8e0202020202027a7b809b9b9f9b9b9fffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff6c6c711f1f220202021f1f225050543435396c6c71ffffffffffff
-ffffff5050540202023435395050544443480202028a8a8eafafb2ffffffffffffffffffffffff
-9b9b9f7a7b809b9b9f9b9b9f6c6c719b9b9f5050546c6c71ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff4443487a7b806c6c719b9b9f8a8a8e5d5e625d5e626c6c719b9b9fffffffd9eaec
-6c6c717a7b801f1f221f1f227a7b808a8a8e9b9b9fffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff9b9b9f5d5e627a7b806c6c717a7b807a7b80505054ffffffffffff
-ffffff5050541f1f224443487a7b805d5e627a7b809b9b9fc7c7c9ffffffffffffffffffffffff
-6c6c717a7b805050549b9b9f505054c7c7c97a7b80c7c7c9ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffafafb24443481f1f223435396c6c719b9b9f343539444348c7c7c9ffffffffffff
-8a8a8e6c6c71afafb2c7c7c9c7c7c97a7b809b9b9fffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffff8a8a8e6c6c719b9b9f7a7b808a8a8e8a8a8e6c6c71d9eaecffffff
-ffffff5050541f1f224443484443483435399b9b9f9b9b9fffffffffffffffffffffffffd9eaec
-5050545d5e626c6c719b9b9fc7c7c9afafb28a8a8effffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffd9eaec3435393435391f1f220202025d5e625d5e627a7b80c7c7c9ffffffffffff
-8a8a8e4443485d5e629b9b9f8a8a8e5d5e628a8a8effffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffafafb20202025050549b9b9f6c6c717a7b806c6c71c7c7c9ffffff
-d9eaec1f1f221f1f221f1f224443486c6c718a8a8effffffffffffffffffffffffffffffafafb2
-6c6c718a8a8e8a8a8e8a8a8eafafb27a7b80c7c7c9ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffd9eaec5d5e628a8a8e6c6c715d5e621f1f225d5e629b9b9fc7c7c9ffffffffffff
-afafb24443481f1f228a8a8eafafb28a8a8ed9eaecffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffafafb24443486c6c713435390202021f1f225050547a7b80ffffff
-9b9b9f0202021f1f221f1f223435396c6c71c7c7c9ffffffffffffffffffffffffffffffafafb2
-8a8a8e9b9b9fafafb29b9b9f7a7b806c6c71ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff7a7b805d5e626c6c71c7c7c96c6c714443488a8a8ec7c7c9ffffffffffff
-c7c7c94443487a7b809b9b9f5d5e626c6c71d9eaecffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffc7c7c96c6c713435391f1f225050548a8a8e9b9b9f8a8a8e9b9b9f
-1f1f220202021f1f221f1f223435399b9b9fffffffffffffffffffffffffffffffffffff8a8a8e
-6c6c717a7b807a7b80ffffff6c6c71c7c7c9ffffffd9eaecd9eaecc7c7c9ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff9b9b9f8a8a8e5d5e620202025050545050547a7b80d9eaecffffffffffff
-ffffff1f1f223435397a7b806c6c718a8a8ec7c7c9ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffff6c6c716c6c719b9b9f7a7b80c7c7c97a7b808a8a8e6c6c71
-0202020202021f1f22343539343539ffffffffffffffffffffffffffffffffffffafafb29b9b9f
-8a8a8e8a8a8e6c6c718a8a8e6c6c71d9eaec9b9b9f5d5e629b9b9f6c6c71afafb2ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff8a8a8e7a7b80afafb21f1f225050546c6c718a8a8ec7c7c9ffffffffffff
-ffffff1f1f220202028a8a8ec7c7c9afafb28a8a8effffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffafafb25050541f1f221f1f22afafb26c6c719b9b9fafafb2
-3435390202021f1f221f1f228a8a8effffffffffffffffffffffffffffffd9eaec7a7b807a7b80
-7a7b80c7c7c9afafb25d5e629b9b9f9b9b9f8a8a8ec7c7c9c7c7c9c7c7c95d5e62afafb2ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffafafb25d5e627a7b808a8a8e7a7b805d5e629b9b9fc7c7c9ffffffffffff
-ffffff4443484443489b9b9fafafb2afafb25d5e62ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffd9eaec5d5e623435396c6c718a8a8e5050546c6c71afafb2
-8a8a8e1f1f221f1f221f1f22c7c7c9ffffffffffffffffffffffffffffffafafb28a8a8e5d5e62
-7a7b809b9b9f5d5e628a8a8e6c6c71afafb2c7c7c9c7c7c9d9eaecc7c7c97a7b808a8a8effffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffc7c7c95d5e621f1f229b9b9f6c6c710202027a7b80d9eaecffffffffffff
-ffffff6c6c716c6c715d5e62afafb28a8a8e8a8a8effffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffafafb25d5e629b9b9f3435391f1f226c6c718a8a8e
-c7c7c99b9b9f1f1f221f1f22d9eaecffffffffffffffffffffffffffffffffffff5d5e62505054
-505054c7c7c95d5e625d5e626c6c71d9eaecc7c7c9d9eaecd9eaecc7c7c96c6c71afafb2ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffd9eaec6c6c719b9b9f5050548a8a8e8a8a8e9b9b9fd9eaecffffffffffff
-ffffff7a7b805d5e629b9b9fafafb29b9b9fafafb2d9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec5d5e626c6c711f1f225d5e626c6c716c6c71
-afafb2c7c7c99b9b9f5d5e62d9eaecffffffffffffffffffffffffffffffffffffafafb2505054
-4443483435396c6c716c6c71afafb2afafb29b9b9fafafb2afafb29b9b9f505054c7c7c9ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff6c6c71c7c7c94443485d5e628a8a8e9b9b9fd9eaecffffffffffff
-ffffff8a8a8e5d5e629b9b9f9b9b9fc7c7c99b9b9fd9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffc7c7c95d5e627a7b807a7b805d5e625d5e62
-0202025d5e62afafb2c7c7c9afafb29b9b9fc7c7c9ffffffffffffffffffffffffd9eaec444348
-6c6c715050547a7b80afafb2afafb28a8a8e3435396c6c717a7b806c6c715d5e62ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff7a7b809b9b9f5d5e628a8a8e9b9b9fc7c7c9d9eaecffffffffffff
-ffffff9b9b9f4443485d5e626c6c71afafb29b9b9fd9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffff9b9b9f5d5e62afafb28a8a8e020202
-0202027a7b805d5e62c7c7c99b9b9f9b9b9f9b9b9f8a8a8eafafb2c7c7c9c7c7c9c7c7c95d5e62
-6c6c718a8a8e8a8a8e7a7b807a7b809b9b9f444348343539505054444348c7c7c9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff7a7b808a8a8e343539afafb24443488a8a8ed9eaecffffffffffff
-ffffffafafb26c6c718a8a8e6c6c71afafb2afafb2d9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffff9b9b9f7a7b807a7b801f1f22
-6c6c71afafb26c6c714443485d5e629b9b9fd9eaecafafb29b9b9fafafb27a7b808a8a8e9b9b9f
-9b9b9fafafb24443481f1f223435398a8a8e8a8a8e4443483435399b9b9fffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff6c6c719b9b9f7a7b80c7c7c98a8a8e9b9b9fc7c7c9ffffffffffff
-ffffffc7c7c95050546c6c716c6c717a7b806c6c71d9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c97a7b809b9b9f
-6c6c718a8a8e5d5e620202028a8a8e3435396c6c71343539c7c7c9afafb25d5e62c7c7c96c6c71
-6c6c71afafb23435390202020202024443485050545050546c6c71ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff5050548a8a8e7a7b80afafb28a8a8e9b9b9fafafb2ffffffffffff
-ffffffffffffafafb24443484443489b9b9f7a7b80d9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec1f1f225d5e62
-8a8a8e6c6c714443481f1f229b9b9fafafb21f1f221f1f229b9b9f1f1f225050548a8a8e1f1f22
-5050547a7b805050541f1f220202021f1f224443487a7b80d9eaecffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff5050549b9b9f444348afafb26c6c719b9b9fc7c7c9ffffffffffff
-ffffffffffffd9eaec3435395050549b9b9f9b9b9fc7c7c9ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec1f1f22343539
-3435395d5e625d5e625050546c6c718a8a8e1f1f224443488a8a8e0202025050547a7b80020202
-1f1f225050545d5e623435393435395d5e626c6c71d9eaecffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffafafb28a8a8e6c6c715d5e627a7b80afafb2afafb2ffffffffffff
-ffffffffffffffffff9b9b9f6c6c719b9b9f9b9b9f9b9b9fffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec343539444348
-1f1f221f1f228a8a8e8a8a8e5d5e625d5e623435395050548a8a8e5050545050546c6c71343539
-1f1f225d5e625050545d5e626c6c714443486c6c71ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffd9eaec8a8a8ec7c7c97a7b807a7b805d5e62afafb2ffffffffffff
-ffffffffffffffffffc7c7c95d5e62c7c7c9afafb2afafb2d9eaecffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec5d5e62444348
-3435396c6c71c7c7c9ffffffc7c7c9afafb2afafb28a8a8e7a7b806c6c715d5e625d5e625d5e62
-5d5e625d5e625050541f1f224443485d5e627a7b808a8a8ec7c7c9c7c7c9d9eaecffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff8a8a8e8a8a8e6c6c717a7b806c6c71c7c7c9ffffffffffff
-ffffffffffffffffffd9eaec6c6c717a7b80c7c7c99b9b9f9b9b9f8a8a8e7a7b80afafb2ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec6c6c716c6c71
-3435396c6c719b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffd9eaecd9eaec4443486c6c718a8a8eafafb27a7b805d5e627a7b808a8a8ec7c7c9ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffafafb2444348c7c7c95d5e621f1f22c7c7c9ffffffffffff
-ffffffffffffffffffffffff8a8a8e0202027a7b809b9b9fc7c7c95d5e62afafb25d5e62afafb2
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c95d5e627a7b80
-4443486c6c719b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff9b9b9f5d5e62afafb28a8a8e7a7b809b9b9f9b9b9f7a7b807a7b80d9eaec
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff6c6c718a8a8eafafb27a7b809b9b9fd9eaecffffff
-ffffffffffffffffffffffffafafb23435395d5e628a8a8e9b9b9f8a8a8eafafb29b9b9f5d5e62
-d9eaecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c95050548a8a8e
-5050546c6c71c7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffd9eaec5d5e628a8a8e7a7b809b9b9f8a8a8e6c6c718a8a8e343539c7c7c9
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffafafb26c6c719b9b9f6c6c716c6c71afafb2d9eaec
-ffffffffffffffffffffffffd9eaec4443487a7b80afafb2afafb2afafb27a7b80afafb21f1f22
-9b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c96c6c719b9b9f
-7a7b809b9b9fafafb2d9eaecffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffafafb25d5e625d5e626c6c716c6c716c6c715d5e626c6c71d9eaec
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff444348afafb2afafb29b9b9f8a8a8e505054
-9b9b9fd9eaecffffffffffffffffffafafb25050547a7b805d5e626c6c714443487a7b809b9b9f
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c96c6c71afafb2
-9b9b9f5d5e625d5e628a8a8eafafb2ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffd9eaecc7c7c9afafb29b9b9fc7c7c9c7c7c9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff5050549b9b9f8a8a8eafafb28a8a8e7a7b80
-9b9b9f8a8a8ec7c7c9ffffffffffffffffffd9eaecd9eaecc7c7c9afafb2afafb2d9eaecffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c95050549b9b9f
-5050548a8a8e8a8a8e9b9b9f7a7b80c7c7c9ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff9b9b9f6c6c71afafb28a8a8e9b9b9f7a7b80
-c7c7c95d5e627a7b80c7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c9343539afafb2
-8a8a8e7a7b809b9b9f5d5e629b9b9f9b9b9fffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffc7c7c94443488a8a8e7a7b808a8a8e8a8a8e
-5050547a7b804443489b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec6c6c719b9b9f
-4443488a8a8e9b9b9f8a8a8e6c6c718a8a8effffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffafafb24443488a8a8eafafb26c6c71
-5d5e626c6c717a7b80ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c97a7b80
-3435396c6c713435394443486c6c71d9eaecffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaecc7c7c9
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-d9eaecd9eaecd9eaecd9eaecd9eaecffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffafafb29b9b9fc7c7c9ffffffc7c7c99b9b9f
-d9eaecc7c7c99b9b9fc7c7c9c7c7c9c7c7c9ffffffc7c7c9d9eaecafafb2ffffffc7c7c9d9eaec
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffafafb28a8a8ec7c7c96c6c71d9eaec7a7b805d5e62
-9b9b9f8a8a8e9b9b9fc7c7c97a7b806c6c71ffffff8a8a8ed9eaecafafb25d5e62c7c7c9d9eaec
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffff9b9b9fafafb2ffffff5d5e62d9eaec8a8a8e505054
-afafb28a8a8eafafb2d9eaec7a7b806c6c71ffffff8a8a8effffffd9eaec9b9b9fffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffd9eaecc7c7c9c7c7c9d9eaecffffffd9eaecd9eaecffffffffffffd9eaec
-ffffffd9eaecd9eaecd9eaecffffffffffffd9eaecd9eaecd9eaecffffffd9eaecffffffffffff
-d9eaecffffffffffffd9eaecd9eaecd9eaecffffffd9eaecc7c7c9d9eaecffffffffffffd9eaec
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffd9eaec8a8a8e7a7b809b9b9fffffff9b9b9fc7c7c9
-c7c7c97a7b808a8a8ec7c7c99b9b9f5d5e62afafb28a8a8e9b9b9fc7c7c9c7c7c9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffd9eaecafafb2c7c7c9c7c7c9afafb2c7c7c99b9b9fafafb2d9eaecc7c7c9d9eaec
-c7c7c9c7c7c99b9b9fc7c7c9afafb2d9eaecafafb2afafb2d9eaecafafb2c7c7c9d9eaecd9eaec
-ffffffffffffc7c7c9d9eaecafafb2afafb2ffffffd9eaec8a8a8eafafb2d9eaecc7c7c9afafb2
-d9eaecc7c7c9ffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffd9eaecffffffffffffffffffffffff
-ffffffffffffd9eaecffffffffffffd9eaecd9eaecffffffd9eaecffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffd9eaecffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/dbi.gif b/Docs/Books/dbi.gif
deleted file mode 100644
index de7bc2dae61..00000000000
Binary files a/Docs/Books/dbi.gif and /dev/null differ
diff --git a/Docs/Books/dbi.txt b/Docs/Books/dbi.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/dubois.eps b/Docs/Books/dubois.eps
deleted file mode 100644
index 412693fe405..00000000000
--- a/Docs/Books/dubois.eps
+++ /dev/null
@@ -1,1203 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/dubois.eps
-%%CreationDate: Sun Dec 31 14:29:20 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 298 383
-%%EndComments
-%%BeginPreview: 100 130 1 130
-% fffffffffffffffffffffffff0
-% fe000000000000000000000010
-% d555242000000000000924aab0
-% fe000600000000000000000010
-% d5488d020000a0070440040950
-% fe00160048010004800011a010
-% d51214c0aa02400a4000437110
-% fe2821404800000940c102d050
-% aa0854410501081010b70d1410
-% fe14810240080222514184a890
-% aa223640b5114000012d4baa10
-% fe1d49140040048aaa42285490
-% ab894040800000000011552ab0
-% feb20a00000010000041215290
-% 55cab4aad28b7552aa94556a90
-% 7e34a5b78a6a555d5d75adb6b0
-% d5dfeaff8fd8ab76aabbfffff0
-% bf501c074235188eab502ff7f0
-% 6aeff76ac031702f56ea4fc9f0
-% dfbd5ad5f54de8556dd9557f70
-% 7577ed6a4aa575aadb76ddd7f0
-% 5fdbbaaaaaa9ca55eedddb6ff0
-% f576ab55554a35522beff6daf0
-% 5fdd6aaa5492852dd29bfdf7b0
-% f55695535aa474a22aaaa6ad70
-% 5f69d55adaa5baaaaaaaadfff0
-% 75debbaaf55aa556ad56daad70
-% df7bd4aad6d55faaaefb7dfbd0
-% 75dd5f75adab6aeaa2ababbf70
-% df77ebdaeadadeddd5d56ebff0
-% 75fd5aff3db7b7f55555556ab0
-% dfffff57effdffdfbabb6fdff0
-% 75d754b55aaa52b2aaa55aaaf0
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e030c01426100000000000010
-% 74030c020c3100000000000010
-% de010c02081100000000000010
-% 7401849b881900000000000010
-% de008cc0c81100000000000010
-% 7402c4406c1100000000000010
-% de044440641100000000000010
-% 74064c26462398000000000010
-% 5e00000001c010000000000010
-% f4000000006000000000000010
-% 5e0000c0001800000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 5e000000000000000000000010
-% f4080000000000000000000010
-% 5e0f9000000000000000000010
-% 740f8000000000000000000010
-% de000000000000000000000010
-% 740d0000000000000000000010
-% de0fe000000000000000000010
-% 740a9000000000000000000010
-% de000000000000000000000010
-% 74000000000000000000000010
-% 5e000000000000000000000010
-% f4000000000000000000000010
-% 7ffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-283.464567 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 130 8
-% Transformation matrix
-[ 100 0 0 130 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101
-010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3
-b3b3b3b3b3b3c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6c9c2c4d6d6d6c9c2c4
-c9c2c4c9c2c4d6d6d6c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4
-c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4
-b3b3b3c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3010101
-010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3
-b3b3b3c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6c9c2c4c9c2c4
-c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4c9c2c4
-c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4b3b3b3
-b3b3b3b3b3b3b3b3b3c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3010101
-010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3b3b3b3b3b3b3c9c2c4
-c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6c9c2c4514e4f696869c9c2c4d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6e9e9e9
-e9e9e9e9e9e9d6d6d6d6d6d6e9e9e9d6d6d6e9e9e9d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6e9e9e9
-e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4
-c9c2c4c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3010101
-010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4
-c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6e9e9e9818181514e4f6968699b9b9bd6d6d6e9e9e9
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9d6d6d6b3b3b3b3b3b3b3b3b3e9e9e9
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e99b9b9b818181818181b3b3b3
-e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6
-c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3c9c2c4b3b3b3010101
-010101f50237f50237f50237f50237f50237f50237b78794c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4
-c9c2c4c9c2c4d6d6d6c9c2c4d6d6d6d6d6d6b3b3b3818181514e4f6968698181819b9b9bd6d6d6
-d6d6d6d6d6d6d6d6d6e9e9e9e9e9e9e9e9e9d6d6d69b9b9bc9c2c4d6d6d6c9c2c49b9b9be9e9e9
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9d6d6d6b3b3b3b3b3b3c9c2c49b9b9bb3b3b3
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffffb3b3b3696869696869818181818181
-b3b3b3d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6
-d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d69b9b9b6968699b9b9bc9c2c4818181
-b3b3b3d6d6d6b3b3b3c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3010101
-010101f50237f50237f50237f50237f50237f50237b78794d6d6d6c9c2c4c9c2c4b3b3b3c9c2c4
-d6d6d6c9c2c4d6d6d6c9c2c4d6d6d6c9c2c49b9b9bb3b3b38181818181819b9b9b6968699b9b9b
-e9e9e9e9e9e9e9e9e9d6d6d6e9e9e9e9e9e99b9b9b9b9b9b9b9b9b818181818181818181b3b3b3
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9b3b3b39b9b9bc9c2c49b9b9b9b9b9bd6d6d6
-d6d6d6ffffffe9e9e9e9e9e9e9e9e9e9e9e9ffffffd6d6d69b9b9b8181818181819b9b9bb3b3b3
-9b9b9bb3b3b3e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9d6d6d6c9c2c4e9e9e9e9e9e9e9e9e9e9e9e9
-e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9696869514e4f818181514e4f302f2f
-696869d6d6d6c9c2c4d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4010101
-010101f50237f50237f50237f50237f50237f50237b78794d6d6d6c9c2c4c9c2c49b9b9b9b9b9b
-c9c2c4d6d6d6d6d6d6d6d6d6d6d6d69b9b9b9b9b9bb3b3b3b3b3b3b3b3b39b9b9b9b9b9b818181
-c9c2c4e9e9e9e9e9e9e9e9e9ffffffc9c2c49b9b9b9b9b9b9b9b9b9b9b9b9b9b9b8181819b9b9b
-c9c2c4ffffffe9e9e9e9e9e9ffffffffffffd6d6d6c9c2c4c9c2c4d6d6d6e9e9e9d6d6d6d6d6d6
-d6d6d6e9e9e9ffffffffffffe9e9e9e9e9e9ffffffb3b3b39b9b9bb3b3b39b9b9b9b9b9b9b9b9b
-9b9b9b9b9b9bd6d6d6e9e9e9e9e9e9e9e9e9ffffff9b9b9b696869b3b3b3d6d6d6e9e9e9d6d6d6
-d6d6d6b3b3b3d6d6d6e9e9e9d6d6d6d6d6d6e9e9e9b3b3b3514e4fb3b3b3818181514e4f9b9b9b
-514e4f9b9b9bd6d6d6c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4010101
-010101f50237f50237f50237f50237f50237f50237b78794d6d6d6d6d6d6c9c2c4b3b3b3818181
-9b9b9bd6d6d6d6d6d6ffffff9b9b9b9b9b9b9b9b9bc9c2c49b9b9bb3b3b3b3b3b3b3b3b3818181
-c9c2c4e9e9e9e9e9e9ffffffe9e9e99b9b9bb3b3b3b3b3b3b3b3b3d6d6d6d6d6d69b9b9bc9c2c4
-b3b3b3d6d6d6ffffffffffffffffffb3b3b3d6d6d6d6d6d6c9c2c4e9e9e9e9e9e9ffffffc9c2c4
-c9c2c4b3b3b3d6d6d6ffffffffffffffffffc9c2c49b9b9bd6d6d6c9c2c4c9c2c4d6d6d6b3b3b3
-9b9b9bb3b3b3b3b3b3e9e9e9e9e9e9ffffffd6d6d66968696968698181818181819b9b9b818181
-818181514e4f818181e9e9e9d6d6d6e9e9e9b3b3b36968698181819b9b9b8181819b9b9bb3b3b3
-818181696869c9c2c4d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4010101
-010101f50237f50237f50237f50237f50237f50237b78794d6d6d6d6d6d6d6d6d68181819b9b9b
-818181c9c2c4d6d6d69b9b9b9b9b9b9b9b9b9b9b9bb3b3b39b9b9bb3b3b3c9c2c49b9b9b9b9b9b
-c9c2c4e9e9e9ffffffe9e9e99b9b9b9b9b9bc9c2c48181819b9b9bd6d6d6c9c2c49b9b9bb3b3b3
-b3b3b3c9c2c4ffffffffffffc9c2c49b9b9bd6d6d6d6d6d6b3b3b3d6d6d6e9e9e9e9e9e9b3b3b3
-d6d6d6c9c2c49b9b9be9e9e9ffffffd6d6d68181819b9b9bb3b3b3c9c2c4b3b3b3e9e9e9c9c2c4
-9b9b9b9b9b9b9b9b9bc9c2c4ffffffe9e9e99b9b9b8181819b9b9b9b9b9b9b9b9bb3b3b3c9c2c4
-818181818181514e4fb3b3b3ffffffffffff8181816968699b9b9b9b9b9b9b9b9bb3b3b3818181
-9b9b9b696869696869d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4010101
-010101f50237f50237f50237f50237f50237f50237b78794e9e9e9d6d6d6c9c2c4818181b3b3b3
-b3b3b39b9b9bc9c2c49b9b9bb3b3b39b9b9b818181b3b3b3696869818181d6d6d69b9b9b9b9b9b
-b3b3b3c9c2c4d6d6d6c9c2c49b9b9bb3b3b3b3b3b3b3b3b39b9b9b818181b3b3b3b3b3b3b3b3b3
-c9c2c4b3b3b3b3b3b3d6d6d69b9b9bc9c2c4c9c2c4c9c2c4c9c2c48181818181819b9b9bd6d6d6
-e9e9e9d6d6d6c9c2c4c9c2c4ffffffb3b3b3b3b3b3e9e9e9d6d6d6d6d6d6b3b3b3b3b3b3e9e9e9
-c9c2c4d6d6d6c9c2c4b3b3b3e9e9e9c9c2c4818181b3b3b39b9b9b9b9b9bb3b3b3818181818181
-9b9b9b8181819b9b9b696869d6d6d6c9c2c4514e4f9b9b9b9b9b9b696869514e4f818181818181
-9b9b9b818181818181c9c2c4e9e9e9d6d6d6d6d6d6d6d6d6010101
-010101f50237f50237f50237f50237f50237f50237b78794d6d6d6d6d6d6d6d6d69b9b9b514e4f
-6968699b9b9b818181b3b3b36968699b9b9bb3b3b3818181b3b3b39b9b9b818181b3b3b39b9b9b
-c9c2c49b9b9bb3b3b3b3b3b3b3b3b3d6d6d6b3b3b3c9c2c4c9c2c49b9b9bd6d6d6b3b3b3c9c2c4
-c9c2c4b3b3b3c9c2c49b9b9bb3b3b3c9c2c4c9c2c4c9c2c4b3b3b3b3b3b3c9c2c4d6d6d6d6d6d6
-d6d6d6c9c2c4b3b3b3c9c2c49b9b9bc9c2c4d6d6d6c9c2c4c9c2c4b3b3b3b3b3b39b9b9bc9c2c4
-b3b3b3b3b3b3c9c2c49b9b9b9b9b9b9b9b9bb3b3b3b3b3b3b3b3b3c9c2c49b9b9b9b9b9bb3b3b3
-9b9b9b818181b3b3b39b9b9b9b9b9b8181819b9b9b9b9b9b9b9b9b9b9b9b9b9b9b818181818181
-8181818181818181818181819b9b9bb3b3b39b9b9bc9c2c4010101
-010101f50237f50237f50237f50237f50237f50237696869818181d6d6d6c9c2c4d6d6d6696869
-818181d6d6d6696869e9e9e9818181c9c2c4e9e9e99b9b9be9e9e9c9c2c4c9c2c4ffffff9b9b9b
-e9e9e9b3b3b3d6d6d6d6d6d6b3b3b3ffffff9b9b9be9e9e9e9e9e9d6d6d6ffffffd6d6d6e9e9e9
-d6d6d6d6d6d6ffffffe9e9e9ffffffe9e9e9ffffffffffffe9e9e9ffffffffffffffffffe9e9e9
-ffffffffffffe9e9e9ffffffc9c2c4e9e9e9e9e9e9d6d6d6e9e9e99b9b9be9e9e9b3b3b3c9c2c4
-c9c2c49b9b9bd6d6d69b9b9be9e9e9b3b3b3c9c2c4c9c2c49b9b9be9e9e9818181ffffffc9c2c4
-c9c2c4696869d6d6d68181819b9b9b9b9b9bb3b3b3696869b3b3b3696869b3b3b39b9b9b9b9b9b
-9b9b9b514e4fb3b3b3514e4f9b9b9b514e4f9b9b9bb3b3b3010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869696869696869818181
-b3b3b39b9b9b818181e9e9e9b3b3b3b3b3b3e9e9e9b3b3b3c9c2c4b3b3b3d6d6d6e9e9e9c9c2c4
-d6d6d6b3b3b3e9e9e9e9e9e9c9c2c4d6d6d6c9c2c4d6d6d6c9c2c4c9c2c4e9e9e9e9e9e9ffffff
-e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4
-c9c2c4e9e9e9e9e9e9e9e9e9e9e9e9ffffffffffffe9e9e9ffffffd6d6d6ffffffe9e9e9e9e9e9
-ffffffc9c2c4ffffffd6d6d6ffffffe9e9e9d6d6d6e9e9e9b3b3b3e9e9e99b9b9be9e9e9c9c2c4
-c9c2c49b9b9bffffff8181819b9b9b696869c9c2c49b9b9bffffff818181c9c2c49b9b9b696869
-818181696869e9e9e9514e4fffffff514e4fb3b3b3d6d6d6010101
-010101f50237f50237f50237f50237f50237f50237514e4f6968696968696968699b9b9b9b9b9b
-8181819b9b9b9b9b9b9b9b9b8181818181818181818181818181818181819b9b9b9b9b9b9b9b9b
-9b9b9b9b9b9bb3b3b39b9b9bb3b3b39b9b9b696869818181b3b3b3b3b3b3b3b3b3c9c2c4b3b3b3
-b3b3b3b3b3b3c9c2c4b3b3b3d6d6d6b3b3b38181818181818181819b9b9b9b9b9b696869514e4f
-6968699b9b9b9b9b9bb3b3b39b9b9b9b9b9b9b9b9b9b9b9bc9c2c4b3b3b39b9b9bb3b3b39b9b9b
-b3b3b39b9b9bd6d6d68181819b9b9b9b9b9bb3b3b39b9b9b9b9b9bc9c2c49b9b9bb3b3b39b9b9b
-b3b3b3b3b3b3c9c2c48181816968696968699b9b9b9b9b9bd6d6d66968699b9b9b696869302f2f
-818181818181d6d6d6696869c9c2c4514e4f9b9b9bc9c2c4010101
-010101f50237f50237f50237f50237f50237f50237696869b78794818181818181818181818181
-8181819b9b9b9b9b9b8181819b9b9b8181818181819b9b9b818181818181818181696869818181
-696869696869818181696869696869302f2f0101019b9b9bc9c2c4c9c2c49b9b9b9b9b9b818181
-8181819b9b9b8181818181819b9b9b6968699b9b9b9b9b9bb3b3b39b9b9b696869696869696869
-8181819b9b9b6968696968698181818181816968696968696968696968696968699b9b9b818181
-6968699b9b9b818181514e4f302f2f818181818181818181696869696869302f2f6968699b9b9b
-818181696869696869696869696869818181514e4f514e4f696869010101514e4f696869514e4f
-696869696869514e4f696869696869818181818181302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f696869818181696869514e4f514e4f
-514e4f514e4f514e4f514e4f514e4f514e4f696869696869818181818181c9c2c4696869302f2f
-302f2f302f2f302f2f302f2f010101010101302f2fb3b3b3d6d6d6e9e9e9818181302f2f302f2f
-514e4f514e4f514e4f514e4f010101514e4f818181c9c2c49b9b9b9b9b9bc9c2c4818181696869
-818181d6d6d6818181514e4f696869514e4f302f2f302f2f514e4f302f2f302f2fb3b3b3818181
-8181818181816968696968696968696968698181818181819b9b9b696869010101696869818181
-514e4f514e4f514e4f302f2f302f2f302f2f010101302f2f302f2f302f2f514e4f302f2f302f2f
-302f2f302f2f302f2f010101302f2f302f2f010101010101010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869818181696869818181
-9b9b9b8181819b9b9b9b9b9b9b9b9b818181696869696869696869818181d6d6d6b3b3b3818181
-9b9b9b9b9b9b818181818181302f2f0101016968699b9b9bb3b3b3ffffffb3b3b3818181818181
-9b9b9bb3b3b39b9b9b9b9b9b302f2f6968699b9b9bb3b3b39b9b9be9e9e9ffffffe9e9e9302f2f
-514e4fd6d6d6b3b3b39b9b9b9b9b9b8181819b9b9bb3b3b3696869302f2f302f2f9b9b9b818181
-6968699b9b9b696869818181818181696869696869696869696869696869514e4f818181c9c2c4
-9b9b9bb3b3b39b9b9b9b9b9b818181818181514e4f302f2f302f2f010101302f2f010101010101
-302f2f514e4f514e4f514e4f302f2f010101010101010101010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869696869696869514e4f
-696869696869818181696869696869696869302f2f514e4f696869696869696869818181818181
-9b9b9b9b9b9b696869818181696869514e4f696869696869818181d6d6d6d6d6d6d6d6d6c9c2c4
-d6d6d6d6d6d6c9c2c4818181302f2f818181e9e9e9d6d6d6696869696869514e4f696869514e4f
-c9c2c4c9c2c4d6d6d6e9e9e9d6d6d6c9c2c4c9c2c4b3b3b3514e4f302f2f010101514e4f818181
-818181696869818181696869696869696869696869514e4f514e4f6968698181818181819b9b9b
-c9c2c4e9e9e9d6d6d6b3b3b39b9b9bc9c2c4696869302f2f302f2f302f2f010101514e4f818181
-9b9b9b818181696869818181302f2f302f2f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f514e4f696869514e4f
-302f2f514e4f514e4f696869514e4f696869696869514e4f696869696869696869696869514e4f
-514e4f696869818181818181696869818181514e4f302f2f6968698181819b9b9bb3b3b3b3b3b3
-b3b3b3b3b3b39b9b9b8181819b9b9b818181818181c9c2c4514e4f514e4f302f2f302f2f514e4f
-6968699b9b9be9e9e9d6d6d6c9c2c4b3b3b39b9b9b818181818181514e4f514e4f818181818181
-514e4f696869696869818181696869514e4f696869514e4f302f2f514e4f696869696869818181
-9b9b9b9b9b9b9b9b9b818181818181818181696869696869514e4f696869514e4f514e4f514e4f
-514e4f514e4f514e4f302f2f514e4f514e4f514e4f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f514e4f302f2f514e4f
-696869514e4f302f2f514e4f514e4f514e4f696869514e4f514e4f818181818181696869302f2f
-514e4f8181819b9b9b8181818181819b9b9b818181696869818181818181818181818181696869
-8181818181818181819b9b9b9b9b9b9b9b9b6968699b9b9b696869514e4f514e4f514e4f514e4f
-6968699b9b9b9b9b9b9b9b9b818181818181818181818181818181696869818181696869514e4f
-514e4f514e4f696869696869696869696869514e4f696869514e4f010101514e4f696869696869
-696869696869514e4f696869696869514e4f302f2f514e4f696869514e4f514e4f514e4f514e4f
-514e4f514e4f302f2f302f2f302f2f514e4f514e4f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869514e4f514e4f514e4f
-696869696869302f2f302f2f696869696869514e4f302f2f696869696869818181818181818181
-8181818181818181818181818181819b9b9b9b9b9b818181818181818181696869818181818181
-8181816968698181818181818181819b9b9b9b9b9b9b9b9b9b9b9b514e4f514e4f696869818181
-9b9b9b8181818181818181818181818181818181819b9b9b9b9b9b818181696869696869514e4f
-514e4f514e4f696869514e4f514e4f514e4f696869514e4f696869696869514e4f514e4f514e4f
-696869514e4f302f2f514e4f696869514e4f514e4f514e4f696869514e4f514e4f514e4f696869
-818181696869514e4f302f2f302f2f302f2f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f696869514e4f514e4f
-302f2f696869696869696869696869818181696869696869696869514e4f696869696869696869
-8181816968698181818181818181819b9b9b9b9b9b8181816968696968698181818181819b9b9b
-9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b818181818181b3b3b3818181818181818181818181
-8181818181816968698181819b9b9b9b9b9b9b9b9b8181818181819b9b9b9b9b9b818181818181
-818181696869818181818181696869302f2f302f2f302f2f302f2f514e4f696869302f2f302f2f
-302f2f302f2f302f2f302f2f514e4f514e4f696869696869696869514e4f514e4f514e4f514e4f
-514e4f514e4f514e4f514e4f514e4f302f2f010101010101010101
-010101f50237f50237f50237f50237f50237f50237514e4f696869514e4f696869696869514e4f
-514e4f514e4f696869696869696869696869818181818181818181696869818181818181818181
-8181818181819b9b9b8181818181818181819b9b9b9b9b9b8181816968698181819b9b9b9b9b9b
-9b9b9b9b9b9b8181819b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9bb3b3b3b3b3b3
-9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b8181818181819b9b9b9b9b9b818181
-8181819b9b9b8181819b9b9b9b9b9b818181818181696869818181818181514e4f696869514e4f
-302f2f302f2f302f2f302f2f302f2f302f2f514e4f514e4f514e4f696869514e4f514e4f514e4f
-514e4f696869696869514e4f514e4f514e4f514e4f514e4f010101
-010101f50237f50237f50237f50237f50237f50237514e4f696869696869696869696869696869
-6968696968698181818181818181818181818181818181818181819b9b9b9b9b9b818181696869
-8181819b9b9b9b9b9b9b9b9b8181816968698181819b9b9b818181696869696869818181818181
-9b9b9b8181819b9b9b9b9b9bb3b3b3b3b3b3b3b3b3b3b3b3b3b3b39b9b9b818181818181818181
-8181818181819b9b9b9b9b9b9b9b9b9b9b9b8181819b9b9b9b9b9b9b9b9b818181818181818181
-8181816968696968698181819b9b9b9b9b9b8181818181819b9b9b8181818181818181819b9b9b
-818181818181696869696869696869818181696869696869696869696869514e4f514e4f514e4f
-514e4f514e4f514e4f514e4f514e4f514e4f514e4f696869010101
-010101f50237f50237f50237f50237f50237f50237514e4f696869696869696869696869696869
-696869818181696869696869696869818181696869818181818181818181696869696869696869
-818181696869696869818181818181696869696869514e4f696869514e4f514e4f696869818181
-8181818181819b9b9b8181819b9b9bb3b3b39b9b9b9b9b9b9b9b9b818181696869302f2f302f2f
-514e4f8181819b9b9b9b9b9b8181818181818181818181818181819b9b9b8181818181819b9b9b
-9b9b9b8181819b9b9b8181818181818181819b9b9b818181818181818181818181818181696869
-696869818181696869696869696869696869696869696869696869514e4f514e4f514e4f514e4f
-302f2f302f2f302f2f302f2f514e4f514e4f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f514e4f514e4f514e4f
-696869696869696869514e4f514e4f514e4f514e4f696869696869696869696869696869696869
-818181696869696869818181818181696869302f2f514e4f514e4f514e4f696869818181818181
-696869818181818181818181818181818181818181818181818181696869818181696869818181
-818181696869696869818181696869818181818181696869818181696869514e4f8181819b9b9b
-818181818181818181696869514e4f696869818181818181696869696869696869818181696869
-696869818181818181696869696869514e4f696869696869696869696869696869696869514e4f
-514e4f514e4f514e4f514e4f696869514e4f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f302f2f302f2f302f2f
-514e4f696869514e4f514e4f696869696869696869818181696869696869818181818181696869
-696869818181818181818181818181818181514e4f514e4f818181696869696869696869696869
-696869696869696869818181818181696869696869696869818181696869818181818181818181
-696869514e4f514e4f514e4f6968696968696968698181818181819b9b9b696869696869818181
-818181696869818181514e4f514e4f514e4f696869302f2f514e4f696869514e4f696869818181
-514e4f514e4f696869696869696869514e4f302f2f514e4f696869514e4f514e4f514e4f514e4f
-514e4f514e4f514e4f514e4f514e4f514e4f514e4f514e4f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f302f2f514e4f514e4f302f2f
-514e4f696869514e4f696869696869818181696869696869514e4f514e4f696869696869696869
-696869696869696869818181818181818181696869514e4f514e4f696869696869696869696869
-696869696869696869696869696869818181696869818181696869696869696869696869696869
-696869696869514e4f514e4f514e4f514e4f514e4f818181818181818181696869818181818181
-8181818181819b9b9b9b9b9b9b9b9b818181696869514e4f696869696869696869696869696869
-514e4f514e4f514e4f696869514e4f514e4f514e4f514e4f514e4f302f2f514e4f514e4f514e4f
-302f2f010101010101302f2f302f2f696869514e4f514e4f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f302f2f514e4f514e4f
-514e4f514e4f514e4f514e4f514e4f514e4f696869696869696869514e4f302f2f302f2f302f2f
-696869696869514e4f696869696869696869696869696869514e4f818181514e4f696869696869
-696869514e4f696869696869696869696869696869818181696869514e4f514e4f696869514e4f
-514e4f514e4f514e4f696869302f2f302f2f514e4f514e4f696869514e4f696869696869696869
-514e4f8181819b9b9b9b9b9b818181818181818181696869696869696869818181696869818181
-696869514e4f696869696869696869818181818181696869514e4f514e4f696869696869514e4f
-302f2f302f2f302f2f302f2f302f2f514e4f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237302f2f302f2f302f2f302f2f302f2f302f2f
-514e4f514e4f302f2f514e4f514e4f514e4f302f2f696869696869514e4f514e4f514e4f514e4f
-514e4f514e4f302f2f514e4f302f2f514e4f696869818181696869514e4f696869696869696869
-514e4f514e4f696869696869696869514e4f696869696869514e4f514e4f514e4f696869514e4f
-514e4f302f2f514e4f514e4f514e4f302f2f514e4f514e4f514e4f696869818181696869696869
-696869696869818181818181818181818181818181818181696869818181818181818181818181
-818181818181818181696869696869696869696869696869696869818181818181696869696869
-696869696869514e4f514e4f514e4f302f2f514e4f514e4f010101
-010101f50237f50237f50237f50237f50237f50237302f2f010101302f2f302f2f302f2f302f2f
-010101010101302f2f302f2f302f2f302f2f302f2f302f2f514e4f514e4f696869696869302f2f
-514e4f514e4f696869302f2f302f2f514e4f302f2f302f2f696869514e4f302f2f302f2f514e4f
-302f2f514e4f514e4f514e4f302f2f302f2f302f2f514e4f514e4f302f2f302f2f302f2f514e4f
-514e4f302f2f010101302f2f302f2f302f2f514e4f514e4f302f2f514e4f514e4f514e4f514e4f
-818181696869514e4f696869696869696869818181818181696869696869696869514e4f696869
-696869696869696869514e4f696869696869302f2f302f2f302f2f514e4f514e4f302f2f514e4f
-514e4f514e4f514e4f514e4f302f2f302f2f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237514e4f514e4f302f2f514e4f514e4f514e4f
-696869514e4f514e4f696869514e4f696869696869514e4f514e4f696869818181818181818181
-696869696869818181818181696869514e4f514e4f514e4f696869818181514e4f514e4f696869
-696869696869696869514e4f514e4f514e4f696869818181818181818181818181818181696869
-818181818181696869696869514e4f514e4f696869514e4f696869818181696869696869696869
-6968698181816968696968696968698181818181819b9b9b9b9b9b818181818181818181818181
-818181818181818181696869818181818181696869696869696869514e4f514e4f696869818181
-818181696869696869696869514e4f302f2f302f2f302f2f010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9
-ffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9
-e9e9e9e9e9e9ffffffffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffffffffffffffffffffffffffffe9e9e9
-e9e9e9ffffffffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9
-e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9e9e9e9ffffffffffffffffffffffffe9e9e9e9e9e9
-ffffffffffffe9e9e9e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffff
-e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-d6d6d6d6d6d6ffffffffffffffffffffffffffffffe9e9e9d6d6d6d6d6d6ffffffffffffffffff
-ffffffffffffffffffffffffffffffe9e9e9b3b3b3d6d6d6ffffffffffffffffffffffffffffff
-c9c2c4c9c2c4d6d6d6ffffffffffffffffffffffffd6d6d6d6d6d6d6d6d6e9e9e9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-d6d6d6302f2f818181ffffffffffffffffffffffff818181302f2fd6d6d6ffffffffffffffffff
-ffffffffffffffffffffffffb3b3b39b9b9bc9c2c4514e4fb3b3b3ffffffffffff9b9b9b696869
-d6d6d6d6d6d6818181696869e9e9e9ffffffffffffb3b3b3302f2f9b9b9be9e9e9ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffff302f2f302f2fffffffffffffffffffffffff514e4f010101ffffffffffffffffffffffff
-ffffffffffffffffffe9e9e9302f2fe9e9e9ffffffc9c2c4b3b3b3ffffff9b9b9b010101d6d6d6
-ffffffffffffe9e9e9514e4f514e4fffffffffffffd6d6d6010101b3b3b3ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffff818181010101b3b3b3ffffffffffffd6d6d6696869010101ffffffe9e9e9c9c2c4e9e9e9
-ffffffe9e9e9c9c2c4e9e9e90101019b9b9bffffffffffffffffffffffff302f2f9b9b9bffffff
-ffffffffffffffffffd6d6d60101019b9b9bffffffd6d6d6010101b3b3b3ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffb3b3b3818181514e4fffffffe9e9e9b3b3b3b3b3b3010101ffffffd6d6d60101019b9b9b
-ffffff818181514e4fffffff696869010101696869e9e9e9ffffffc9c2c4010101d6d6d6ffffff
-ffffffffffffffffffe9e9e9302f2f818181ffffffd6d6d6010101b3b3b3ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-e9e9e9b3b3b3c9c2c4010101d6d6d6d6d6d6b3b3b3c9c2c4302f2fe9e9e9ffffff696869514e4f
-ffffffc9c2c4d6d6d6ffffffffffffb3b3b3010101302f2fe9e9e9c9c2c4010101c9c2c4ffffff
-ffffffffffffffffffffffff514e4f696869ffffffd6d6d6010101b3b3b3ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-c9c2c4b3b3b3ffffff514e4f696869b3b3b3ffffffd6d6d6302f2fe9e9e9ffffffd6d6d6302f2f
-d6d6d6c9c2c4ffffffffffffffffffffffffe9e9e9302f2f302f2fffffff302f2f696869ffffff
-ffffffffffffffffffe9e9e90101019b9b9bffffffd6d6d6010101b3b3b3ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-818181b3b3b3ffffff9b9b9b010101b3b3b3ffffffe9e9e9302f2fe9e9e9ffffffffffff302f2f
-818181e9e9e9ffffff9b9b9bd6d6d6ffffffffffff514e4f302f2fffffff818181010101c9c2c4
-ffffffffffffffffff9b9b9b302f2fe9e9e9ffffffe9e9e9010101b3b3b3ffffffffffffe9e9e9
-b3b3b3e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9
-010101514e4fe9e9e9ffffff696869ffffffffffff818181010101818181ffffffffffffb3b3b3
-302f2fffffffffffffb3b3b3514e4fb3b3b3b3b3b3514e4fd6d6d6ffffffffffff818181302f2f
-9b9b9bd6d6d6d6d6d6696869c9c2c4ffffffffffff9b9b9b010101696869c9c2c4c9c2c4514e4f
-818181ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9
-b3b3b3b3b3b3e9e9e9ffffffe9e9e9ffffffffffffc9c2c4b3b3b3b3b3b3ffffffffffffffffff
-9b9b9bffffffffffffffffffc9c2c4c9c2c4c9c2c4e9e9e9ffffffffffffffffffffffffd6d6d6
-818181302f2f514e4fffffffffffffffffffffffffc9c2c4b3b3b3c9c2c4c9c2c4c9c2c49b9b9b
-e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9b3b3b3
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffc9c2c4302f2f302f2f818181d6d6d6ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff514e4f818181
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff818181302f2f818181ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4fffffffffffffffffffdd7e8fec2d9
-fec2d9fec2d9fec2d9fec2d9fec2d9fec2d9fec2d9fec2d9fdd7e8fdd7e8fec2d9fdd7e8ffffff
-fcabc5fcabc5fdd7e8fec2d9fec2d9fec2d9fcabc5fec2d9fffffffdd7e8fcabc5fcabc5fec2d9
-fec2d9fec2d9fec2d9fdd7e8fffffffdd7e8fcabc5fec2d9fdd7e8fcabc5fcabc5fec2d9fdd7e8
-fdd7e8fdd7e8fffffffdd7e8fcabc5fcabc5fdd7e8fec2d9fdd7e8fec2d9fec2d9fffffffec2d9
-fcabc5fec2d9fec2d9fcabc5fcabc5fec2d9fec2d9fec2d9fec2d9fdd7e8ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-fdd7e8fec2d9fec2d9fec2d9fec2d9fec2d9fdd7e8fec2d9fdd7e8fdd7e8fec2d9fdd7e8ffffff
-fec2d9fec2d9fdd7e8fdd7e8fdd7e8fec2d9fcabc5fec2d9fffffffffffffdd7e8fec2d9fec2d9
-fec2d9fdd7e8fec2d9ffffffffffffe9e9e9fdd7e8e9e9e9fdd7e8fcabc5fec2d9fdd7e8fdd7e8
-fec2d9fdd7e8ffffffe9e9e9fec2d9fec2d9fec2d9fdd7e8fdd7e8fec2d9fec2d9fffffffdd7e8
-fec2d9fec2d9fec2d9fcabc5fec2d9fdd7e8fec2d9fec2d9fec2d9e9e9e9ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9
-e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9
-c9c2c4b3b3b3b3b3b3d6d6d6e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffc9c2c4
-ffffffffffffffffffd6d6d6c9c2c4d6d6d6ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9302f2f
-9b9b9bc9c2c4d6d6d6d6d6d6ffffffc9c2c4d6d6d6ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffd6d6d6010101
-302f2f302f2f302f2f514e4fe9e9e9ffffffb3b3b3e9e9e9ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9514e4f
-514e4f514e4f302f2f514e4fe9e9e9ffffffd6d6d6d6d6d6ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e99b9b9b
-d6d6d6e9e9e9b3b3b3d6d6d6ffffffffffffffffffc9c2c4e9e9e9ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9302f2f
-818181b3b3b3818181c9c2c4c9c2c49b9b9bc9c2c4d6d6d6e9e9e9ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffd6d6d6e9e9e9ffffffffffffffffffffffffffffffe9e9e9e9e9e9e9e9e9ffffffd6d6d6
-e9e9e9ffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffd6d6d6302f2f
-514e4f514e4f302f2f302f2f514e4f6968699b9b9bffffffd6d6d6ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-e9e9e9c9c2c4e9e9e9d6d6d6d6d6d6e9e9e9e9e9e9ffffffe9e9e9e9e9e9d6d6d6e9e9e9c9c2c4
-c9c2c4e9e9e9e9e9e9d6d6d6d6d6d6ffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9514e4f
-696869696869514e4f514e4f8181819b9b9b818181ffffffd6d6d6ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffe9e9e9ffffffd6d6d6d6d6d6d6d6d6e9e9e9ffffffd6d6d6e9e9e9d6d6d6e9e9e9e9e9e9
-d6d6d6e9e9e9e9e9e9d6d6d6e9e9e9ffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9
-e9e9e9e9e9e9e9e9e9e9e9e9ffffffd6d6d6d6d6d6ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/dubois.gif b/Docs/Books/dubois.gif
deleted file mode 100644
index 36e0af7a41d..00000000000
Binary files a/Docs/Books/dubois.gif and /dev/null differ
diff --git a/Docs/Books/dubois.txt b/Docs/Books/dubois.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/ecomm.eps b/Docs/Books/ecomm.eps
deleted file mode 100644
index 4d4bf2447e1..00000000000
--- a/Docs/Books/ecomm.eps
+++ /dev/null
@@ -1,1149 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/ecomm.eps
-%%CreationDate: Sun Dec 31 14:29:34 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 298 366
-%%EndComments
-%%BeginPreview: 100 124 1 124
-% fffffffffffffffffffffffff0
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 9ff0055555555000000290c210
-% 9ff807fffffff0000002fefb10
-% 90900555555550000002aad210
-% 800007fffffff0000002482910
-% 9de006aaaaaaa0000000000010
-% 9be000002ffff0000000000010
-% 9ec0000bfaaaa00000002a6f10
-% 840002feafffe000000076f210
-% 1dc007d5fa9000000000295f10
-% 95a006bf550000000000000010
-% 9ee007eafffd40000000000010
-% 0a40001faab7f0000000000010
-% 16c000002fed50000000000010
-% 9fa00555ad5ff0000000000010
-% 99e007ff7bf550000000000010
-% 0d800555d6aff0000000000010
-% 924007ff7ffaa0000000000010
-% 1fe006aad557f0000000000010
-% 9fe00000000000000000000010
-% 1fc04000000000000000000010
-% 8021c000005c00000000000010
-% 1ff9800017f400000000000010
-% 9061600bfd5c00000000000010
-% 0a81e2feabf400000000000010
-% 9fe95fb5feac00000000000010
-% 8401f6ef200000000000000010
-% 1ee0adbad54000000000000010
-% 1b607feffffc00000000000010
-% 9fe0005aaaac00000000000010
-% 80000002fff800000000000010
-% 1ff8000002ac00000000000010
-% 8a300000001400000000000010
-% 08800000000000000000000010
-% 9de000aa80aa80000000000010
-% 1b6003ffc3ffc0000000000010
-% 8ec00555455570000000000010
-% 000007ff87ffd0000000000010
-% 800005554d5570000000000010
-% 000007d54fabd0000000000010
-% 800006801a00b0000000000010
-% 000007927612e0000000000010
-% 8000057fde7fb0000000000010
-% 800007eab42ae0000000000010
-% 0000055ff87fa0000000000010
-% 000003f5502ae0000000000010
-% 80000095505500000000000010
-% 80000000000000000000000010
-% 00000000000000000000000010
-% 8000017fffff40000000000010
-% 000003d55555e0000000000010
-% 800006bfffff50000000000010
-% 000005eaaaaaf0000000000010
-% 8000077fffffa0000000000010
-% 00000d800000f0000000000010
-% 80001b000000d0000000000010
-% 800017edb6dbb0000000000010
-% 00003d5b6db6e0000000000010
-% 000037ffffffb0000000000010
-% 800032aaaaaae0000000000010
-% 800003ffffffa0000000000010
-% 00000012244400000000000010
-% 80000000000000000000000010
-% 00000000000000000000000010
-% 800007ffffffe0000000001110
-% 00000555555570000183023790
-% 800007ffffffd0000081023110
-% 000006aaaaaab0000040813190
-% 800005ffffffe0000040802190
-% 00000700000010000220402090
-% 80000680000000000000004090
-% 00000580000000000080002890
-% 80000500000000000200205710
-% 00000000000000000000000010
-% 80000000000000000000000010
-% 00000000000000000000000010
-% 80000000000000000000000010
-% 00000000000000000000000010
-% 80000000000000000000000010
-% 00000000000000000000000010
-% fffffffffffffffffffffffff0
-% 7ffbffffffffffffffbbfffbd0
-% edb76fefffffbf6db6baad6eb0
-% 76edfb7edbf6f5db7ef5dbeb50
-% 6db56eabfedf6ed6d55e555ed0
-% f6efdb6dabfbf5b5bb7bbfb5b0
-% b5baaad6daaeaeded6b7aa6e70
-% 6eabea2d56b175b5b56b6edad0
-% db5d55d5bbabaedb6f37e5bdf0
-% 75f34b3b6d76db6d509abb6b70
-% 7eaab4d6d6db6adbaea7f5f7d0
-% edddaabb7b6d576cab455d4db0
-% 7b7755adadb6d1aba899b65f70
-% d7aaaadb6b6d2a545744edbb70
-% 7b6d556ad59aaaab5a665f56d0
-% bedb5ab76eeaaa54aa9935ddb0
-% 6bb7936ddb5b55555b699b66f0
-% fd6aaadab6ea4aaab5502fdbb0
-% 6bad752da95555556b2512fd70
-% feb7aaa2dfb554aab6db4bb7d0
-% 5b6aba88aaaa4a5555b69d7cb0
-% 7ed56bb35b6db5aaab6e36ef70
-% d5b6d542edb6faf5765cbdddb0
-% 7bf56badb6dad552dbfdeab7d0
-% ef6d9b52d9b77cd76d55b75af0
-% 75eb75eb6f6deab5537bedefb0
-% dd7ed7aad55ab5d5eed755b3f0
-% 7b6eaad5afedfd6b1b4edbdad0
-% eadbfbf556b6b554adbfb6adf0
-% 415f55abebedfdbb766d6f7cb0
-% e4ebb5f55ddbb56edaddbafb70
-% 41dddbaadefd7d5b6dfbeef6b0
-% 68d5b5f5eb6aeaffdab6bdec90
-% c1db5bab5dbffdb6ededf7e8f0
-% 6ae56af5eb76b7ffbbdbb7f350
-% d54900d75daffcdaf5f76fcdb0
-% 6ab7ffebf7fdadfbbbdfdfadd0
-% ff7f75b6fdabffbf77febf5b70
-% 7ffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 351.496063 translate
-283.464567 -351.496063 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 124 8
-% Transformation matrix
-[ 100 0 0 124 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefef0edeff0edeff0edeff0edeff0edeffefefefefefefefefefefefefefefef0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefef0edeffefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ff0edefd7dade4f595b4f595b4f595b4f595b4f595b4f595b4f595b4f595b4f595b8496a4
-f0edeff0edeff0edeff0edeff0edeff0edeff0edefd7dadeed4a54ed4a54ed4a54ed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54
-d7dadef0edefd7daded7daded7daded7daded7daded7daded7dadef0edeff0edeff0edeff0edef
-d7daded7daded7daded7daded7daded7daded7daded7daded7daded7daded7dadef0edefa9bbc3
-8496a4d7dade4f595ba9bbc3a9bbc38496a48496a4d7daded7daded7dade8496a44f595b8496a4
-d7daded7daded7dade8496a4d7dadef0edeff0edeff0edef060e0f
-060e0ffefefef0edef060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f4f595b
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefea9bbc3
-4f595bf0edef4f595b4f595b4f595b4f595b4f595b4f595b4f595ba9bbc34f595b060e0f4f595b
-4f595b4f595bd7dade4f595b4f595bd7dadefefefefefefe060e0f
-060e0ffefefef0edef060e0f8496a4d7daded7dade8496a4060e0fd7daded7dade4f595b4f595b
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefea9bbc3
-4f595bd7dade4f595b4f595b4f595b4f595b4f595b4f595b4f595bfefefe4f595b060e0f4f595b
-4f595b4f595bd7dade4f595b4f595bd7dadefefefefefefe060e0f
-060e0ffefefefefefed7daded7dadef0edeffefefef0edefa9bbc3f0edeffefefed7daded7dade
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefed7dade
-8496a4f0edef8496a48496a48496a4a9bbc38496a48496a4a9bbc3fefefea9bbc38496a48496a4
-8496a48496a4f0edefa9bbc38496a4f0edeffefefefefefe060e0f
-060e0ffefefefefefe4f595b060e0f4f595bd7dade4f595b060e0f060e0f4f595bfefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-f0edefd7dadefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefed7dade060e0f4f595b8496a44f595b060e0f4f595b4f595b060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeff2c8c9f2c8c9f2c8c9f2c8c9f2c8c9
-f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefef0edefd7dadef0edef
-fefefed7daded7daded7dadef0edeffefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f060e0f060e0f060e0fa9bbc34f595b060e0f4f595bf0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edef
-f2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefe8496a48496a48496a48496a48496a48496a4a9bbc3a9bbc3060e0f4f595b
-8496a44f595b4f595b4f595b4f595bf0edeffefefefefefe060e0f
-060e0ffefefefefefed7dade8496a48496a4a9bbc3fefefea9bbc38496a4d7dadefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edefef8b8fed4a54ed4a54f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefe8496a44f595b4f595b4f595b4f595b4f595b8496a4a9bbc3060e0f4f595b
-4f595b8496a48496a44f595b4f595bf0edeffefefefefefe060e0f
-060e0ffefefefefefe8496a44f595b4f595bf0edef4f595b4f595b4f595b8496a4fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516ed4a54ed4a54ed4a54ed4a54ef8b8fef8b8ff2c8c9f2c8c9f2c8c9f0edeff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefe8496a44f595b4f595b4f595b8496a48496a48496a4d7dade4f595b8496a4
-4f595b4f595b4f595b4f595b4f595bd7dadefefefefefefe060e0f
-060e0ffefefef0edef060e0f4f595b4f595b8496a4060e0f4f595b4f595b060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54
-ed4a54ef8b8fef8b8ff2c8c9f2c8c9f0edeffefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefef0edefd7daded7daded7dadef0edeff0edeff0edeff0edefd7dadea9bbc3
-a9bbc3d7dadef0edefa9bbc3d7dadef0edeffefefefefefe060e0f
-060e0ffefefef0edef060e0f060e0f060e0f060e0f8496a44f595b060e0f060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516ed4a54ed4a54ed4a54ed4a54ef8b8fef8b8f
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefea9bbc38496a48496a48496a4fefefe8496a48496a4a9bbc3fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefef0edeff2c8c9f2c8c9ef8b8fef8b8f
-ed4a54ed4a54f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefe8496a44f595b4f595b4f595b4f595b4f595b4f595b8496a4fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefef0edeff2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f4f595b4f595b060e0f060e0f4f595b4f595b060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefef0edefed4a54ed4a54ed4a54ed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f4f595b4f595b8496a4060e0f4f595b4f595b060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefe8496a44f595b4f595ba9bbc34f595b4f595b4f595b8496a4fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef8496a48496a48496a48496a48496a48496a48496a48496a4fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef4f595b4f595b4f595b4f595b4f595b4f595b4f595b060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefef2c8c9f2c8c9f2c8c9f2c8c9f2c8c9
-f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9
-f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9f2c8c9
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef4f595b060e0f060e0f060e0f060e0f060e0f060e0f4f595bfefefefefefe
-fefefef0edefef8b8fef8b8fef8b8ff2c8c9fefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefed7dadea9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc38496a4d7daded7dade
-fefefef0edeff40516f40516f40516ef8b8ffefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edef
-f2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef4f595b060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f4f595b
-fefefef0edeff40516f40516f40516ef8b8ffefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefef0edeff2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef4f595b8496a4a9bbc3a9bbc3a9bbc3a9bbc38496a44f595ba9bbc3d7dade
-fefefef0edeff40516f40516f40516ed4a54fefefefefefefefefefefefefefefef0edeff2c8c9
-f2c8c9ef8b8fef8b8fed4a54ed4a54f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef8496a48496a4a9bbc38496a4a9bbc3a9bbc38496a48496a4d7dadea9bbc3
-fefefef0edeff40516f40516f40516f40516ef8b8fef8b8fef8b8fed4a54ed4a54f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f060e0f060e0f060e0f060e0f060e0f060e0f4f595b8496a4060e0f
-fefefef0edeff40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefea9bbc3a9bbc38496a4a9bbc3d7dadea9bbc3a9bbc3d7dadef0edefd7dade
-fefefefefefeed4a54f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516ed4a54ed4a54ed4a54ef8b8fef8b8fef8b8fef8b8f
-f2c8c9f2c8c9f2c8c9f0edeff0edeff0edeffefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef4f595b060e0f060e0f060e0fd7dade4f595b060e0f4f595bfefefefefefe
-fefefefefefeef8b8ff40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516ed4a54ed4a54ed4a54ed4a54ed4a54ef8b8f
-ef8b8fef8b8fef8b8ff2c8c9f2c8c9f2c8c9f2c8c9fefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f4f595b8496a44f595b4f595b8496a44f595b060e0ff0edeffefefe
-fefefefefefefefefef2c8c9ed4a54f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef060e0f060e0f060e0f060e0f060e0f060e0f060e0f4f595bfefefefefefe
-fefefefefefefefefefefefefefefef0edeff2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefea9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3d7dadefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edef
-f2c8c9f2c8c9ef8b8fef8b8fed4a54ed4a54f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef4f595b060e0f4f595b4f595b4f595b4f595b4f595b060e0f060e0f4f595b
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefef0edefd7dadef2c8c9ef8b8fef8b8fed4a54ed4a54
-f40516f40516f40516f40516f40516f40516f40516f2c8c9fefefefefefefefefefefefefefefe
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefef0edef8496a48496a48496a44f595b8496a48496a48496a48496a44f595b8496a4
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-f0edeff0edeff2c8c9ef8b8fef8b8fed4a54ed4a54f2c8c9fefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefef0edeffefefefefefefefefe
-fefefefefefefefefefefefefefefefefefef0edeffefefe060e0f
-060e0ffefefefefefea9bbc38496a48496a4fefefea9bbc38496a48496a4a9bbc3fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edef060e0f
-060e0ffefefef0edef060e0f060e0f4f595b8496a4060e0f060e0f060e0f060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefef0edefef8b8fed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ef8b8ffefefefefefefefefefefefef0edef
-ef8b8fed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ef8b8ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefef0edeffefefef0edef060e0f
-060e0ffefefed7dade060e0f4f595b4f595b060e0f4f595b8496a44f595b060e0ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefef0edefed4a54f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516fefefefefefefefefef0edefed4a54
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54f0edef
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefef0edeffefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefe8496a44f595b4f595b4f595bf0edef4f595b060e0f8496a4fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefeed4a54f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516ed4a54fefefefefefefefefeed4a54f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefef0edeffefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeff40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516ed4a54fefefefefefeef8b8ff40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edef
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefef0edeff0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516fefefef0edeff40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefef0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef060e0f
-060e0ff0edeff0edeff0edeff0edeff0edefd7dadef0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff2c8c9f40516f40516f40516f40516f40516
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54f0edefef8b8ff40516f40516f40516
-f40516f40516ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54f40516f40516f40516f40516f40516
-f2c8c9f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edefd7dadef0edeff0edeff0edef
-d7daded7daded7daded7daded7daded7daded7daded7dade060e0f
-060e0ff0edeff0edeff0edeff0edeff0edefd7dadef0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff2c8c9f40516f40516f40516f40516f2c8c9
-fefefefefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516
-f40516f2c8c9fefefefefefef0edeff0edeff0edeffefefef2c8c9f40516f40516f40516f40516
-f2c8c9f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edefd7daded7daded7daded7dade
-d7daded7daded7daded7daded7daded7daded7daded7dade060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516ed4a54
-ef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8ff40516f40516f40516f40516f40516
-ef8b8ffefefef2c8c9ef8b8fef8b8fef8b8fef8b8fef8b8fed4a54f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edeff0edeff0edef
-fefefefefefef0edeff0edeff0edeff0edeffefefef0edef060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefeed4a54f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edeff0edeff0edef
-f0edeffefefefefefefefefef0edeff0edeffefefef0edef060e0f
-060e0ff0edeff0edeff0edeff0edeff0edefd7dadef0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edefd7dadef40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ef8b8f
-f0edeff0edefed4a54f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edefd7daded7dade
-d7daded7daded7daded7daded7daded7daded7dadef0edef060e0f
-060e0ffefefefefefefefefefefefef0edeff0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edefed4a54f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54fefefe
-fefefef0edefed4a54f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edef060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f0edeffefefe
-fefefefefefeed4a54f40516f40516f40516f40516f40516f40516f40516f40516f40516f2c8c9
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefef2c8c9ed4a54ed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ef8b8ff0edeffefefefefefe
-fefefefefefeed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ef8b8ff0edeffefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-f0edeff0edeffefefefefefef0edeff0edeff0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edef060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefef2c8c9ed4a54ed4a54f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54ed4a54f2c8c9fefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefef0edeffefefefefefef0edeffefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f2c8c9
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefeed4a54f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeff40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefef0edeff40516f40516f40516f40516f40516ed4a54
-ef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8f
-ef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fed4a54f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefeed4a54f40516f40516f40516f40516f40516f0edef
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516
-f2c8c9fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefef0edeffefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefeef8b8ff40516f40516f40516f40516f40516f40516f40516
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefef0edeff40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefeef8b8ff40516f40516ed4a54f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefeef8b8ff40516f40516ef8b8fef8b8ff40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ef8b8f
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefef2c8c9ed4a54ef8b8ff0edefed4a54f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54f0edef
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeffefefef0edefef8b8fef8b8fef8b8f
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54ef8b8ff2c8c9fefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefef0edeff0edeffefefef0edeff0edeffefefef0edeff0edef
-f0edeff0edeffefefefefefefefefefefefef0edeff0edeff0edeff0edeff0edeffefefef0edef
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefef0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeff40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516ed4a54
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7daded7daded7daded7daded7daded7daded7daded7daded7daded7dade
-d7daded7daded7daded7dadea9bbc3d7daded7daded7daded7daded7daded7dadea9bbc3ef8b8f
-ef8b8fef8b8fef8b8fef8b8fef8b8fef8b8ff0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7dadefefefefefefe8496a44f595bd7dadefefefed7dadef0edeffefefe
-8496a44f595bd7dadefefefed7dadef0edeffefefea9bbc3060e0fa9bbc3fefefef2c8c9f40516
-f40516ed4a54a9bbc3ed4a54f40516f40516f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7dadefefefefefefe8496a44f595ba9bbc3fefefef0edeffefefefefefe
-8496a44f595b8496a4fefefed7dadef0edeffefefea9bbc34f595b8496a4fefefef2c8c9f40516
-f40516ed4a54d7dadeef8b8ff40516f40516f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7dadefefefef0edefdddc59dddc598496a4fefefef0edeffefefef0edef
-a9bbc3dddc598496a4fefefed7dadef0edeffefefed7daded7dade8496a4fefefef2c8c9f40516
-f40516ef8b8fd7dadea9bbc3f40516f40516f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516f40516
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefef0edeffefefea9bbc3d7dadefefefe4f595ba9bbc3f0edeffefefea9bbc3
-d7dadefefefe4f595ba9bbc3d7dadefefefed7daded7dadefefefea9bbc3d7dadef2c8c9f40516
-ed4a54d7daded7daded7dadeed4a54f40516f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516ef8b8f
-ef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8f
-ef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8fef8b8f
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefef0edeff0edef8496a4fefefefefefe8496a44f595bf0edeff0edefa9bbc3
-fefefefefefea9bbc38496a4d7dadef0edefd7dadef0edeff0edefd7daded7dadef2c8c9f40516
-ef8b8ff0edeff0edefd7dadeef8b8ff40516f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f0edef
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7dadedddc59dddc59d7dadefefefedddc59dddc59f0edeff0edefd7dade
-d7dadefefefed7daded7daded7daded7dadea9bbc3d7dadef0edefd7daded7dadea9bbc3ed4a54
-d7daded7dadef0edefd7dadef2c8c9ed4a54f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef2c8c9f40516f40516f40516f40516f0edef
-fefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefefefefe
-fefefef0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7dadedddc59dddc59a9bbc38496a4dddc59dddc59f0edeff0edeff0edef
-d7daded7dadef0edeff0edefd7dadef0edeff0edefd7daded7daded7dadef0edefa9bbc3ed4a54
-d7dadea9bbc3f2c8c9d7dadef2c8c9ed4a54f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edefed4a54ed4a54ed4a54ed4a54f0edef
-fefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefed7daded7dadea9bbc3a9bbc3a9bbc3a9bbc3d7daded7daded7daded7dade
-d7daded7daded7daded7dadea9bbc3d7daded7daded7daded7daded7daded7dadea9bbc3ed4a54
-ed4a54ed4a54ed4a54ed4a54ed4a54ed4a54f0edeffefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefefefefe
-fefefef0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefef0edeff0edeffefefef0edeffefefef0edeff0edeff0edeff0edef
-f0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeff0edeffefefe
-f0edeff0edeffefefef0edeffefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefef0edeffefefefefefefefefef0edeffefefe
-fefefefefefef0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-f0edeffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefef0edeffefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0ffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefe060e0f
-060e0fa9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3d7dadea9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3
-a9bbc3a9bbc3a9bbc3a9bbc3d7dadea9bbc3a9bbc3d7dade060e0f
-060e0f124b91060e0f124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91060e0f060e0f060e0f060e0f060e0f124b91060e0f124b91060e0f060e0f060e0f124b91
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f124b91124b91060e0f060e0f060e0f124b913a74b8060e0f4f595b3a74b8124b91
-060e0f124b91060e0f060e0f124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b913a74b81078c8124b91124b913a74b8060e0f
-060e0f124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-3a74b8124b91124b91124b91124b91124b91124b91124b91124b91060e0f060e0f060e0f124b91
-124b91124b91060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f124b91060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f124b91060e0f124b91124b91124b91124b91
-060e0f124b91124b91060e0f124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b91124b91124b91124b918496a4124b91060e0f4f595b8496a4
-124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b913a74b81078c8124b91124b91124b913a74b8060e0f
-060e0f124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-3a74b8124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91060e0f060e0f
-124b91124b91124b91060e0f124b91124b91060e0f124b91124b91060e0f124b91124b91124b91
-060e0f060e0f060e0f060e0f124b91124b91124b91124b91124b91124b91124b91124b91124b91
-060e0f124b91124b91124b911078c8124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b91124b91124b913a74b88496a4124b91124b91124b913a74b8
-8496a4124b91124b913a74b81078c8124b91124b91124b91124b91124b911078c8124b91124b91
-124b913a74b81078c8124b91124b911078c83a74b83a74b8060e0f
-060e0f124b91124b911078c83a74b8124b91124b913a74b81078c8124b911078c81078c83a74b8
-3a74b83a74b8124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b911078c81078c8124b911078c83a74b83a74b83a74b8124b91124b913a74b8
-124b913a74b8124b91124b91124b91124b913a74b83a74b83a74b8124b91124b91124b913a74b8
-3a74b88496a43a74b81078c83a74b81078c83a74b83a74b83a74b8124b911078c8124b91124b91
-3a74b81078c8124b91124b911078c81078c81078c83fa4e5060e0f
-060e0f124b91124b911078c8124b913a74b83a74b83a74b8124b911078c81078c81078c81078c8
-1078c83a74b8124b911078c8124b91124b911078c8124b91124b91124b913a74b83a74b83fa4e5
-3a74b83a74b81078c8124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b91124b91124b91124b91124b913a74b8124b91124b91124b91
-3a74b83a74b83a74b83a74b8124b91124b913a74b83fa4e53a74b83fa4e51078c83a74b83a74b8
-3a74b83a74b83a74b8124b913a74b83a74b83a74b88496a43a74b8124b91124b91124b913a74b8
-124b913a74b88496a43a74b83a74b83a74b81078c83a74b83a74b8124b911078c8124b913a74b8
-1078c81078c8124b911078c81078c81078c81078c8a9bbc3060e0f
-060e0f124b91124b91124b913a74b83a74b83a74b83a74b83a74b8124b91124b91124b913a74b8
-1078c83a74b8124b91124b911078c83a74b83a74b81078c81078c81078c81078c83fa4e51078c8
-1078c83a74b81078c83a74b83a74b8124b91124b911078c81078c81078c81078c81078c8124b91
-1078c8124b91124b91124b91124b91124b91124b91124b91124b91124b91124b91124b911078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-124b911078c81078c8124b913a74b81078c81078c83fa4e58496a4124b91124b91124b913a74b8
-124b91124b913a74b88496a43a74b81078c81078c81078c8124b91124b911078c83a74b8124b91
-1078c81078c8124b911078c81078c81078c88496a43fa4e5060e0f
-060e0f124b91124b91124b913a74b83a74b81078c81078c81078c81078c81078c8124b911078c8
-1078c83a74b8124b911078c81078c81078c83a74b81078c83fa4e53fa4e53fa4e51078c81078c8
-1078c83fa4e51078c81078c81078c81078c83a74b81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c8124b911078c8124b911078c81078c8124b913a74b8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c83a74b81078c81078c81078c83fa4e53a74b8124b91124b913a74b8124b91
-124b91124b91124b913a74b88496a43a74b8124b91124b91124b911078c83fa4e51078c81078c8
-1078c8124b91124b911078c81078c88496a43a74b8124b91060e0f
-060e0f124b91124b913a74b83a74b83a74b81078c81078c83a74b83a74b83a74b83a74b81078c8
-3a74b83a74b8124b911078c81078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e51078c81078c83fa4e51078c83fa4e51078c83fa4e51078c81078c81078c81078c8
-3fa4e51078c83fa4e51078c81078c83fa4e53fa4e53fa4e53a74b83fa4e53a74b8124b913a74b8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c83a74b81078c81078c8
-1078c81078c81078c83a74b83a74b81078c81078c83fa4e53a74b81078c81078c83a74b83a74b8
-124b91124b91124b91124b913a74b8a9bbc33a74b8124b913a74b83fa4e51078c81078c81078c8
-1078c8124b911078c81078c8a9bbc33fa4e5124b91124b91060e0f
-060e0f124b913a74b8124b913a74b83a74b81078c81078c83a74b8124b913fa4e53fa4e51078c8
-1078c81078c8124b911078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c83fa4e5
-3fa4e53fa4e51078c81078c81078c81078c83a74b81078c81078c81078c81078c81078c81078c8
-1078c81078c83a74b81078c81078c83fa4e53fa4e53fa4e51078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c83a74b81078c83fa4e5a9bbc33a74b8124b913a74b81078c8
-1078c8124b91124b911078c8124b913a74b88496a43a74b83a74b8124b911078c81078c81078c8
-1078c8124b911078c88496a43a74b8124b91124b91124b91060e0f
-060e0f124b91124b91124b911078c81078c81078c8124b91124b91124b91124b911078c83a74b8
-3fa4e51078c8124b913fa4e53fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c83fa4e53fa4e5
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c8
-1078c81078c8124b911078c81078c81078c81078c81078c81078c81078c81078c81078c83a74b8
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5a9bbc3a9bbc33a74b83a74b81078c8
-1078c8124b91124b911078c8124b91124b913a74b8a9bbc34f595b124b911078c8124b91124b91
-1078c81078c88496a43a74b8124b91124b91124b91124b91060e0f
-060e0f124b91124b91124b91124b913a74b81078c81078c81078c83a74b81078c83a74b81078c8
-3fa4e53a74b81078c81078c83fa4e51078c83fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c8
-1078c81078c81078c81078c83a74b81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c83a74b8
-1078c83a74b81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c83fa4e53fa4e53fa4e58496a4d7dadea9bbc31078c8
-1078c8124b91124b91124b91124b91124b911078c83a74b88496a43a74b81078c81078c8124b91
-1078c88496a43a74b8124b91124b91124b91124b911078c8060e0f
-060e0f124b91124b91124b91124b91124b91124b91124b91124b911078c81078c8124b911078c8
-1078c83a74b81078c81078c83fa4e51078c83fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c81078c83fa4e5
-3fa4e53fa4e51078c81078c81078c81078c81078c81078c81078c81078c83fa4e53fa4e51078c8
-3fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c83fa4e53fa4e53fa4e5a9bbc3a9bbc33fa4e5
-1078c81078c81078c81078c8124b91124b91124b911078c83a74b88496a43a74b81078c81078c8
-8496a43a74b8124b91124b91124b91124b91124b913a74b8060e0f
-060e0f124b91124b91124b91124b913a74b8124b91124b911078c8124b911078c81078c83a74b8
-1078c81078c81078c81078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e51078c83a74b83fa4e5
-3fa4e51078c81078c81078c81078c83a74b81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c83fa4e53fa4e5
-3fa4e53fa4e53fa4e51078c81078c83fa4e51078c83a74b81078c81078c81078c81078c81078c8
-1078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5a9bbc33fa4e51078c8a9bbc3
-8496a41078c81078c81078c81078c81078c81078c81078c81078c83fa4e58496a43a74b88496a4
-3a74b8124b91124b91124b91124b911078c83a74b81078c8060e0f
-060e0f124b91124b91124b913a74b83a74b8124b91124b911078c81078c83a74b83a74b83a74b8
-3fa4e53a74b81078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-1078c83fa4e53fa4e53fa4e53fa4e51078c83fa4e53fa4e53fa4e53fa4e5d7dade3fa4e53fa4e5
-a9bbc3a9bbc31078c81078c81078c81078c81078c8124b911078c81078c83fa4e5a9bbc33a74b8
-124b91124b91124b91124b91124b913a74b8124b91124b91060e0f
-060e0f124b91124b91124b91124b913a74b8124b91124b913a74b81078c83a74b81078c81078c8
-3a74b83a74b83a74b83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e51078c8
-1078c81078c81078c83a74b83a74b83a74b81078c81078c83a74b81078c83fa4e53fa4e51078c8
-1078c81078c83fa4e53fa4e51078c81078c83a74b83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e51078c83fa4e53fa4e53fa4e53fa4e5
-1078c83fa4e51078c81078c83fa4e51078c83fa4e53fa4e53fa4e51078c83fa4e5d7dade3fa4e5
-1078c8a9bbc3a9bbc31078c81078c81078c81078c8124b91124b91124b911078c83fa4e53fa4e5
-1078c81078c8124b911078c83a74b8124b91124b913a74b8060e0f
-060e0f3a74b8124b91124b91124b91124b91124b913a74b8124b91124b913a74b83a74b83a74b8
-3a74b81078c8124b913fa4e53fa4e53fa4e51078c81078c83fa4e53fa4e53fa4e53fa4e51078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c83fa4e51078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e5a9bbc33fa4e53fa4e53fa4e53fa4e51078c83fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e51078c83a74b81078c83fa4e51078c83fa4e53fa4e51078c83fa4e5d7dade
-3fa4e51078c88496a4a9bbc31078c81078c81078c81078c8124b91124b91124b911078c83a74b8
-3fa4e5124b911078c83fa4e51078c81078c83a74b8124b91060e0f
-060e0f124b91124b913a74b83a74b8124b91124b91124b911078c83a74b8124b911078c83a74b8
-1078c81078c8124b911078c83fa4e5a9bbc33fa4e53fa4e53fa4e51078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c8124b911078c81078c8124b911078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c83fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e51078c83fa4e53fa4e53fa4e5
-3fa4e53fa4e51078c81078c83a74b81078c81078c83fa4e51078c83fa4e53fa4e51078c83fa4e5
-d7dade3fa4e51078c88496a4a9bbc3124b91124b911078c81078c8124b911078c81078c81078c8
-1078c83fa4e53a74b8124b913a74b83a74b81078c81078c8060e0f
-060e0f124b91124b911078c8124b91124b913a74b83a74b83a74b81078c83a74b83a74b83a74b8
-3a74b83a74b83a74b83a74b81078c83fa4e53fa4e53fa4e5a9bbc33fa4e51078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e51078c81078c83fa4e53fa4e51078c83fa4e53fa4e53fa4e53fa4e53fa4e5a9bbc3a9bbc3
-a9bbc3d7daded7dadea9bbc3a9bbc3a9bbc33a74b8124b911078c8124b91124b91124b911078c8
-1078c81078c81078c83a74b83a74b8124b91124b91124b91060e0f
-060e0f124b91124b913a74b8124b913a74b83a74b83a74b81078c83fa4e53a74b83a74b83a74b8
-3a74b83a74b83a74b83a74b81078c81078c81078c81078c83fa4e53fa4e53fa4e51078c83fa4e5
-3fa4e53fa4e51078c81078c83fa4e51078c81078c83fa4e51078c83fa4e53fa4e53fa4e53fa4e5
-1078c83fa4e51078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5a9bbc33fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e51078c8
-1078c81078c81078c83fa4e53fa4e51078c81078c83fa4e5a9bbc33fa4e53fa4e5a9bbc3a9bbc3
-3fa4e5a9bbc3d7daded7dade3fa4e58496a4a9bbc33a74b8124b91124b91124b91124b91124b91
-124b91124b913a74b83a74b81078c81078c81078c8124b91060e0f
-060e0f124b91124b91124b91124b91124b91124b913a74b81078c83fa4e51078c83a74b83a74b8
-3a74b83a74b8124b913a74b83fa4e51078c81078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c83fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e51078c81078c81078c81078c81078c81078c81078c81078c81078c83a74b81078c81078c8
-3a74b81078c81078c83fa4e5a9bbc38496a43a74b83fa4e53a74b8124b911078c8124b91124b91
-124b91124b91124b913a74b8124b91124b911078c81078c8060e0f
-060e0f124b91124b91124b91124b91124b91124b911078c81078c81078c81078c83a74b88496a4
-3a74b83a74b83a74b83a74b81078c81078c81078c81078c83fa4e53fa4e53fa4e53fa4e5a9bbc3
-a9bbc3a9bbc3a9bbc3d7dadea9bbc3a9bbc33fa4e53fa4e53fa4e53fa4e51078c83fa4e51078c8
-1078c81078c83fa4e53fa4e51078c83fa4e51078c83fa4e53fa4e5a9bbc33fa4e53fa4e53fa4e5
-3fa4e53fa4e53fa4e5a9bbc3a9bbc33fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e53fa4e5
-3fa4e51078c81078c83fa4e53fa4e51078c81078c81078c83a74b83fa4e51078c81078c81078c8
-1078c83fa4e51078c83fa4e5a9bbc33a74b8124b91124b913fa4e53a74b81078c8124b91124b91
-124b91124b91124b91124b918496a43a74b8124b913a74b8060e0f
-060e0f124b913a74b8124b91124b91124b91124b911078c83a74b81078c83a74b83a74b83a74b8
-3a74b83a74b83a74b83a74b81078c83a74b81078c81078c83fa4e51078c8124b91124b911078c8
-3fa4e53fa4e5a9bbc3a9bbc33fa4e51078c81078c81078c83a74b81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c81078c8124b913a74b8
-3a74b83fa4e53fa4e53fa4e51078c81078c81078c83a74b83fa4e53fa4e53fa4e53fa4e53fa4e5
-1078c81078c83fa4e53fa4e53fa4e51078c81078c83fa4e53fa4e5124b91124b91124b91124b91
-124b911078c8a9bbc3a9bbc33a74b8124b911078c8124b91124b913a74b83a74b8124b91124b91
-124b91124b91124b91124b91124b918496a48496a4124b91060e0f
-060e0f124b913a74b81078c83a74b83a74b81078c81078c83a74b81078c83a74b83a74b83a74b8
-8496a43a74b83a74b88496a41078c81078c81078c83a74b88496a43a74b8124b911078c83fa4e5
-3fa4e5a9bbc3a9bbc3a9bbc33fa4e51078c81078c81078c81078c81078c81078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c8124b91124b91124b91
-3a74b83fa4e53fa4e53fa4e51078c81078c81078c81078c83fa4e53fa4e53fa4e51078c81078c8
-1078c81078c81078c81078c81078c81078c83fa4e53fa4e51078c81078c8124b91124b91124b91
-3a74b8a9bbc3a9bbc33fa4e51078c8124b911078c81078c81078c83a74b81078c8124b911078c8
-1078c8124b91124b911078c8124b91124b918496a44f595b060e0f
-060e0f124b91124b91124b911078c81078c8124b91124b91124b91124b91124b91124b913a74b8
-3a74b83a74b83a74b83a74b83a74b81078c81078c81078c83fa4e53a74b8124b911078c83fa4e5
-3fa4e53fa4e53fa4e53fa4e53fa4e51078c81078c81078c81078c81078c83a74b81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c8124b91124b91124b91
-3a74b83fa4e53fa4e53fa4e51078c81078c81078c81078c8a9bbc33fa4e53fa4e51078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8124b91124b91124b91
-3a74b8a9bbc3124b911078c81078c8124b91124b911078c83fa4e51078c8124b913a74b81078c8
-1078c81078c81078c8124b91124b91124b91124b918496a4060e0f
-060e0f124b91124b91124b911078c81078c81078c8124b91124b91124b91124b91124b913a74b8
-3a74b83a74b83a74b83a74b83a74b83fa4e51078c81078c83fa4e53a74b8124b911078c83fa4e5
-1078c83fa4e53fa4e53fa4e53fa4e51078c81078c81078c81078c81078c81078c83a74b83fa4e5
-1078c81078c8124b91124b911078c81078c81078c81078c81078c81078c8124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c81078c83fa4e53fa4e51078c81078c81078c8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c81078c8124b91124b913a74b8
-8496a4124b91124b91124b911078c81078c83a74b83a74b81078c81078c83a74b83a74b83fa4e5
-1078c8124b911078c81078c81078c8124b91124b91124b91060e0f
-060e0f124b91124b91124b913a74b83a74b81078c81078c8124b91124b91124b913a74b83a74b8
-3a74b83a74b83a74b81078c83a74b83a74b81078c81078c83fa4e51078c8124b91124b911078c8
-1078c83fa4e53fa4e53fa4e53fa4e51078c81078c81078c81078c81078c81078c81078c83a74b8
-1078c81078c81078c81078c81078c81078c81078c81078c81078c8124b91124b91124b91124b91
-3a74b83fa4e53fa4e53fa4e51078c81078c81078c81078c83fa4e53fa4e51078c81078c83fa4e5
-1078c81078c81078c83fa4e53fa4e51078c81078c81078c81078c81078c8124b913a74b88496a4
-124b91124b91124b91124b91124b911078c83fa4e51078c83a74b83a74b8124b91124b913a74b8
-8496a43a74b81078c8124b91124b91124b91124b91124b91060e0f
-060e0f124b91124b91124b91124b911078c81078c81078c83a74b8124b91124b91124b91124b91
-124b91124b913a74b81078c83a74b83fa4e53a74b83a74b83fa4e51078c8124b91124b911078c8
-1078c83fa4e53fa4e53fa4e53fa4e51078c81078c81078c83fa4e51078c81078c81078c8124b91
-3a74b83a74b81078c81078c81078c81078c81078c81078c83fa4e51078c8124b91124b91124b91
-3a74b81078c83fa4e53fa4e51078c81078c81078c81078c83fa4e53fa4e51078c81078c81078c8
-1078c81078c83fa4e51078c81078c81078c81078c81078c81078c81078c83a74b88496a4124b91
-124b91124b91124b91124b913a74b83fa4e51078c81078c83a74b8124b91124b911078c8124b91
-1078c8a9bbc33a74b8124b91124b91124b91124b91124b91060e0f
-060e0f124b91124b91124b91124b91124b913a74b81078c83a74b83a74b8124b91124b913a74b8
-124b91124b911078c83a74b81078c81078c81078c83a74b83fa4e53a74b8124b91124b91124b91
-1078c83fa4e53fa4e53fa4e53fa4e51078c81078c81078c83fa4e53fa4e51078c8124b91124b91
-124b91124b911078c81078c81078c81078c81078c81078c81078c81078c8124b91124b91124b91
-124b911078c83fa4e53fa4e53fa4e51078c81078c81078c83fa4e53fa4e51078c81078c83fa4e5
-1078c83fa4e51078c81078c81078c81078c81078c81078c81078c88496a48496a4124b91124b91
-124b91124b91124b913a74b83fa4e5124b911078c83a74b8124b91124b91124b911078c81078c8
-3a74b84f595b8496a43a74b8124b91124b91124b91124b91060e0f
-060e0f124b91124b913a74b83a74b88496a43a74b83a74b8124b913a74b83a74b8124b91124b91
-124b91124b911078c81078c81078c81078c81078c81078c83fa4e51078c8124b91124b91124b91
-124b911078c83fa4e53fa4e53fa4e51078c81078c81078c83a74b83fa4e53fa4e5124b91124b91
-124b91124b913a74b81078c81078c81078c81078c81078c83a74b83a74b8124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c81078c83fa4e53fa4e53a74b83fa4e53fa4e5
-3fa4e53fa4e53fa4e51078c81078c81078c81078c81078c8a9bbc38496a4124b91124b91124b91
-124b91124b913a74b83a74b8124b913a74b83a74b8124b91124b911078c81078c81078c83fa4e5
-4f595b060e0f4f595ba9bbc33a74b8124b91124b91124b91060e0f
-060e0f124b913a74b8d7dadef0edefd7dadefefefe8496a43a74b83a74b83a74b81078c8124b91
-124b91124b91124b91124b911078c81078c81078c81078c83fa4e53a74b8124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c8124b913a74b81078c81078c83a74b8124b91
-124b91124b91124b91124b911078c8124b911078c81078c81078c8124b91124b91124b91124b91
-124b911078c83fa4e51078c81078c81078c81078c81078c81078c81078c81078c83fa4e51078c8
-1078c81078c81078c81078c81078c81078c81078c88496a48496a4124b91124b91124b91124b91
-124b913a74b83a74b8124b913a74b83a74b8124b91124b911078c81078c81078c83a74b84f595b
-060e0f060e0f124b913a74b8a9bbc33a74b8124b91124b91060e0f
-060e0f124b913a74b8d7dadea9bbc33a74b8f0edef8496a4124b91124b913a74b81078c81078c8
-1078c8124b91124b91124b911078c81078c81078c83a74b83fa4e53a74b8124b91124b91124b91
-124b911078c83fa4e53fa4e53fa4e51078c81078c81078c81078c81078c8124b911078c83a74b8
-124b91124b91124b91124b913a74b81078c81078c81078c81078c8124b91124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c81078c81078c81078c81078c81078c83a74b8
-1078c81078c81078c81078c83a74b83a74b88496a48496a4124b91124b91124b91124b91124b91
-3a74b81078c8124b913a74b83a74b8124b91124b911078c81078c81078c83fa4e54f595b060e0f
-060e0f124b911078c81078c88496a4a9bbc33a74b8124b91060e0f
-060e0f124b913a74b8d7dadea9bbc3a9bbc3fefefe8496a4124b91124b913a74b81078c83a74b8
-1078c81078c8124b91124b91124b913a74b81078c81078c83fa4e53a74b8124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c81078c81078c81078c8124b91124b911078c8
-3a74b8124b91124b91124b91124b91124b911078c81078c81078c8124b91124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c81078c8124b91124b911078c8124b911078c8
-1078c81078c81078c81078c81078c88496a48496a4124b91124b91124b91124b91124b913a74b8
-3a74b8124b91124b913a74b8124b91124b91124b91124b911078c83fa4e54f595b060e0f060e0f
-124b911078c81078c81078c81078c88496a48496a43a74b8060e0f
-060e0f124b913a74b8d7dadea9bbc3d7dadefefefe8496a4124b91124b913a74b83a74b83a74b8
-3a74b83a74b83a74b8124b913a74b83a74b81078c81078c83fa4e53a74b8124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c8124b911078c81078c81078c81078c81078c8
-1078c83a74b8124b91124b91124b91124b913a74b81078c83fa4e51078c8124b91124b91124b91
-124b911078c83fa4e51078c81078c81078c81078c8124b91124b91124b91124b91124b913a74b8
-124b911078c81078c81078c83a74b88496a43a74b83a74b8124b91060e0f124b913a74b83a74b8
-124b913a74b83a74b8124b91124b91124b91124b91124b913a74b84f595b060e0f060e0f124b91
-1078c81078c81078c8d7dadea9bbc3124b913a74b88496a4060e0f
-060e0f124b913a74b8d7daded7daded7dadefefefe8496a4124b91124b913a74b83a74b83a74b8
-3a74b83a74b83a74b83a74b81078c83a74b8124b911078c83a74b83a74b8124b91124b91124b91
-124b911078c83fa4e53fa4e51078c81078c81078c8124b913a74b81078c81078c81078c81078c8
-1078c83a74b83a74b8124b91124b91124b91124b913a74b81078c8124b91124b91124b91124b91
-124b911078c81078c81078c8124b911078c8124b91124b91124b91124b91124b91124b91124b91
-124b91124b911078c8124b911078c88496a4124b91124b914f595b124b913a74b83a74b8124b91
-4f595b3a74b8124b91124b91124b91124b91124b913a74b84f595b060e0f060e0f060e0f124b91
-3a74b83fa4e5a9bbc33fa4e5a9bbc38496a4124b918496a4060e0f
-060e0f124b913a74b88496a48496a48496a48496a48496a4124b91124b914f595b8496a48496a4
-8496a43a74b83a74b88496a43a74b83a74b83a74b83a74b83fa4e58496a43a74b83a74b8124b91
-124b911078c83fa4e53fa4e51078c81078c8124b91124b913a74b81078c81078c81078c81078c8
-124b911078c83a74b83a74b8124b91124b91124b91124b913a74b83a74b8124b91124b91124b91
-124b911078c81078c81078c8124b91124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b91124b911078c88496a4124b91060e0f124b913a74b8124b91124b913a74b8
-3a74b8124b91124b91124b91124b91124b913a74b84f595b060e0f060e0f060e0f060e0f4f595b
-4f595ba9bbc3a9bbc31078c81078c83fa4e53a74b8124b91060e0f
-060e0f124b913a74b88496a48496a48496a48496a43fa4e51078c8124b914f595ba9bbc38496a4
-d7dadea9bbc38496a4a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc3a9bbc33a74b8124b91
-124b911078c83fa4e53fa4e51078c8124b91124b91124b911078c81078c81078c81078c81078c8
-1078c81078c81078c83a74b84f595b124b91124b91124b91124b91124b91124b91124b91124b91
-124b91124b913fa4e53a74b8124b91124b91124b91124b91124b911078c8124b911078c81078c8
-3a74b8124b91124b911078c83a74b88496a4060e0f060e0f060e0f4f595b124b914f595b4f595b
-124b91124b91124b91124b91124b913a74b84f595b060e0f060e0f060e0f060e0f4f595b4f595b
-a9bbc33fa4e51078c83a74b8124b91124b913fa4e58496a4060e0f
-060e0f124b913a74b83a74b83fa4e53fa4e53fa4e53fa4e53fa4e53a74b83a74b83a74b83a74b8
-3a74b83a74b8124b914f595b124b91124b91124b913a74b83a74b83a74b84f595b124b91124b91
-124b913fa4e53fa4e53fa4e5124b91124b91124b91124b91124b911078c8124b911078c8124b91
-124b91124b91124b91124b913a74b84f595b124b91124b91124b91124b91124b91124b91124b91
-124b91124b911078c8124b91124b91124b91124b91124b91124b911078c8124b911078c8124b91
-124b91124b91124b911078c83a74b83a74b8060e0f060e0f060e0f4f595b4f595b4f595b060e0f
-124b91124b91124b91124b913a74b84f595b060e0f060e0f060e0f060e0f4f595b4f595b8496a4
-3fa4e51078c8124b913a74b83fa4e5124b91124b913a74b8060e0f
-060e0f124b91124b91124b91124b91124b91124b91124b913a74b8124b91124b91124b91124b91
-060e0f060e0f124b91124b91124b91124b91124b911078c81078c81078c8124b91124b91124b91
-124b911078c83fa4e51078c8124b91124b91124b91060e0f124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b913a74b8124b91124b91124b91124b91124b91124b91124b91
-124b91124b91124b913a74b8124b91124b91060e0f060e0f124b91124b91124b91124b91124b91
-124b91124b91124b91124b91124b914f595b060e0f060e0f060e0f4f595b124b91060e0f060e0f
-124b91124b91124b913a74b8124b91060e0f060e0f060e0f060e0f4f595b4f595b3fa4e53a74b8
-124b911078c8124b91124b91124b913a74b8060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f060e0f
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/ecomm.gif b/Docs/Books/ecomm.gif
deleted file mode 100644
index 67552393cc6..00000000000
Binary files a/Docs/Books/ecomm.gif and /dev/null differ
diff --git a/Docs/Books/ecomm.txt b/Docs/Books/ecomm.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/in_21.eps b/Docs/Books/in_21.eps
deleted file mode 100644
index 3bacae56e2d..00000000000
--- a/Docs/Books/in_21.eps
+++ /dev/null
@@ -1,1149 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/in_21.eps
-%%CreationDate: Sun Dec 31 14:30:10 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 298 366
-%%EndComments
-%%BeginPreview: 100 124 1 124
-% fffffffffffffffffffffffff0
-% f6db6db56b6db6db7ffffffff0
-% db6db6d6d556db6daaaaaaaab0
-% f6db6d2d2eaab6db6ffffffff0
-% db6db5f2f2b5db6dbadb214a70
-% d6b6db174d4b6db6d7b69a11d0
-% bb6b6ce9555696db6dfff7ff70
-% edb6b52aaaaaad6db7556eedd0
-% aadadad5555556d6ddffddbbb0
-% ff6da52aaaaaab6d6ab6fbef70
-% d5b6bad5555555b5b5edaf7bf0
-% badb4aaaaaaaaa6f6f5ffbdeb0
-% d76d5555555555b5b5b55ef7f0
-% b5b6aaaaaaaaaa56ed6ff7bd70
-% dedaaaaaaaaaaab555dd6defd0
-% b56d55555555556b5ab7db5ab0
-% 6bb5555555555556eddd7ffff0
-% b6daaaaaaaaaaaadb6b7d55570
-% 6d6aaaaaaaaaaab041a52affd0
-% b6d555555555554c44424035b0
-% 6b6aaaaaaaaaaab7bdffffef70
-% b6d5555555555548a5442bbdf0
-% db555555555555588042a37750
-% 6daaaaaaaaaaaaaf7fff5feef0
-% 56eaaaaaaaaaaaa8a4aafd7dd0
-% ed55555555555554240fd7d7b0
-% 5bb5555555555552d6aabd7df0
-% b6d55555555555576dfff7db50
-% 6d6aaaaaaaaaaaadb6aabdbff0
-% b6d5555555555552db5fef7570
-% 6b6aaaaaaaaaaaad2deadbefd0
-% b6ad5555555555576abfbebdb0
-% db5aaaaaaaaaaaaadf55f7ef70
-% 6ded5555555555576aff5d7bf0
-% 5692aaaaaaaaaaaaddabf7deb0
-% edbd555555555556b2debdb7f0
-% 5b6aaaaaaaaaaabaefb5eb6d50
-% b6daaaaaaaaaaad6baff5ffbf0
-% db6d555555555555d755fadeb0
-% 6db55555555555a810802437f0
-% 56daaaaaaaaaaab9552a4d7d70
-% bb6f555555555557bffefbd7d0
-% 6db56aaaaaaaaab42015df7db0
-% b6db5555555556d8253fb5dbf0
-% db6daaaaad5555afededff7750
-% 6db6b555555556b55b7b56eef0
-% 56db5555555555db6fdffdddd0
-% ed6deeaaaaaaad6db5755bbbb0
-% 5bb6b555555576b6dfdff77770
-% f6db5ad555555bdb6abb6eeef0
-% 5d6db7555555ad6db7f6ddddd0
-% ebb6d4aaaaab76b6dd5ffbbbb0
-% 7d5b6df6f6d6db6b77f55f7770
-% d6f55bad9dadadb6ddbff5eef0
-% 7f5bfd5ae56b76dbbbeb6f7dd0
-% 6ad6d6d75d5dab6eef7eddd7b0
-% ffbba8a491b6ddbb5dd7fbbdf0
-% 55d6d8c490d56adefb7d5f7750
-% ff7db188136edb6bafdbf5eef0
-% 5aab688010db6dbefaf76f7dd0
-% f7fed42249b5b6ebb7befdd7b0
-% 5d5b706592db5bbeeeebd77df0
-% f7f6dfdf7f6db6ebdddefddb50
-% 5dbdb5b5d5b6edbb7bbbaf77f0
-% 77687f79456dbf82ef777bdeb0
-% edfcc8c961b6a493ddeeeef7f0
-% 7b548500620004137b7dddbd70
-% defc84145288d453dfd7bbefd0
-% 75b4949976024483757df77af0
-% df6c911052885153dfdb5edfb0
-% 76dc84457200440376f7f7f5f0
-% ddf7fddd6fbfddffddbebd5f50
-% 77add777db76f77d7bebeff6f0
-% 6efb7dddbeefbed7ef7edaddd0
-% fdaed7f7f7ddebfebdebbfbbb0
-% 57fbfc0e06fb0030030ef5f770
-% fd5eac0407af8038030fbf5ef0
-% 5bf7fc0606fb0e30c305ebf7d0
-% 776d6c0407b70630430f7ebd70
-% eeffdc0606ef0c30c30ed7efd0
-% bdd5bc0484398630c307fd7af0
-% 77bf748404390c30430eafdfb0
-% ddf6ec04861907f0c30dfaf5f0
-% 775ddcc0861181d0c307b7bf50
-% 6ef7bc01861b8030430eeeebf0
-% fdddf4c106136030c30fbddeb0
-% 57bb5c41861bf830c305efbbf0
-% fdf7f4c107130c30430f7af770
-% 5b5ebc4187030c18c30edfbed0
-% 77f7ecc107078c30c307f5ebf0
-% eebd7c4187068c30430ebf7eb0
-% bdefd4c106070c30c30debd7f0
-% 77bafc41878704304301befd70
-% ddefacc1068680380300edafd0
-% 777b7dffdf87aaf6877fdffaf0
-% 6edeefbefb0effefc1eefaafb0
-% fdf7db6bbe87bbbd80fbaffb70
-% 57bd7efeeb8eeeef7fdefadef0
-% fdefd7d7be0ddddfffffefb7d0
-% 5b7afd7dec0fbbfa90057ffd70
-% 77dfafdb7bfdfe000000017fd0
-% eef5faf7dfdbc00000000007f0
-% bdbf5fbef57e00000000000070
-% 77ebf5ebbfe000000000000010
-% dd7ebf7eee8001c00000000010
-% 77d7ebd7b8000778e000000010
-% 6efd7efdf0000513a000000010
-% fdafd7afc000063ac1e0000010
-% 57fafdfb00600528e190000010
-% fd5faf5e00000638a190000010
-% 5bf5fbf4006f8028c113d97810
-% 776f5eb800248030e196594810
-% eefdf7f0006d8060a190c94010
-% bdd76d70006580c0e112ca7010
-% 77bddfe0002c80c0c1964c1810
-% ddf7baa000658180c1924cc810
-% 775df7e0006d8300e1b6ced810
-% 69aa5ec000248720a152845010
-% f900f7e0000006f9c000040010
-% 58026d60000007a8a0000c0010
-% f1b8ffe00000000000001c0010
-% 5fefd570000000000000000010
-% 7b5f7fd0000000000000000010
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 351.496063 translate
-283.464567 -351.496063 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 124 8
-% Transformation matrix
-[ 100 0 0 124 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001
-0000011156a01156a01156a00381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d5269dee269dee269dee0381d50381d50381d50381d5269dee0381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a00381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee269dee269dee0381d50381d50381d50381d5269dee269dee269dee269dee0381d5
-0381d5269dee0381d5269dee269dee0381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a00381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee0381d50381d50381d5269dee269dee269dee269dee269dee0381d50381d50381d50381d5
-0381d5269dee269dee269dee269dee0381d5269dee269dee0381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a00381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee0381d50381d50381d5
-0381d50381d5269dee269dee269dee0381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee0381d50381d5269dee269dee0381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a0
-1156a01156a070a7df70a7df4d77b470a7df4d77b470a7df70a7df4d77b44d77b44d77b470a7df
-4d77b44d77b44d77b44d77b470a7df4d77b41156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee0381d50381d50381d50381d5269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee0381d50381d5269dee0381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a0
-1156a01156a070a7df70a7df70a7df70a7df4d77b48890b1a2b3d1a2b3d170a7df70a7dfa2b3d1
-8890b170a7df70a7df70a7df70a7df4d77b41156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee0381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee0381d50381d5269dee269dee269dee0381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d5269dee269dee0381d50381d50381d50381d5269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee0381d5269dee269dee269dee269dee269dee269dee
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-269dee0381d50381d50381d50381d50381d50381d50381d5269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d51156a01156a00381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d51156a01156a01156a00381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a00381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d5269dee269dee0381d50381d5269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee0381d50381d50381d50381d50381d5269deeb63a5a4d77b40381d50381d5
-0381d50381d50381d50381d54d77b44d77b40381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee
-269dee0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee0381d50381d50381d50381d5b63a5a505287505287b63a5a
-b63a5ab63a5ab63a5ab63a5ab63a5ab63a5a5052875052870381d50381d50381d51156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee0381d50381d50381d5269deeb63a5a505287505287b63a5a
-b63a5ab63a5ab63a5ab63a5ab63a5ab63a5a5052875052870381d50381d50381d50381d50381d5
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee0381d5269deeb63a5ab63a5ab63a5ab63a5a
-b63a5aed0e19ed0e19b63a5ab63a5ab63a5a5052875052870381d51156a00381d51156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee0381d50381d5269dee0381d50381d50381d54d77b4
-4d77b44d77b44d77b40381d50381d54d77b40381d50381d50381d51156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee0381d5b63a5ab63a5a4d77b44d77b44d77b44d77b4
-4d77b44d77b44d77b44d77b44d77b44d77b44d77b4505287505287505287505287505287505287
-505287505287505287505287505287505287505287505287505287505287505287505287505287
-505287505287505287505287505287505287505287505287000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d51156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d51156a00381d51156a01156a01156a00381d5
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee0381d50381d570a7dfb0cfed70a7df70a7df
-269dee269deeb0cfed70a7df70a7dfb0cfed70a7df1156a04d77b470a7df70a7df70a7df70a7df
-1156a04d77b44d77b470a7df70a7df4d77b470a7df4d77b44d77b470a7df70a7df1156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d570a7dfb0cfedb0cfedb0cfed
-70a7df70a7dfb0cfedb0cfeda2b3d1b0cfedb0cfed4d77b470a7dfb0cfeda2b3d1b0cfeda2b3d1
-4d77b4b0cfeda2b3d1a2b3d1a2b3d1a2b3d1b0cfedb0cfedb0cfeda2b3d1b0cfed4d77b41156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a04d77b41156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee0381d5269dee269dee269dee269dee269dee269dee0381d5269dee70a7df269dee0381d5
-269dee269dee269dee269dee269dee269dee4d77b44d77b40381d570a7dfb0cfed70a7df4d77b4
-70a7df4d77b470a7df70a7df5052871156a04d77b44d77b41156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee0381d5269dee269dee269dee269dee269dee269dee0381d570a7dfb0cfedb0cfed4d77b4
-b0cfedb0cfedb0cfeddfdde4b0cfedb0cfeddfdde4b0cfed0381d570a7dfdfdde4a2b3d1b0cfed
-70a7dfb0cfeda2b3d1b0cfed4d77b44d77b4b0cfedb0cfed1156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d5269dee269dee0381d5
-0381d50381d5269dee0381d50381d50381d50381d50381d51156a01156a01156a00381d5269dee
-1156a01156a04d77b44d77b44d77b41156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-70a7df0381d5269dee70a7df0381d50381d5269dee4d77b44d77b44d77b44d77b41156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d570a7dfdfdde4b0cfedb0cfed
-b0cfed4d77b4b0cfedb0cfed4d77b470a7dffdfdfeb0cfedb0cfedb0cfedb0cfed4d77b41156a0
-0381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee70a7df70a7df269dee269dee
-269dee269dee269dee269dee0381d50381d5269dee269dee70a7df70a7df269dee0381d51156a0
-0381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d51156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d54d77b4269dee
-269dee269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d5269dee0381d5269dee0381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d5505287b63a5a4d77b4
-4d77b44d77b44d77b45052875052874d77b40381d50381d50381d50381d50381d51156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee0381d50381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee4d77b4505287b63a5ab63a5a
-b63a5ab63a5ab63a5ab63a5ab63a5ab63a5a5052874d77b40381d50381d50381d51156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee4d77b4505287b63a5ab63a5a
-b63a5ab63a5ab63a5aed0e19b63a5ab63a5a5052871156a00381d50381d51156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee0381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee4d77b4505287b63a5ab63a5a
-ed0e19b63a5ab63a5ab63a5ab63a5ab63a5a4d77b41156a00381d50381d51156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d5269dee0381d5269dee505287
-505287b63a5a505287269dee4d77b45052874d77b41156a00381d50381d51156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee0381d5269deeb63a5ab63a5a0381d54d77b44d77b44d77b4
-5052875052874d77b40381d55052875052875052875052871156a0505287505287505287505287
-505287505287505287505287505287505287505287505287505287505287505287505287505287
-505287505287505287505287505287505287505287505287000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee0381d50381d54d77b44d77b40381d50381d50381d50381d5
-0381d50381d50381d51156a01156a04d77b41156a01156a01156a01156a01156a01156a01156a0
-1156a01156a05052871156a01156a01156a01156a01156a01156a00829701156a01156a01156a0
-1156a01156a0505287505287505287505287505287505287000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee0381d5269dee0381d5269dee269dee269dee0381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d51156a00381d50381d51156a01156a0
-0381d51156a01156a01156a01156a01156a01156a01156a00381d51156a00829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee0381d50381d50381d5269dee0381d50381d5269deeb0cfedb0cfed70a7df
-70a7dfa2b3d14d77b4b0cfed70a7df70a7dfa2b3d170a7dfa2b3d1a2b3d1b0cfeda2b3d1a2b3d1
-b0cfeda2b3d1b0cfed70a7df4d77b4a2b3d1a2b3d1505287b0cfedb0cfeda2b3d170a7df1156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee0381d5269dee269dee269dee0381d50381d570a7dfb0cfed70a7df70a7df
-b0cfed70a7df1156a070a7df70a7df70a7df70a7df70a7dfa2b3d170a7df70a7dfa2b3d170a7df
-a2b3d1b0cfedb0cfed4d77b44d77b470a7df70a7df1156a070a7df70a7dfa2b3d170a7df1156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee0381d50381d50381d5269dee0381d50381d50381d5
-0381d50381d50381d50381d51156a01156a01156a00381d51156a01156a01156a01156a01156a0
-1156a04d77b41156a01156a01156a01156a01156a01156a01156a00829700829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d5269dee0381d5269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee0381d5269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee0381d5269dee269dee0381d50381d50381d50381d5269dee70a7df70a7df70a7df
-b0cfed269dee70a7df70a7df70a7df70a7df70a7dfb0cfedb0cfed4d77b41156a01156a00381d5
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee0381d5269dee0381d50381d5269dee0381d50381d5269deeb0cfedb0cfedb0cfed
-b0cfed4d77b4b0cfedb0cfeda2b3d1b0cfed70a7dfa2b3d1b0cfed4d77b41156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d5269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee0381d50381d50381d5269dee0381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d51156a00381d50381d51156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d5269dee269dee0381d5269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d51156a00381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d5269dee0381d50381d5269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d5
-0381d50381d5269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a00381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000010381d51156a01156a00381d50381d51156a00381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee0381d50381d5
-269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d5269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a00381d51156a00381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5269dee
-269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a00381d51156a00381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d5269dee269dee269dee269dee269dee269dee
-4d77b44d77b48890b18890b18890b18890b18890b14d77b44d77b4269dee269dee269dee269dee
-269dee269dee269dee269dee269dee269dee269dee0381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a00381d50381d50381d50381d50381d51156a00381d5
-0381d50381d50381d50381d50381d50381d54d77b44d77b4b63a5ab63a5aed0e19ed0e19ed0e19
-ed0e19ed0e19b63a5ab63a5ab63a5ab63a5ab63a5ab63a5ab63a5ab63a5ab63a5ab63a5a505287
-4d77b4269dee0381d5269dee269dee0381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a00381d51156a01156a00381d50381d50381d50381d50381d51156a00381d5
-0381d50381d50381d54d77b4b63a5aed0e19ed0e19ed0e19b63a5ab63a5a1156a01156a01156a0
-0381d50381d50381d50381d50381d50381d50381d5269dee0381d50381d50381d51156a0505287
-505287b63a5ab63a5a4d77b44d77b40381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a00381d50381d50381d50381d50381d5
-4d77b4b63a5ab63a5aed0e19ed0e19b63a5a0829701156a00381d50381d50381d5269dee269dee
-269dee0381d50381d50381d50381d5269dee0381d50381d50381d50381d5269dee0381d5269dee
-269dee0381d50381d55052874d77b44d77b40381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d51156a00381d51156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a00381d50381d50381d50381d50381d54d77b4b63a5a
-ed0e19ed0e19ed0e190829701156a00381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee70a7df0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d5269dee0381d5269dee0381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d51156a01156a00381d50381d5
-0381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a00381d51156a01156a01156a04d77b4ed0e19b63a5a
-b63a5a0829701156a00381d50381d50381d50381d50381d570a7dfb0cfedb0cfed4d77b40381d5
-1156a0b0cfedb0cfed1156a070a7df70a7df0381d5269deeb0cfed0381d50381d5b0cfedb0cfed
-70a7df0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a00381d50381d5
-0381d51156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a0b63a5ab63a5aed0e19505287
-1156a00381d50381d50381d50381d50381d50381d50381d5dfdde4dfdde4b0cfed4d77b41156a0
-a2b3d1fdfdfe70a7df1156a0fdfdfedfdde41156a0b0cfedfdfdfe0381d5b0cfedfdfdfedfdde4
-8890b10381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a00381d5
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a00381d5505287b63a5aed0e19ed0e190829701156a0
-0381d50381d50381d50381d50381d50381d51156a070a7dffdfdfedfdde41156a008297070a7df
-fdfdfefdfdfe70a7df4d77b4fdfdfefdfdfea2b3d1fdfdfefdfdfe4d77b4dfdde4fdfdfe70a7df
-1156a00381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a00381d5b63a5aed0e19b63a5a0829700381d50381d5
-0381d50381d50381d50381d50381d50381d51156a00381d570a7dffdfdfedfdde44d77b4dfdde4
-fdfdfefdfdfea2b3d1a2b3d1fdfdfedfdde4fdfdfedfdde4dfdde41156a04d77b4dfdde4fdfdfe
-8890b10381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a0505287b63a5aed0e190829701156a01156a01156a0
-0381d51156a01156a00381d50381d51156a01156a070a7df4d77b4b0cfedfdfdfefdfdfefdfdfe
-505287dfdde4dfdde4fdfdfea2b3d1a2b3d1dfdde48890b1fdfdfe8890b18890b170a7dffdfdfe
-8890b11156a00381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287b63a5ab63a5aed0e191156a00381d51156a01156a0
-0381d50381d51156a00381d50381d50381d51156a0a2b3d1dfdde4dfdde4a2b3d1b0cfed4d77b4
-1156a0a2b3d1a2b3d1a2b3d15052878890b14d77b44d77b4a2b3d18890b1dfdde4dfdde48890b1
-5052871156a00381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d50381d50381d50381d51156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287ed0e195052870829701156a01156a01156a01156a0
-1156a01156a01156a01156a01156a00381d50381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a00381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d5
-0381d51156a00381d51156a01156a00381d51156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287ed0e195052870829701156a01156a01156a01156a0
-1156a04d77b44d77b44d77b40381d51156a01156a00381d50381d51156a00381d51156a00381d5
-0381d50381d50381d50381d5269dee0381d50381d50381d50381d5269dee0381d50381d50381d5
-0381d50381d50381d50381d50381d50381d50381d50381d50381d50381d50381d51156a00381d5
-1156a00381d51156a01156a01156a01156a0269dee1156a01156a070a7df4d77b41156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287ed0e195052871156a01156a01156a01156a01156a0
-0381d5dfdde4fdfdfedfdde45052871156a01156a01156a01156a01156a01156a01156a00381d5
-1156a01156a01156a070a7dfdfdde44d77b41156a00381d50381d5fdfdfea2b3d18890b1b0cfed
-1156a01156a01156a01156a00381d51156a00381d51156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a04d77b4dfdde48890b1dfdde4dfdde45052871156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287ed0e195052871156a01156a01156a01156a01156a0
-1156a08890b1fdfdfe4d77b4082970269dee269dee4d77b41156a0269dee70a7df4d77b41156a0
-269dee70a7df0381d570a7dffdfdfe4d77b44d77b40381d51156a0dfdde4b0cfeda2b3d170a7df
-1156a0269dee269dee0381d50381d50381d50381d50381d54d77b44d77b4269dee4d77b470a7df
-269dee1156a04d77b470a7df4d77b44d77b4fdfdfe8890b1fdfdfea2b3d10829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287ed0e195052875052871156a01156a01156a01156a0
-1156a08890b1fdfdfe5052878890b1fdfdfedfdde4fdfdfe8890b1dfdde4a2b3d1dfdde4b0cfed
-fdfdfedfdde4fdfdfe8890b1dfdde4dfdde4fdfdfe4d77b41156a08890b1fdfdfeb0cfed505287
-dfdde4dfdde4fdfdfeb0cfedfdfdfea2b3d1dfdde4a2b3d1fdfdfedfdde4b0cfedfdfdfea2b3d1
-fdfdfe8890b1fdfdfedfdde4fdfdfea2b3d1dfdde48890b1fdfdfeb0cfed1156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a0505287b63a5ab63a5ab63a5a1156a01156a01156a01156a0
-1156a08890b1fdfdfe4d77b48890b1dfdde4a2b3d1fdfdfe5052878890b18890b1b0cfeda2b3d1
-fdfdfe5052878890b18890b1b0cfeda2b3d1fdfdfe1156a01156a04d77b4fdfdfea2b3d1505287
-dfdde48890b1fdfdfedfdde4dfdde48890b1dfdde4a2b3d1fdfdfe8890b1505287fdfdfe505287
-8890b1505287fdfdfea2b3d1dfdde4a2b3d1dfdde44d77b4fdfdfea2b3d10829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a0b63a5aed0e191156a01156a01156a01156a0
-1156a08890b1fdfdfe1156a08890b1fdfdfea2b3d18890b14d77b4b0cfeddfdde4a2b3d1a2b3d1
-fdfdfe0829701156a070a7dfb0cfeda2b3d1fdfdfe1156a01156a01156a0fdfdfe8890b1082970
-dfdde48890b1fdfdfeb0cfeddfdde48890b1dfdde4a2b3d1fdfdfea2b3d10829708890b1fdfdfe
-a2b3d1505287fdfdfea2b3d18890b14d77b4dfdde48890b1fdfdfea2b3d10829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a0b63a5aed0e195052875052871156a01156a0
-1156a08890b1fdfdfe5052878890b1dfdde48890b1a2b3d1dfdde4dfdde44d77b4b0cfeda2b3d1
-dfdde48890b1b0cfeda2b3d1b0cfeda2b3d1fdfdfe1156a01156a01156a0fdfdfe8890b1082970
-dfdde48890b1dfdde4b0cfeddfdde48890b1b0cfeda2b3d1fdfdfea2b3d1505287b0cfed4d77b4
-fdfdfe8890b1fdfdfe8890b18890b18890b1dfdde44d77b4fdfdfea2b3d10829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a0505287ed0e19b63a5a1156a01156a0
-1156a08890b1fdfdfe5052878890b1fdfdfedfdde4fdfdfe8890b1dfdde4dfdde4b0cfeda2b3d1
-fdfdfefdfdfedfdde48890b1b0cfeda2b3d1fdfdfe1156a01156a01156a0fdfdfea2b3d1082970
-dfdde4dfdde4fdfdfea2b3d1b0cfeddfdde4dfdde4a2b3d1fdfdfea2b3d1505287fdfdfea2b3d1
-dfdde4505287fdfdfedfdde4fdfdfea2b3d1dfdde48890b1fdfdfea2b3d10829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a0505287505287b63a5a505287
-1156a01156a01156a00829700829704d77b44d77b45052870829704d77b45052875052871156a0
-4d77b44d77b41156a01156a04d77b41156a04d77b41156a01156a01156a04d77b4505287082970
-1156a04d77b44d77b40829705052874d77b45052875052874d77b41156a01156a04d77b44d77b4
-5052870829704d77b44d77b45052870829705052870829705052870829701156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0b63a5ab63a5a
-5052871156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0505287
-b63a5a5052875052871156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a00829701156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a05052875052875052875052871156a01156a01156a01156a01156a01156a01156a0082970
-1156a01156a01156a01156a01156a01156a00829701156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a00829700829701156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a00829701156a01156a01156a0
-1156a01156a01156a00829700829701156a01156a01156a00829700829701156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a070a7dfb0cfedb0cfedb0cfed
-b0cfedb0cfed4d77b40829701156a0b0cfedb0cfedb0cfedb0cfedb0cfed70a7df1156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a08890b1b0cfeddfdde4
-dfdde4dfdde4dfdde4dfdde4dfdde4b0cfed5052870829701156a070a7dfb0cfeddfdde4dfdde4
-dfdde4dfdde4dfdde4b0cfed70a7df1156a0082970a2b3d1b0cfedb0cfedb0cfed4d77b41156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfefdfdfefdfdfe
-fdfdfefdfdfe8890b10829704d77b4fdfdfefdfdfefdfdfefdfdfefdfdfeb0cfed0829701156a0
-1156a01156a01156a01156a01156a01156a01156a01156a00829704d77b4fdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe5052870829704d77b4fdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfe505287082970b0cfedfdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfefdfdfefdfdfe
-fdfdfefdfdfea2b3d10000014d77b4fdfdfefdfdfefdfdfefdfdfefdfdfea2b3d10829701156a0
-1156a01156a01156a01156a01156a01156a01156a01156a00829704d77b4fdfdfefdfdfefdfdfe
-8890b1000001505287fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe8890b1
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfefdfdfefdfdfe
-fdfdfefdfdfeb0cfed0000018890b1fdfdfeb0cfedfdfdfefdfdfefdfdfea2b3d10829701156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a04d77b4fdfdfefdfdfefdfdfe
-8890b1082970505287fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfedfdde4dfdde4
-fdfdfefdfdfedfdde40000018890b1fdfdfea2b3d1dfdde4fdfdfefdfdfea2b3d10829701156a0
-1156a01156a01156a01156a01156a01156a01156a01156a00829704d77b4fdfdfefdfdfefdfdfe
-8890b10829704d77b4fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfeb0cfeddfdde4
-fdfdfefdfdfedfdde4082970a2b3d1fdfdfe8890b1dfdde4fdfdfefdfdfea2b3d10829708890b1
-a2b3d1a2b3d1a2b3d11156a01156a01156a0a2b3d1b0cfed1156a04d77b4fdfdfefdfdfefdfdfe
-8890b1082970505287fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfea2b3d1a2b3d1
-fdfdfefdfdfedfdde4082970dfdde4fdfdfe8890b1dfdde4fdfdfefdfdfea2b3d1000001a2b3d1
-fdfdfefdfdfefdfdfe5052870829701156a0dfdde4fdfdfe0829704d77b4fdfdfefdfdfefdfdfe
-8890b10000014d77b4fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1a2b3d1
-fdfdfefdfdfedfdde4505287fdfdfedfdde44d77b4dfdde4fdfdfefdfdfea2b3d10829704d77b4
-fdfdfefdfdfefdfdfe8890b10829701156a0dfdde4fdfdfe0000018890b1fdfdfefdfdfefdfdfe
-dfdde40829701156a050528750528750528708297008297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b18890b1
-fdfdfefdfdfedfdde48890b1fdfdfea2b3d1505287dfdde4fdfdfefdfdfea2b3d1082970505287
-dfdde4fdfdfefdfdfea2b3d10000014d77b4dfdde4a2b3d10829704d77b4fdfdfefdfdfefdfdfe
-fdfdfedfdde48890b11156a00829700829701156a01156a070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b18890b1
-fdfdfefdfdfefdfdfedfdde4fdfdfe8890b1505287fdfdfefdfdfefdfdfea2b3d1082970082970
-dfdde4fdfdfefdfdfea2b3d10000014d77b4fdfdfe8890b10829701156a0a2b3d1fdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfedfdde44d77b408297008297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b18890b1
-fdfdfefdfdfefdfdfefdfdfefdfdfe4d77b4505287fdfdfefdfdfefdfdfea2b3d1082970082970
-b0cfedfdfdfefdfdfedfdde400000170a7dffdfdfe5052870829701156a00829704d77b4a2b3d1
-dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1505287
-fdfdfefdfdfefdfdfefdfdfefdfdfe505287505287fdfdfefdfdfefdfdfea2b3d1082970082970
-70a7dffdfdfefdfdfedfdde40829708890b1fdfdfe0829701156a01156a01156a0082970082970
-0829708890b1fdfdfefdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1505287
-fdfdfefdfdfefdfdfefdfdfefdfdfe505287505287fdfdfefdfdfefdfdfea2b3d1082970082970
-4d77b4fdfdfefdfdfefdfdfe5052878890b1fdfdfe0829701156a04d77b4b0cfedb0cfedb0cfed
-082970082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1082970
-dfdde4fdfdfefdfdfefdfdfefdfdfe505287505287fdfdfefdfdfefdfdfea2b3d10829701156a0
-1156a0fdfdfefdfdfefdfdfe8890b1a2b3d1dfdde40829700829704d77b4fdfdfefdfdfefdfdfe
-1156a00829708890b1fdfdfefdfdfefdfdfe4d77b40829704d77b4fdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1082970
-dfdde4fdfdfefdfdfefdfdfedfdde40829704d77b4fdfdfefdfdfefdfdfea2b3d10829701156a0
-082970fdfdfefdfdfefdfdfedfdde4fdfdfe8890b10829701156a04d77b4fdfdfefdfdfefdfdfe
-0829700829708890b1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1082970
-b0cfedfdfdfefdfdfefdfdfedfdde40000014d77b4fdfdfefdfdfefdfdfea2b3d10829701156a0
-082970dfdde4fdfdfefdfdfefdfdfefdfdfe4d77b40829701156a04d77b4fdfdfefdfdfefdfdfe
-0829700829708890b1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1082970
-b0cfedfdfdfefdfdfefdfdfea2b3d10000014d77b4fdfdfefdfdfefdfdfea2b3d10829701156a0
-1156a0a2b3d1fdfdfefdfdfefdfdfefdfdfe5052870829701156a04d77b4fdfdfefdfdfefdfdfe
-0829700829708890b1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe4d77b4
-082970a2b3d1fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfe505287082970
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a008297070a7dffdfdfe8890b1000001
-b0cfedfdfdfefdfdfefdfdfea2b3d10000014d77b4fdfdfefdfdfefdfdfea2b3d10829701156a0
-1156a04d77b4fdfdfefdfdfefdfdfefdfdfe5052870829700829704d77b4fdfdfefdfdfefdfdfe
-8890b14d77b4dfdde4fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfea2b3d1
-4d77b4dfdde4fdfdfefdfdfefdfdfe50528708297070a7dffdfdfefdfdfefdfdfea2b3d18890b1
-a2b3d170a7df1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0082970a2b3d1fdfdfea2b3d1082970
-a2b3d1fdfdfefdfdfefdfdfea2b3d100000170a7dffdfdfefdfdfefdfdfeb0cfed0829701156a0
-1156a0505287fdfdfefdfdfefdfdfefdfdfe0829700829701156a04d77b4fdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfedfdde40829700829701156a0fdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfedfdde4082970082970b0cfedfdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfedfdde40829701156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a04d77b44d77b4505287082970
-5052874d77b45052875052875052870829704d77b44d77b44d77b44d77b45052870829701156a0
-1156a0082970fdfdfefdfdfefdfdfea2b3d10829701156a01156a05052874d77b48890b18890b1
-8890b18890b18890b18890b15052870829700829701156a01156a05052874d77b48890b18890b1
-a2b3d1fdfdfefdfdfefdfdfe5052870000010829704d77b44d77b4505287505287505287505287
-5052875052870829701156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a00829700829701156a0
-1156a00829700829700829700829701156a01156a00829700829700829700829705052871156a0
-1156a01156a0fdfdfefdfdfefdfdfe8890b10829701156a01156a01156a01156a0082970082970
-0829700829700829700829700829700829701156a01156a01156a01156a01156a0082970082970
-1156a0fdfdfefdfdfefdfdfedfdde48890b14d77b41156a00829700829701156a0082970082970
-0829701156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a0505287fdfdfefdfdfefdfdfe8890b10829701156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a0a2b3d1dfdde4dfdde4dfdde4dfdde470a7df0829701156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-082970505287fdfdfefdfdfefdfdfe5052870829701156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a00829700829700829700829700829700829701156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-4d77b4dfdde4fdfdfefdfdfefdfdfe5052870829701156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a0082970082970082970082970
-082970082970082970082970082970082970082970082970082970082970082970082970082970
-0829700829700829700829700829701156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0082970b0cfed
-fdfdfefdfdfefdfdfefdfdfe8890b10829701156a01156a01156a01156a01156a01156a01156a0
-1156a01156a00829700829700829700829700829700829700829701156a05052875052874d77b4
-4d77b48890b18890b18890b18890b18890b18890b18890b18890b18890b18890b18890b14d77b4
-4d77b45052875052871156a00829700829700829700829700829700829700829701156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a04d77b4
-5052875052875052875052870829700829701156a01156a01156a01156a01156a0082970082970
-0829700829701156a04d77b48890b1a2b3d1a2b3d1b0cfedb0cfeddfdde4dfdde4fdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfedfdde4dfdde4dfdde4b0cfeda2b3d1a2b3d18890b14d77b4505287082970082970
-0829700829700829701156a01156a01156a01156a01156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-0829700829700829701156a01156a01156a01156a00829700829700829700829704d77b4a2b3d1
-dfdde4dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfedfdde4dfdde4dfdde4
-a2b3d18890b15052870829700829700829700829701156a0000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a00829700829700829700829704d77b4a2b3d1dfdde4fdfdfefdfdfefdfdfe
-fdfdfedfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfeb0cfed8890b11156a0082970000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-0829700829700829705052874d77b4b0cfedfdfdfefdfdfefdfdfedfdde4dfdde4dfdde4fdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfedfdde4000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0082970082970
-1156a04d77b4a2b3d1fdfdfefdfdfefdfdfedfdde4dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfe
-fdfdfee7949ce7949ce7949cb63a5ab63a5ae7949ce7949cdfdde4fdfdfefdfdfefdfdfedfdde4
-e7949cdfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a00829700829705052878890b1
-dfdde4fdfdfedfdde4dfdde4dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfeed0e19ed0e19ed0e19b63a5aed0e19ed0e19ed0e19b63a5afdfdfefdfdfedfdde4ed0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a0082970082970a2b3d1dfdde4fdfdfe
-dfdde4dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfeb63a5aed0e19b63a5afdfdfedfdde4b63a5aed0e19ed0e19dfdde4b63a5aed0e19ed0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a00829700829708890b1dfdde4fdfdfedfdde4dfdde4
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfeb63a5aed0e19e7949cfdfdfefdfdfeb63a5aed0e19b63a5adfdde4ed0e19ed0e19ed0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe4d77b41156a05052871156a04d77b4dfdde4fdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a0082970505287dfdde4fdfdfedfdde4dfdde4dfdde4fdfdfe
-fdfdfefdfdfe505287082970a2b3d1fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfeb63a5aed0e19b63a5afdfdfefdfdfeb63a5aed0e19ed0e19fdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe082970082970a2b3d14d77b4082970a2b3d1fdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a00829700829708890b1fdfdfefdfdfedfdde4dfdde4fdfdfefdfdfefdfdfe
-fdfdfefdfdfedfdde4a2b3d1fdfdfefdfdfedfdde4dfdde4dfdde4dfdde4fdfdfefdfdfefdfdfe
-fdfdfeb63a5aed0e19e7949cfdfdfedfdde4b63a5aed0e19ed0e19fdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a01156a0fdfdfea2b3d1082970a2b3d1fdfdfe
-dfdde4b0cfeddfdde4fdfdfefdfdfedfdde4dfdde4fdfdfefdfdfefdfdfefdfdfedfdde4dfdde4
-dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a00829708890b1fdfdfedfdde4dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe8890b11156a0dfdde48890b10829704d77b41156a01156a0dfdde4fdfdfefdfdfe
-fdfdfedfdde4e7949cdfdde4fdfdfedfdde4ed0e19ed0e19ed0e19fdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a01156a0fdfdfea2b3d1082970b0cfedb0cfed
-1156a01156a01156a0505287dfdde44d77b4505287fdfdfea2b3d170a7dfb0cfed1156a0505287
-1156a01156a0b0cfedfdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a00829708890b1fdfdfedfdde4a2b3d1fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe4d77b4082970b0cfed8890b1000001b0cfed4d77b4082970a2b3d1fdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfee7949ced0e19ed0e19b63a5afdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a01156a0fdfdfea2b3d1082970b0cfeda2b3d1
-082970fdfdfe70a7df000001dfdde44d77b4082970fdfdfea2b3d18890b14d77b4082970fdfdfe
-b0cfed082970a2b3d1fdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a0082970505287fdfdfedfdde4b0cfedfdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe4d77b4082970b0cfed8890b1082970dfdde44d77b4082970a2b3d1fdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfedfdde4ed0e19ed0e19b63a5adfdde4fdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a0082970fdfdfea2b3d1082970b0cfeddfdde4
-dfdde4fdfdfe4d77b4082970dfdde470a7df082970dfdde4a2b3d18890b170a7df082970dfdde4
-fdfdfea2b3d1dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-082970082970dfdde4fdfdfedfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe4d77b4082970b0cfed8890b1082970dfdde44d77b4082970a2b3d1fdfdfefdfdfe
-fdfdfefdfdfefdfdfedfdde4b63a5aed0e19ed0e19dfdde4fdfdfefdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a01156a0fdfdfea2b3d1082970b0cfedfdfdfe
-4d77b44d77b41156a0082970dfdde4b0cfed08297070a7dfa2b3d1a2b3d1a2b3d1082970082970
-4d77b4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-08297070a7dffdfdfedfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe4d77b4082970b0cfed8890b1082970dfdde44d77b4082970a2b3d1fdfdfefdfdfe
-fdfdfefdfdfefdfdfee7949ced0e19ed0e19e7949cfdfdfefdfdfefdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a01156a0fdfdfea2b3d1082970b0cfed8890b1
-082970b0cfed70a7df082970b0cfedfdfdfe0829704d77b470a7dfb0cfedfdfdfedfdde4a2b3d1
-082970082970b0cfedfdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-082970dfdde4fdfdfedfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe4d77b4082970b0cfed8890b1082970dfdde44d77b4082970a2b3d1fdfdfefdfdfe
-fdfdfefdfdfee7949ced0e19ed0e19e7949cfdfdfefdfdfefdfdfefdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe1156a01156a0fdfdfea2b3d1082970b0cfed8890b1
-082970fdfdfea2b3d1082970b0cfedfdfdfe5052870829704d77b4fdfdfe8890b11156a0fdfdfe
-a2b3d108297070a7dffdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a04d77b41156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0082970
-505287dfdde4fdfdfedfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe505287082970b0cfed4d77b4000001dfdde44d77b4082970a2b3d1fdfdfefdfdfe
-fdfdfee7949ced0e19ed0e19b63a5afdfdfefdfdfefdfdfefdfdfefdfdfefdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe082970082970b0cfed4d77b4082970b0cfed8890b1
-082970b0cfed4d77b4000001b0cfedfdfdfe5052870829704d77b4fdfdfe4d77b4082970b0cfed
-8890b108297070a7dffdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a070a7dfa2b3d11156a04d77b4b0cfed1156a08890b14d77b4
-70a7df4d77b4a2b3d14d77b41156a01156a01156a01156a01156a01156a01156a01156a0082970
-505287fdfdfefdfdfedfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfe8890b1505287b0cfeda2b3d1505287dfdde470a7df505287dfdde4fdfdfefdfdfe
-dfdde4ed0e19ed0e19ed0e19e7949ce7949ce7949ce7949ce7949cdfdde4fdfdfea2b3d1ed0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfe4d77b45052874d77b45052874d77b4dfdde4b0cfed
-5052874d77b48890b1505287b0cfedfdfdfea2b3d10829708890b1fdfdfea2b3d15052874d77b4
-1156a0505287b0cfedfdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a0dfdde4dfdde41156a0dfdde4fdfdfe8890b1fdfdfedfdde4
-b0cfedb0cfedfdfdfe4d77b40829701156a01156a01156a01156a01156a01156a01156a0082970
-505287dfdde4fdfdfedfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-e7949ced0e19ed0e19ed0e19ed0e19ed0e19ed0e19ed0e19ed0e19e7949cfdfdfee7949ced0e19
-ed0e19b63a5afdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfea2b3d108297070a7dffdfdfefdfdfedfdde4dfdde4
-dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a0b0cfedfdfdfedfdde4b0cfedfdfdfedfdde4dfdde4fdfdfe
-b0cfeda2b3d1fdfdfe70a7df0829701156a01156a01156a01156a01156a01156a01156a01156a0
-082970dfdde4fdfdfedfdde4fdfdfefdfdfefdfdfefdfdfefdfdfe8890b1a2b3d1fdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-e7949ced0e19ed0e19ed0e19ed0e19ed0e19ed0e19ed0e19ed0e19e7949cfdfdfee7949ced0e19
-ed0e19b63a5adfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe4d77b408297070a7dffdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfedfdde4fdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a0b0cfeda2b3d170a7df1156a070a7df70a7df1156a04d77b4
-269dee70a7dfa2b3d11156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-082970a2b3d1fdfdfefdfdfedfdde4fdfdfefdfdfefdfdfefdfdfedfdde4fdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfedfdde4dfdde4dfdde4dfdde4dfdde4dfdde4dfdde4dfdde4fdfdfefdfdfefdfdfedfdde4
-dfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfe4d77b40829701156a0dfdde4fdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a00829701156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-0829701156a0fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfedfdde4dfdde4fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-0000011156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a01156a0
-1156a00829708890b1fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe
-fdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfefdfdfe000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001000001000001000001000001
-000001000001000001000001000001000001000001000001000001
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/in_21.gif b/Docs/Books/in_21.gif
deleted file mode 100644
index cffd7789395..00000000000
Binary files a/Docs/Books/in_21.gif and /dev/null differ
diff --git a/Docs/Books/in_21.txt b/Docs/Books/in_21.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/manual.eps b/Docs/Books/manual.eps
deleted file mode 100644
index 8bb88345060..00000000000
--- a/Docs/Books/manual.eps
+++ /dev/null
@@ -1,1221 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/manual.eps
-%%CreationDate: Sun Dec 31 14:30:17 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 294 383
-%%EndComments
-%%BeginPreview: 100 132 1 132
-% fffffffffffffffffffffffff0
-% 800000000000000000ff7c0010
-% 8000000000000000007fde0010
-% 8000000000000000003fef0010
-% 8000000000000000000ff7c010
-% 80000000000000000007bbe010
-% 80000000000000000001cef810
-% 80000000000000000000fb3c10
-% 800000000020000100007ffe10
-% 80000025130509400a603fef90
-% 800000000000000000000f7bd0
-% 8000000000000000000007fdf0
-% 8000aaaaaaaaaa55550543def0
-% 800100002410009012549cf770
-% 800024200041000100000079b0
-% 8001014a948855244924921ef0
-% 80002800201200011000040f70
-% 800102524540955422aaa007b0
-% 80002400800a52aa84000401f0
-% 8001089414954a4951492200f0
-% 80002101205250025510040070
-% 80010424454a82a894a2a00010
-% 80002088895410012544040010
-% 80010a11152924921490900010
-% 8000204224a201004aa2040010
-% 800109085554522a0484500010
-% 8000204149208040a2a0840010
-% 80010514aaa214890924100010
-% 800020229244410022a1240010
-% 80010a44aa88882a4488440010
-% 8000200a949112408822000010
-% 800104a4a50220091144940010
-% 8000210a94a404a02008040010
-% 80010824aa08a1050521240010
-% 8000224a929008204804440010
-% 80010415542292491150840010
-% 800120924a8400822202100010
-% 8001092aa910a4104048440010
-% 800110124a2209248a02040010
-% 800102aaa904400100a8a40010
-% 800124124a4892a82901040010
-% 800108aaa88100024024240010
-% 80011109251225240a40840010
-% 8001202aaa204000a08a100010
-% 8001051249050a540410440010
-% 8001104aaa4820012122040010
-% 80010214921109484840a40010
-% 8001288aaa824002020a000010
-% 80000129242415289090440010
-% 80012405558880010422140010
-% 80000894921024a42104800010
-% 80012102aaa288008848240010
-% 8000042a4940112a1211040010
-% 80012082aa4a42004082440010
-% 80010a11254008520924140010
-% 80012044a9294100a240840010
-% 800104889550142404a9240010
-% 80011011249240892120040010
-% 80012282155409104a85440010
-% 800104244924a02204a0100010
-% 80002088055505049549240010
-% 800109115124a0482902040010
-% 80002220045554814a90440010
-% 800104452089252aa924940010
-% 800020800912aaa52401040010
-% 80010914a22001284148240010
-% 80012200044488020812440010
-% 80010452908022a4a240040010
-% 80011080021550000409540010
-% 8001220820414a2120a2040010
-% 80010442890a54840000440010
-% 800129fffffffffbfffc940010
-% 800101fffffffffffffc000010
-% 800101fffffffffffffc040010
-% 8000bfffffff9ffffffdf80010
-% 800001ffffff9ffffffc000010
-% 800001ffffffdffffff8000010
-% 800001ffffff4ffffffc000010
-% 800001ffffff4ffffff8000010
-% 800001ffffff67fffffc000010
-% 800001ffffff7ffffff8000010
-% 800001fffffffffffffc000010
-% 80000186109470bdc41c000010
-% 800003d2f3bc979dbafc000010
-% 80000b927b9db7cf3efd000010
-% 800013d65296b0a57ebc400010
-% 80000bc6fbbc77b33ef9400010
-% 80000396f3bdb7f93efd000010
-% 800001da539492b99adc000010
-% 800001fbbfeffdffe6b8000010
-% 800001ffffffffdffffc000010
-% 800001ff7bbb933b9ff8000010
-% 800001fe73b9d7bbbffc000010
-% 800001fe739cf7bbbff8000010
-% 800001ff335a5739bffc000010
-% 800001fe9b1b37b5bff8000010
-% 800001fedacbb32cbffc000010
-% 800001fedaebb92c93f8000010
-% 800001fffffffdfffffc000010
-% 800001fffffffffffff8000010
-% 80000000000aab000248000010
-% 80000000000124000000000010
-% 80000000000090000000000010
-% 80000000000040000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000040000000000001000010
-% 80004200000002004240000010
-% 80000022110410240004400010
-% 80000000400000000800000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000010000004000000010
-% 80000000200202000020000010
-% 80000109000000004040000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 8002aaaaaaaaaaaaaa90000010
-% 80000000000000000825540010
-% 80000000000000000000000010
-% 80000000004020000000000010
-% 80000000020100100000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-279.169649 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 132 8
-% Transformation matrix
-[ 100 0 0 132 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102
-010102c6c8cdffffffececefececefececefececefececefececefececefececefececefececef
-ececefececefececefececefececefececefececefececefececefececefececefececefececef
-ececefececefececefececefececefececefececefececefececefececefececefececefececef
-ececefececefececefececefececefececefececefececefececefececefececefececefececef
-ececefececefececefececefececefececefececefececefececefececefececefececefececef
-ececefececefececefececefececefffffffc6c8cd010102010102010102010102010102010102
-0101021c2026969aa13b424a0101020101020101023b424ae2effaffffffffffffececefececef
-ececefececefececefececefececefececefececefececef010102
-010102ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe2effa1c2026010102010102010102010102
-0101020101021c2026777f88777f881c20260101020101021c2026ececefffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff5d636c010102010102010102
-0101025d636c1c20260101025d636c969aa13b424a010102010102010102969aa1ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffadb4bc010102010102
-0101023b424a3b424a0101020101023b424ac6c8cd5d636c0101020101020101023b424affffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effa1c2026
-010102010102010102777f88777f88010102010102969aa15d636c010102010102010102010102
-c6c8cdffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-777f880101020101021c2026777f8867a3d11c20261c20265d636c5d636c777f88010102010102
-010102777f88ffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffadb4bc0101020101020101023b424a5d636c5d636c0101021c2026adb4bc969aa11c2026
-0101020101023b424affffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-969aa1c6c8cdffffffc6c8cdadb4bcadb4bcececefececefc6c8cdc6c8cdececefffffff969aa1
-adb4bcffffffd7dde5777f88d7dde5ffffffc6c8cdc6c8cdc6c8cdffffffffffffffffffececef
-969aa1ececefffffffadb4bcadb4bcd7dde5ffffffc6c8cdd7dde5ffffff9ec8e8969aa1ffffff
-ececefc6c8cdffffffd7dde5c6c8cdc6c8cdffffffececefc6c8cdd7dde5ffffffffffffffffff
-ffffffffffffececef1c20260101020101021c20265d636c1c20260101020101025d636c5d636c
-3b424a010102010102010102c6c8cdffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-777f88c6c8cdffffff969aa1c6c8cdadb4bcc6c8cdffffffadb4bc969aa1d7dde5ffffff5d636c
-777f88ffffffffffff777f88ffffffffffff969aa1777f88adb4bcffffffffffffffffffd7dde5
-777f88ececefffffff969aa1c6c8cd777f88ffffffc6c8cdc6c8cdffffffc6c8cdadb4bcffffff
-d7dde5adb4bcffffff777f88c6c8cd969aa1ececefececef5d636c777f88ffffffffffffffffff
-ffffffffffffffffffffffff777f880101020101020101023b424a3b424a0101020101023b424a
-5d636c1c20261c2026010102010102777f88ffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-d7dde5ffffffffffffffffffd7dde5d7dde5ffffffffffffc6c8cdadb4bcffffffffffffc6c8cd
-c6c8cdffffffffffffc6c8cdffffffffffffececefececefececefffffffffffffffffffffffff
-c6c8cdececefffffffc6c8cdc6c8cdd7dde5ffffffd7dde5ececefffffffd7dde5d7dde5ffffff
-ececefd7dde5ffffffd7dde5c6c8cdc6c8cdffffffffffffd7dde5adb4bcececefffffffffffff
-ffffffffffffffffffffffffffffffc6c8cd0101020101020101020101025d636c3b424a010102
-0101023b424a777f880101020101020101023b424affffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff3b424a0101020101020101023b424a5d636c
-0101020101025d636c777f88010102010102010102010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffadb4bc3b424a777f88777f88969aa1777f88969aa1777f88969aa1969aa1777f88
-969aa1969aa1969aa1969aa1969aa1969aa1969aa1777f88777f88777f88777f88777f88777f88
-777f88777f88777f88777f88777f88777f88777f88777f88777f88969aa1969aa1969aa1969aa1
-969aa1969aa1969aa1adb4bcadb4bc969aa1777f88969aa1969aa1777f88969aa1969aa1969aa1
-969aa1969aa1777f88969aa1969aa1969aa1969aa1adb4bcadb4bcadb4bcadb4bcadb4bc969aa1
-969aa1969aa1969aa1969aa1969aa1969aa1adb4bcc6c8cd5d636c010102010102010102777f88
-777f881c20260101025d636cadb4bc5d636c010102010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88969aa1d7dde5adb4bcc6c8cdadb4bcc6c8cdadb4bcc6c8cdadb4bcc6c8cd
-c6c8cdadb4bcc6c8cdadb4bcc6c8cdadb4bcc6c8cd9ec8e8969aa1969aa1adb4bcadb4bcadb4bc
-adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bc
-c6c8cdadb4bcc6c8cdc6c8cdadb4bcadb4bcadb4bc969aa1adb4bcadb4bcadb4bcadb4bcadb4bc
-adb4bcadb4bc969aa1969aa1969aa1969aa1adb4bc969aa1969aa1adb4bc969aa1adb4bc969aa1
-969aa1969aa1969aa1969aa1969aa1969aa1969aa15d636cd7dde5d7dde5010102010102010102
-5d636cadb4bc3b424a0101021c2026969aa15d636c010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5e2effa9ec8e89ec8e8b6daf59ec8e8b6daf59ec8e8b6daf5b6daf5
-9ec8e89ec8e8b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-b6daf5b6daf5d7dde5b6daf5d7dde5b6daf5ffffff969aa1adb4bcffffffffffff3b424a010102
-0101021c2026969aa1969aa11c2026010102777f88777f88010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf584b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd9ec8e8
-9ec8e89ec8e89ec8e884b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1adb4bcffffffffffffffffff777f88
-0101020101020101025d636c969aa13b424a0101025d636c010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1969aa1ffffffffffffffffffffffff
-c6c8cd0101020101020101023b424aadb4bc5d636c010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd
-84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1adb4bcffffffffffffffffffffffff
-ffffffffffff3b424a010102010102010102777f883b424a010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd84b7dd67a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88adb4bcffffffffffffffffffffffff
-ffffffffffffffffff777f88010102010102010102010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d184b7dd84b7dd84b7dd9ec8e884b7dd9ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1969aa1ffffffffffffffffffffffff
-ffffffffffffffffffffffffc6c8cd010102010102010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd
-84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd67a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1adb4bcffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff3b424a010102010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff777f88010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cc6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cd7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cd7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf5
-9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cd7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff969aa1d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececefb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cd7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cd7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cd7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88ececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88ececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa5d636cececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa5d636cececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cd7dde5ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d184b7dd9ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88ececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88ececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88e2effaffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88ececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88ececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e884b7dd84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d184b7dd84b7dd84b7dd84b7dd84b7dd67a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd67a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d167a3d167a3d184b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf59ec8e89ec8e89ec8e884b7dd84b7dd
-84b7dd84b7dd84b7dd67a3d167a3d167a3d167a3d167a3d184b7dd84b7dd84b7dd84b7dd84b7dd
-84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf5b6daf5b6daf5
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d19ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d1
-84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636ce2effa9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf5
-b6daf59ec8e89ec8e8b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-b6daf5b6daf59ec8e89ec8e8b6daf5b6daf59ec8e884b7dd67a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d184b7dd9ec8e8b6daf5b6daf59ec8e89ec8e8b6daf5b6daf5b6daf59ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8
-9ec8e89ec8e89ec8e89ec8e8b6daf584b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d1
-67a3d167a3d167a3d184b7dd9ec8e89ec8e8b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5
-9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8d7dde5777f88ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636ce2effa84b7dd84b7dd84b7dd84b7dd9ec8e884b7dd1c20261c20263b424a
-3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a
-3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a
-3b424a3b424a3b424a3b424a3b424a3b424a5d636c5d636c5d636c5d636c5d636c5d636c5d636c
-5d636c5d636c5d636c5d636c3b424a5d636c5d636c5d636c5d636c5d636c5d636c5d636c777f88
-9ec8e89ec8e89ec8e884b7dd84b7dd9ec8e8d7dde55d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef5d636cffffffb6daf5b6daf5e2effab6daf5e2effa9ec8e80101023b424a1c2026
-1c20261c20261c20261c20261c20261c20261c20261c20261c20261c20261c20260101021c2026
-0101020101020101020101020101021c20261c20263b424a1c20261c20261c20261c20261c2026
-1c20260101021c20261c20261c20261c20261c20261c20261c20261c20261c20261c20261c2026
-1c20261c20261c20261c20261c20261c20261c20261c20261c20260101021c20260101021c2026
-b6daf59ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffececef3b424ad7dde5c6c8cdc6c8cdc6c8cdc6c8cdd7dde5c6c8cd1c20263b424a010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101023b424a010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101023b424a3b424a
-ffffffffffffe2effae2effae2effaffffffffffff5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff777f88777f88777f88777f88777f88777f88777f885d636c0101021c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102777f88ececef010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101023b424a1c2026
-777f88777f885d636c5d636c5d636c5d636c5d636c5d636cffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef1c20261c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102adb4bcffffff1c2026
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101021c20263b424a
-ececefd7dde5d7dde5d7dde5d7dde5d7dde5c6c8cdffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0101021c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101023b424a5d636cadb4bc969aa1
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef1c20261c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102969aa1777f88969aa1ececef
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effa1c20261c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102adb4bc777f88777f88ffffff
-3b424a010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef1c20261c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102777f88adb4bc010102010102ececef
-adb4bc010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef0101023b424a1c2026
-1c20261c20261c20261c20261c20261c20261c20261c20260101021c20261c2026010102010102
-0101021c20261c20260101020101020101021c20260101025d636c5d636c0101020101025d636c
-777f88010102010102010102010102010102010102010102010102010102010102010102010102
-0101020101020101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0101023b424a3b424a
-3b424a3b424a3b424a1c20263b424a3b424a3b424a3b424a3b424a3b424a1c20261c20263b424a
-3b424a3b424a1c20261c20261c20263b424a3b424a3b424a1c20261c20261c20261c20261c2026
-1c20263b424a3b424a3b424a1c20261c20261c20263b424a3b424a3b424a1c20263b424a1c2026
-1c20261c20263b424a3b424a3b424a3b424a3b424a3b424a5d636c3b424a0101020101025d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7dde5010102010102777f88
-e2effa777f88adb4bc010102010102c6c8cdadb4bc777f88c6c8cd1c2026969aa1c6c8cd777f88
-adb4bc3b424aadb4bcadb4bc777f88c6c8cd1c2026777f88c6c8cd777f88777f88010102010102
-d7dde5adb4bc969aa1c6c8cd010102777f883b424a0101020101021c2026c6c8cd1c2026010102
-3b424a969aa1777f88adb4bc5d636c3b424aadb4bc777f88adb4bc777f880101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffb6daf5777f88010102010102777f88
-d7dde5010102c6c8cdc6c8cd010102d7dde5777f880101021c2026010102969aa1ececef010102
-010102010102ececef777f880101021c2026010102969aa1c6c8cd010102ececef777f88010102
-ffffff5d636c0101025d636c010102c6c8cdffffff010102010102010102c6c8cd0101025d636c
-ffffff1c20260101021c2026969aa13b424affffff0101021c2026777f880101023b424a3b424a
-b6daf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffb6daf567a3d167a3d1777f88010102010102777f88
-c6c8cd010102969aa1c6c8cd010102d7dde5969aa1010102010102010102969aa1d7dde5010102
-010102010102d7dde5777f88010102010102010102969aa1adb4bc010102d7dde5969aa1010102
-e2effa5d636c010102010102010102777f88ffffffececef010102010102777f88010102ffffff
-969aa10101020101020101020101021c2026ffffff0101020101020101020101023b424a1c2026
-67a3d167a3d1d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff67a3d167a3d167a3d184b7dd777f880101020101025d636c
-ececef5d636cadb4bc1c2026010102c6c8cdd7dde5777f88c6c8cd010102777f88ffffff777f88
-adb4bc010102c6c8cdc6c8cd777f88d7dde5010102777f88c6c8cd5d636cadb4bc010102010102
-e2effaadb4bc777f88969aa1010102777f881c2026ffffffadb4bc010102777f88010102ffffff
-5d636c0101020101020101020101021c2026ffffff777f88969aa15d636c0101023b424a3b424a
-84b7dd67a3d167a3d167a3d1e2effaffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffe2effa84b7dd67a3d167a3d1777f880101020101025d636c
-d7dde5ffffff969aa1010102010102d7dde5969aa11c20263b424a010102777f88d7dde51c2026
-1c2026010102c6c8cd777f881c20263b424a010102777f88d7dde5ffffff5d636c010102010102
-e2effa777f883b424a3b424a010102969aa1010102010102ffffff969aa15d636c010102ffffff
-777f880101020101020101020101021c2026ffffff3b424a3b424a3b424a0101023b424a3b424a
-84b7dd67a3d167a3d167a3d1e2effaffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe2effa9ec8e8777f88010102010102777f88
-adb4bc1c2026ffffff3b424a010102d7dde55d636c010102010102010102777f88c6c8cd010102
-010102010102d7dde53b424a010102010102010102969aa1777f883b424affffff1c2026010102
-e2effa3b424a010102010102010102969aa11c20260101023b424affffffc6c8cd010102c6c8cd
-ececef0101020101020101020101021c2026ffffff0101020101020101020101023b424a3b424a
-67a3d184b7dde2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffadb4bc010102010102777f88
-d7dde50101025d636cececef1c2026d7dde5adb4bc3b424aadb4bc1c2026969aa1d7dde5010102
-010102010102ffffffadb4bc5d636c969aa13b424a969aa1c6c8cd010102adb4bcececef1c2026
-ffffffadb4bc3b424a969aa13b424ac6c8cd5d636c010102010102969aa1d7dde5010102010102
-d7dde5adb4bc1c20265d636c777f885d636cffffff3b424a3b424a969aa11c20263b424a3b424a
-e2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1c20263b424a3b424a
-3b424a1c20261c20265d636c3b424a3b424a5d636c777f88777f883b424a5d636c5d636c3b424a
-1c20261c20265d636c5d636c777f885d636c1c20263b424a5d636c1c20261c20265d636c3b424a
-3b424a5d636c5d636c5d636c1c20263b424a3b424a0101020101020101023b424a010102010102
-0101025d636c969aa1969aa15d636c3b424a777f885d636c777f88777f880101020101025d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7dde51c20263b424a010102
-0101021c20261c20260101020101021c20261c20261c20261c20263b424a1c20261c20263b424a
-1c20261c20261c20260101021c20261c20261c20261c20261c20263b424a3b424a3b424a1c2026
-1c20261c20261c20261c20263b424a3b424a3b424a3b424a3b424a3b424a1c20263b424a3b424a
-3b424a1c20261c20261c20261c20263b424a1c20261c20261c20261c20260101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-0101020101020101020101020101025d636c5d636c0101020101020101021c2026777f88010102
-010102010102777f88010102010102010102c6c8cd3b424a0101020101025d636cadb4bc010102
-e2effa777f88010102010102777f88d7dde50101020101020101025d636c010102010102010102
-d7dde5777f880101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-010102010102010102010102010102adb4bcffffff010102010102010102d7dde5c6c8cd010102
-0101025d636cffffff1c2026010102010102ffffffffffff0101020101023b424a969aa1010102
-ffffff5d636c010102010102777f88ffffff0101020101023b424affffff1c2026010102010102
-ffffff777f880101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-010102010102010102010102010102969aa1ffffff5d636c0101021c2026ffffffc6c8cd010102
-0101025d636cffffff777f88010102010102777f88ffffffd7dde50101021c2026777f88010102
-ececef3b424a0101020101025d636cd7dde50101020101025d636cffffff777f88010102010102
-d7dde55d636c0101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-0101020101020101020101020101025d636cadb4bcd7dde50101025d636cadb4bcc6c8cd010102
-1c20265d636c5d636cd7dde5010102010102777f88010102ffffff969aa11c2026777f88010102
-e2effa5d636c0101020101025d636ce2effa0101021c20263b424a5d636cd7dde5010102010102
-ececef5d636c0101020101020101020101020101020101020101020101020101021c20265d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-010102010102010102010102010102777f88010102d7dde5adb4bc5d636c5d636cececef010102
-5d636cd7dde5969aa1ffffff1c2026010102969aa10101021c2026ffffffadb4bc5d636c010102
-e2effa5d636c0101020101025d636cd7dde50101023b424ac6c8cd777f88ffffff1c2026010102
-e2effa5d636c0101020101020101020101020101020101020101020101020101021c2026777f88
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-0101020101020101020101021c2026adb4bc010102777f88ffffff1c20261c2026ffffff010102
-969aa15d636c010102d7dde5969aa1010102adb4bc0101020101025d636cffffff777f88010102
-e2effaadb4bc010102010102adb4bcd7dde5010102969aa15d636c010102ececef969aa1010102
-d7dde55d636c0101020101021c20260101020101020101020101020101020101021c2026777f88
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-0101020101020101020101021c2026d7dde5010102010102777f880101023b424ad7dde55d636c
-c6c8cd010102010102777f88d7dde53b424ad7dde51c2026010102010102969aa1777f88010102
-3b424affffffc6c8cd777f88d7dde5c6c8cd3b424ad7dde51c2026010102777f88ececef010102
-e2effaadb4bc3b424ad7dde5777f88010102010102010102010102010102010102010102777f88
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-1c20260101020101020101021c20261c20263b424a0101020101020101020101021c2026010102
-0101021c2026777f881c20260101021c20260101021c20260101020101020101021c2026010102
-1c20261c20261c20263b424a0101020101020101020101020101020101020101021c2026777f88
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c20261c2026
-1c20261c20261c20261c20260101020101020101021c20260101021c2026010102010102010102
-0101020101021c20260101020101020101021c20261c20261c20261c20261c20261c20261c2026
-1c20260101020101020101020101020101020101020101020101020101020101020101021c2026
-0101020101020101020101020101020101020101020101020101020101021c20260101025d636c
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cdc6c8cdc6c8cd
-c6c8cdc6c8cdc6c8cdd7dde5c6c8cdd7dde5d7dde5d7dde5d7dde5d7dde5d7dde5c6c8cdd7dde5
-c6c8cdadb4bcc6c8cdc6c8cd969aa1777f88777f885d636c777f885d636c777f88777f885d636c
-777f885d636c777f885d636c777f88adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bc
-adb4bcadb4bcadb4bcadb4bcadb4bc969aa1969aa1969aa1969aa1969aa1969aa1777f88c6c8cd
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff9ec8e867a3d167a3d184b7dd84b7dd67a3d184b7dd
-67a3d167a3d184b7dde2effaffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe2effa67a3d167a3d167a3d167a3d167a3d1
-67a3d1b6daf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffb6daf567a3d167a3d19ec8e8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effaffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffd7dde5b6daf5e2effaffffffe2effaffffffffffffffffffececef
-ffffffffffffe2effaffffffb6daf5e2effaffffffd7dde5e2effad7dde5d7dde5d7dde5e2effa
-b6daf5ffffffffffffffffffffffffd7dde5b6daf5e2effaffffffffffffffffffffffffd7dde5
-ffffffffffffd7dde5ffffffffffffececefffffffffffffd7dde5d7dde5e2effaffffffe2effa
-e2effaffffffffffffe2effaffffffe2effad7dde5ffffffffffffe2effae2effae2effaffffff
-ffffffffffffffffffffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffd7dde59ec8e8ffffffffffffffffff9ec8e89ec8e8ffffffd7dde567a3d1
-ffffffffffff67a3d1ffffff84b7dde2effaffffff9ec8e8d7dde59ec8e8e2effaffffffe2effa
-84b7dde2effaffffffffffffffffff9ec8e8b6daf5b6daf5b6daf5ffffffffffffe2effa84b7dd
-ffffffffffff84b7ddffffffffffff84b7ddffffffffffff84b7ddd7dde59ec8e8e2effa9ec8e8
-e2effab6daf5b6daf59ec8e8d7dde5d7dde5ffffffe2effab6daf5b6daf5ffffffb6daf5b6daf5
-e2effa67a3d1ffffffffffffb6daf5ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff67a3d19ec8e8ffffffffffffb6daf584b7ddffffffe2effa67a3d1
-e2effaffffff84b7ddffffff9ec8e8ffffffffffffb6daf5e2effab6daf5b6daf5e2effae2effa
-9ec8e8ffffffffffffffffffffffffb6daf5b6daf5b6daf5d7dde5ffffffffffffffffff84b7dd
-e2effab6daf584b7ddffffffffffff84b7ddb6daf5ffffff9ec8e8d7dde5b6daf5ffffff9ec8e8
-9ec8e8d7dde5e2effa9ec8e8d7dde584b7ddffffffffffff67a3d1e2effaffffffffffff84b7dd
-e2effa9ec8e884b7ddffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff9ec8e8b6daf5e2effad7dde584b7ddd7dde5ececefd7dde5
-84b7ddd7dde5b6daf5ececef9ec8e8e2effaffffff9ec8e8e2effa9ec8e8e2effaffffffe2effa
-9ec8e8ffffffffffffffffffffffffb6daf59ec8e8ffffffffffffffffffffffffffffff84b7dd
-ffffffffffff84b7ddffffffb6daf59ec8e89ec8e8ffffffb6daf567a3d1d7dde5ffffff9ec8e8
-d7dde5b6daf5e2effa9ec8e8ffffffe2effa84b7dd9ec8e884b7dde2effaffffffffffff67a3d1
-e2effaffffffe2effa67a3d1b6daf5ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffb6daf5e2effad7dde5b6daf5ffffffe2effa9ec8e8e2effaffffff
-d7dde5ffffffb6daf5e2effae2effa84b7dde2effa84b7ddd7dde59ec8e8d7dde5e2effae2effa
-9ec8e8d7dde5b6daf5ffffffffffff9ec8e8d7dde5ffffffe2effaffffffffffffe2effa84b7dd
-ffffffffffff9ec8e8d7dde5b6daf5ffffff9ec8e8b6daf5b6daf5ececef9ec8e8e2effa9ec8e8
-d7dde5b6daf5d7dde59ec8e8ffffffffffffd7dde5b6daf5d7dde5b6daf5ffffffb6daf5b6daf5
-e2effab6daf5ffffffb6daf584b7ddffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effae2effaffffff
-ffffffe2effae2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effaffffff
-ffffffffffffffffffffffffffffffe2effaffffffffffffffffffe2effae2effae2effaffffff
-ffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effad7dde5e2effa
-e2effae2effad7dde5ffffffffffffd7dde5e2effae2effaffffffe2effaffffffffffffe2effa
-e2effaffffffffffffffffffffffffffffffffffffe2effad7dde5d7dde5d7dde5d7dde5d7dde5
-e2effae2effae2effae2effaffffffe2effad7dde5e2effaffffffe2effaffffffffffffffffff
-e2effae2effaffffffffffffffffffe2effaffffffe2effaececefffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7dde584b7ddffffffffffff
-ffffffb6daf59ec8e8ffffffffffff84b7dde2effa9ec8e8e2effab6daf5ffffffffffffb6daf5
-84b7ddffffffffffffffffffffffffffffffe2effab6daf5ffffffe2effaffffff9ec8e89ec8e8
-ffffff9ec8e89ec8e8ffffffffffff84b7ddb6daf5ffffffececef84b7ddffffffffffffd7dde5
-84b7ddffffffffffffffffffffffff9ec8e8b6daf59ec8e8d7dde59ec8e8e2effaffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff84b7ddb6daf5ffffffffffff
-ffffffd7dde5b6daf5ffffffffffff9ec8e8ffffffb6daf584b7ddffffffffffffffffffd7dde5
-9ec8e8ffffffffffffffffffffffffffffffececef67a3d1b6daf5ffffffffffffd7dde5b6daf5
-ffffffd7dde59ec8e8d7dde5ffffff9ec8e8b6daf5e2effaffffff9ec8e8ffffffffffffececef
-84b7dde2effae2effaffffffffffff84b7dde2effad7dde5d7dde59ec8e8e2effaffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffb6daf59ec8e8ffffffffffff
-d7dde59ec8e89ec8e8ffffffe2effa84b7ddffffffe2effa84b7ddffffffffffffffffffd7dde5
-9ec8e8ffffffffffffffffffffffffffffffffffffe2effa84b7ddb6daf5ffffffd7dde5b6daf5
-ffffffd7dde59ec8e8e2effaffffffb6daf5d7dde5ffffffffffff9ec8e8ffffffffffffe2effa
-84b7dde2effaffffffffffffffffff9ec8e8e2effad7dde567a3d1d7dde5ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb6daf5e2effae2effa
-9ec8e8ffffff9ec8e8d7dde5d7dde59ec8e8ffffffe2effa9ec8e8ffffffffffffffffffe2effa
-9ec8e8e2effae2effae2effaffffffffffffffffffe2effad7dde5e2effaffffffb6daf5b6daf5
-ffffffd7dde59ec8e8ffffffffffff9ec8e8b6daf5ffffffe2effa9ec8e8e2effae2effab6daf5
-9ec8e8ffffffe2effaffffffffffff9ec8e8e2effad7dde5d7dde59ec8e8e2effaffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffd7dde5ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-c6c8cd969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1
-777f88777f88777f88969aa1777f88969aa1969aa1969aa1969aa1969aa1969aa1969aa1777f88
-777f88777f88969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1
-969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1adb4bc969aa1
-969aa1969aa1969aa1777f88777f88969aa1adb4bc969aa1969aa1adb4bcadb4bcadb4bcadb4bc
-adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-e2effad7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5
-c6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdd7dde5d7dde5c6c8cdc6c8cdd7dde5c6c8cd
-adb4bcc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdadb4bcc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdadb4bc
-c6c8cdc6c8cdadb4bcc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdadb4bcadb4bc
-adb4bcadb4bcadb4bc969aa1adb4bcc6c8cdadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bc
-adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffd7dde5e2effaffffffffffffffffff
-ffffffd7dde5e2effae2effae2effab6daf5ffffffffffffffffffffffffb6daf5ffffffffffff
-e2effaffffffffffffffffffe2effaffffffe2effaffffffffffffffffffe2effaffffffe2effa
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff9ec8e8e2effaffffff9ec8e8d7dde5
-ffffffb6daf59ec8e8ffffffe2effa9ec8e8ffffffd7dde59ec8e8ffffff9ec8e89ec8e8ffffff
-e2effaffffffffffffffffff9ec8e8e2effa9ec8e8e2effaffffffb6daf5b6daf5ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff9ec8e8ffffffe2effa9ec8e89ec8e8
-e2effa9ec8e89ec8e8ffffffd7dde5b6daf5ffffffb6daf584b7dde2effae2effad7dde584b7dd
-e2effaffffffffffffffffff9ec8e8e2effaececef9ec8e8b6daf59ec8e8b6daf5ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffb6daf5e2effae2effaffffffb6daf5
-b6daf5e2effab6daf5e2effae2effab6daf5e2effae2effad7dde59ec8e8d7dde5ffffffd7dde5
-b6daf5ececefffffffffffffb6daf5e2effaffffffffffffb6daf5e2effab6daf5e2effae2effa
-ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effaffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102010102010102010102010102
-010102010102010102010102010102010102010102010102010102
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/manual.gif b/Docs/Books/manual.gif
deleted file mode 100644
index fff578e3312..00000000000
Binary files a/Docs/Books/manual.gif and /dev/null differ
diff --git a/Docs/Books/manual.txt b/Docs/Books/manual.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/msql.eps b/Docs/Books/msql.eps
deleted file mode 100644
index 338e152dc48..00000000000
--- a/Docs/Books/msql.eps
+++ /dev/null
@@ -1,1221 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/msql.eps
-%%CreationDate: Sun Dec 31 14:30:35 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 294 383
-%%EndComments
-%%BeginPreview: 100 132 1 132
-% fffffffffffffffffffffffff0
-% 8000000000008492aaaaaaa810
-% 80000000000000000000000010
-% 80002000800000000000000010
-% 80054a912aa4a154a2048a0010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000002000010
-% 8000000000000000003ff00010
-% 800000000000000000781c0010
-% 800000000000000000f1e40010
-% 8000001e000000000567f20010
-% 8000001bc00000003a803d0010
-% 8000003730000000d7fa570010
-% 8000003918000001bfe87f0010
-% 800000738e00000000019e8010
-% 80000063d30000000040430010
-% 80000063dd8000000010260010
-% 80000043eac000000028010010
-% 80000051f6c000000028020010
-% 800000203e6000000050050010
-% 800001080560000000e0018010
-% 80000fe143e0000000d1a74010
-% 80003bf802a0000001d28d8010
-% 80006dfe29f0000001fa3bc010
-% 8000fb6e02b8000001f4efa010
-% 8001d51ba848000003fdbb9010
-% 8003ff4f5034000001ff6fa010
-% 80076afae00e000001fadb3010
-% 800fdfebe80a000001dfb75010
-% 801d7a97b8070000007d7e7010
-% 803fafbff80280000193d0b010
-% 803dbb6b700180000100513010
-% 807f15dfd000c0000150071810
-% 80f75b7fb00020000037fc3010
-% 80fe87ff600000000120801010
-% 81ea60fb000000000080003810
-% 83df17b6000000000080001810
-% 83ddc2fe0000000000a000e810
-% 838dd5f80000000000d0009810
-% 87e3efd00000000000b006f010
-% 87a7ffa00000000000d0048810
-% 87baaf4000000000005113e810
-% 8f6f9e80000000000040421010
-% 8ff83c00000000000002803010
-% 8fa22000000000000041405010
-% 8ed0400000000000000100a010
-% 8f52910000000000007aa26010
-% 9db7d3200000000001f6aac010
-% fb6aadfffffffffffffbfef810
-% fe577e555555555555ad5fa810
-% eabad3eedffeabed5ff776d810
-% de6f615a155552b10a45bdb010
-% fb5ad1ec7b6e69a6e38d6fd810
-% afb774b42edabacbb14bdd6810
-% 9ddad0da6ab46d96d98eb6d810
-% 9db7b4b22186371db08b6db010
-% 9c6d666a636a0d16d8cddb6810
-% bcbbb45532cd032db48b6db810
-% 9e6d6636519bc11b688edb6810
-% bfb7d5243956b116d8cb6db010
-% bb6d672e68bb691db48db6d810
-% f9dbb50a34acd88b698b6db010
-% f0b6d79c6c5969cdb14eab6810
-% f1dda516366cb343678a3ed810
-% f376c2f81a5a26f08a0055b010
-% e2dbbfafeeefddae3dffbb6810
-% 81b6eaf558b56b746b556ed810
-% 836dbf5ef5ddbdae1dbbb5b010
-% 81db6aeba16b6b7580eeded810
-% 82b6ddbd73bdb6deebb5b5b010
-% 81edb76baed6d5b5ad6edb6810
-% 82bb6ddd757594da0781b6d810
-% 81d6db6bdfaf34b1f0e2db6810
-% 837db6deb5752ea35ca76db810
-% 81ab6db5d6deb566e862db6810
-% 82f6d76e21830fc5b64776d810
-% 81ada9b82862854edc22dbb010
-% 837b596e5cd38185b6276d6810
-% 81aecbda68b2f04eda22dbb810
-% 82f5a4363cd35845b6276ed010
-% 81af46ed54b2ee46da62db7810
-% 8375315a38ea5a45b4576da810
-% 81ae69ee6cb16c636ce2cb7010
-% 82fb345a34d336b1b1459ed810
-% 81ad846c2860896c43a115b010
-% 82db5db5db5dabb61eaaaee810
-% 81b6f76f6deb76db95df75b810
-% 836dadb5b6b6ddb68eb5aed010
-% 81b6dadedb6db6db415adb7810
-% 82db776b6ddb6b6df0b776d010
-% 81248894922555551755555810
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 81528900000000000000000010
-% 824a4200000000000000000010
-% 8014a800004000000040000010
-% 80810000000921204a04089010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-279.169649 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 132 8
-% Transformation matrix
-[ 100 0 0 132 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-000000fffffffffffffffffffffefffffffffdcdf5fcadeefcb4effcb4effcadeefcb4effcb4ef
-fcadeefcadeefcadeefca2eef69fe9fcadeefca2eef69fe9f69fe9fca2eeef9fe2f69fe9fca2ee
-fca2eefca2eeef9fe2f69fe9fca2eefca2eefca2eefca2eefb99e9fb99e9fca2eefc98eafc98ea
-fc98eafb8de7fb8de7fb8de7fb8de7fc82e6fc82e6fc82e6fb73e3f96fe0f86ee0f965e1fb73e3
-fb73e3f86ee0fb73e3f965e1f965e1f86ee0f86ee0f965e1f861ddf861ddf861ddf456daf456da
-f456daf456daf456daf456daf456daf456daf34ad5f34ad5f34ad5f34ad5f34ad5f34ad5f34ad5
-f34ad5f34ad5f34ad5f34ad5f34ad5f34ad5f34ad5f34ad5f34ad5f34ad5f740d6f34ad5f64ad9
-f64ad9f735d3fb99e9fffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffefffffefffffefffffdfefffffff4f4f4f2f2f3
-fffffffffffffdfdfefeffffffffffeeeeeefdfefefffffffffefefffffffffefffefefeffffff
-f2f2f3f1f0f0fffffffffffffdfcfdf7f7f7fafafbfcf3fafffffffffffff1f0f0fefefeffffff
-fffffffffefffffdfefffefffffefffffcfefcf3fafcf3fafdfdfefffffffffbfffffefff2f2f3
-fcf3fafcf3faf2f2f3fffefffffefffffbfefffbfefffcfefffcfefffcfefcf3fafefefefffbff
-fff9fefff9fefff5fefcf3fafff5fefcf3fafcf3fafcf3fafdecf9fdecf9fdecf9fdecf9fdecf9
-fdecf9fdecf9fff5fefdecf9fcf3fafff5fefcf3fafcf3fafff5fefff5fefff9fefff5fefff5fe
-fff5fefcf3fafff9feffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffc5c6c7d2d2d4
-cfd0d1dfdedec5c6c7e1e1e2d3d5d5b1b1b4dadadbdfdeded3d5d5e1e1e2d3d5d5d3d5d5ffffff
-bcbcbdd2d2d4e3e4e5d2d2d4fafafbb8babcbcbcbdc5c6c7eaeaeae3e4e5bcbcbde1e1e2cccdce
-dfdededfdedecac9cbdadadbeaeaeaeeeeeeb8babcd3d5d5dadadbe1e1e2e1e1e2eaeaeac3c3c4
-eaeaeacfd0d1dfdedecccdcedadadbe1e1e2eaeaeadfdededfdedee3e4e5dadadbdadadbeaeaea
-e6e5e6d2d2d4cfd0d1e1e1e2eeeeeedfdedee1e1e2e6e8e8fffdfecac9cbdfdedefffeffb8babc
-b7b7b8d3d5d5e3e4e5b7b7b8eaeaeaeeeeeec5c6c7dadadbd2d2d4eeeeeee3e4e5f4f4f4ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff1f0f0c7c9c9d6d7d8
-a5a4a7b1b1b4b1b1b4b4b4b8afaeb0c5c6c7a5a4a7acadaeb1b1b4a8a8abbfbec1b7b7b8f1f0f0
-b7b7b8cac9cbafaeb0d6d7d8f4f4f4b4b4b8a5a4a7c5c6c7afaeb0a8a8aba2a1a4bfbec1b8babc
-b1b1b4a5a4a7acadaeafaeb0d2d2d4d3d5d5bcbcbdb8babcc5c6c7afaeb0b1b1b4a5a4a7bcbcbd
-eeeeeecccdcecccdcea5a4a7bfbec1a8a8aba8a8abacadaeacadaeacadaebcbcbdb7b7b8acadae
-a2a1a4acadaeacadaeb7b7b8b8babca2a1a4a8a8abc3c3c4dfdedebcbcbdd3d5d5ffffffa5a4a7
-a5a4a7c3c3c4b1b1b4a5a4a7cac9cbeeeeeeacadaeb1b1b4a5a4a7b1b1b4acadaedfdedeffffff
-fefefefffeffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafbf5f6f5f9f8f9
-f7f7f7f7f7f7f9f8f9f5f6f5fafafbfafafbf5f6f5f4f4f4f7f7f7f7f7f7f5f6f5fcfcfcd3d5d5
-eaeaeafafafbf5f6f5fffffff5f6f5f7f7f7f5f6f5f7f7f7f4f4f4f2f2f3f4f4f4f5f6f5fafafb
-f2f2f3f2f2f3f5f6f5f2f2f3fffffff5f6f5f4f4f4f2f2f3eaeaeaeeeeeef2f2f3eaeaeaf2f2f3
-fffffff2f2f3eeeeeef7f7f7d2d2d4cccdceeaeaeaf1f0f0f1f0f0eeeeeeeeeeeee3e4e5e6e5e6
-eaeaeaeeeeeef1f0f0eeeeeef1f0f0f1f0f0e6e5e6f2f2f3fafafbeaeaeafafafbfffffff1f0f0
-f2f2f3eeeeeeeeeeeeeeeeeefafafbf1f0f0eeeeeee6e5e6eaeaeaeaeaeaeeeeeef7f7f7ffffff
-fffffeffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
-fffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffdfdfd
-fefefefffffffefefefefefefffffffffffffffffffffffffefefefffffffffffffffffffefefe
-fffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffefefefefefefefefefffffffffffffffffffefefeffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffefffffffefeffffffffffffffffffffffffffffffffffffffffffffffff
-fffffeffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffefeffffffffffffff
-fefefefffffffffffffffffffffffffffffffffffffefefefefffffefefefefefffefefeffffff
-fefefefefefefffffffefefefffffffefefefefefefffffffefefefefefefefefefefefefefefe
-fffffffffefefefefefefefffffffffffffffefefefefefefefefffefefefefefefefefefefefe
-fefefefefefefefefefefefefefefefefefefefefefefefefffffffefefefffffffffffffefefe
-fefefefefefefefefefefefefffffffefefefefefefefefefefefefefefefefefeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffefffffeffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfdfdfcfcfc
-fcfcfcfcfcfcfcfcfcfcfcfcfefefdffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffffffffff
-fffffffffffffffffffffffffffffffefefefcfcfcffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffefefefffffffafafbd3d5d5b8babca5a4a7
-a5a4a7acadaea8a8abb7b7b8e6e5e6fdfdfdfffffffdfdfdfefefeffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffefefefdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffefefcfcfcffffffdadadb595a5f35363b2b2b31181a1f
-2e2f3342444c3c3e4114151900020625272da5a4a7fffffffdfdfdfefefeffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfefefcfcfcfefefeffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffefefefdfdfdfdfdfdfefefdffffffe1e1e235363b07080b0f10141f212678787c
-d2d2d4cccdcea2a1a4cac9cbcccdce595a5f07080b58585dfcfcfcfffffffefefeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-f5f6f5dfdeded3d5d5e6e5e6fffffffffffffffffffdfdfdfcfcfcffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
-fdfdfdfefefefffffffffffffffffff7f7f7d3d5d582818425272d0000000f1014b7b7b8ffffff
-b1b1b46a6a6d4243472f3137898a8cd3d5d5d3d5d554565c797d7dfffffffefefeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
-d3d5d56a6a6d42434735363b6d6e72a8a8abe6e5e6fffffffffffffdfdfdfdfdfdffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
-ffffffffffffeaeaeac3c3c496959878787c6a6a6d5c5d615c5d61353a3bc5c6c7ffffff898a8c
-25272d57545a353a3b49474d000000515256a5a4a7fefefd797d7db1b1b4fffffffdfcfdffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefffffff7f7f7
-a8a8ab5152565152564243470f101449494f5152564c4d52afaeb0fffffffffffffdfdfdffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff5f6f5
-bcbcbd8585896a6a6d6262666a6a6d797d7d7d7e82717275807e8399999ee1e1e2eeeeeed6d7d8
-acadae969598828184797d7d46464c3334391f2126424347a8a8ab595a5ff4f4f4fffffffefefe
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffe3e4e5
-54565c2e2f335d5f658c8c90353a3b393b40c3c3c4898a8c0f101449494fd2d2d4fffffffcfcfc
-fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3c3c478787c
-595a5f58565b5c5d61595a5f58565b46464c49494f46464c46464c49494f49474d515256828184
-a5a4a7d3d5d5cac9cb78787c7273796a6a6d5c5d610f101425272d46464cacadaefffffffdfdfd
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffacadae
-1c1c222323285d5f65bfbec18281841415197d7e82ffffffc3c3c40002060f10149d9ea0ffffff
-fefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffcac9cb4c4d524c4d52
-4c4d5246464c42444c353a3b2f31372e2f332f313735363b2f31372b2b315152567d7e829d9ea0
-c5c6c7c7c9c9cac9cba5a4a76a6a6d515256353a3b0f1014000206424347898a8cf5f6f5ffffff
-fefefeffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffff717275
-00000035363b9d9ea0cac9cb58585d353a3b35363bafaeb0e1e1e2c3c3c4828184393b406d6e72
-f2f2f3fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f6f5eeeeeedfdede
-d2d2d4d3d5d5dadadbe1e1e2d6d7d8d6d7d8b8babc7d7e82909194b7b7b8dfdedefafafbeeeeee
-bcbcbd99999e797d7db7b7b8b7b7b854565c1c1c22232328424347595a5fa8a8abfafafbffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff7f7f75c5d61
-141519727379fafafbc5c6c754565c4c4d52141519373940afaeb099999ebfbec1bcbcbd3e3f45
-46464ce1e1e2fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffafafb99999e898a8ce3e4e5e6e5e6e1e1e2
-c3c3c4afaeb0969598717275909194afaeb0a2a1a496959878787c595a5fdfdedefffffffefefe
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffeeeeee49494f
-35363bb1b1b4ffffffc7c9c951525642444c1f21261415197d7e8267656a2f31376262669d9ea0
-2f31374c4d52f1f0f0fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfefdfdfdfdfdfdfdfdfdfefefeffffffa8a8ab858589cccdceeeeeee
-fdfcfdffffffeeeeeec3c3c499999ea5a4a7cac9cb9d9ea0515256717275eeeeeefffffffefefe
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff5f6f5595a5f
-54565ccccdcef2f2f3eaeaea6262662b2b3123232800020665656a8c8c9057545a4c4d526a6a6d
-b1b1b407080b63696bfffffffefefdffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffcfcfcffffff898a8c727379898a8cb7b7b8
-eeeeeefafafbeeeeeeeeeeeed3d5d5d2d2d4d2d2d4a8a8ab807e8399999ef5f6f5fffffffffeff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfffffff1f0f05c5d61
-7d7e82c3c3c4e6e5e6ffffffc7c9c954565c2e2f330f10140f10146262665c5d610f10143e3f45
-f1f0f0353a3b000000c5c6c7fffffffcfcfcffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffdfdfdffffffa5a4a7515256807e83a09ea2909194
-bcbcbdf9f8f9fffffffefefefffffffefefefafafbdadadb858589909194fafafbffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffefefefcfcfcfffffffefefeffffffdfdede858589
-9d9ea09d9ea0c3c3c4e6e5e6f1f0f0dfdedeb1b1b49d9ea046464c00020600020625272d5c5d61
-f4f4f4afaeb00000007d7e82fffffffcfcfcffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffdfdfdffffffbcbcbd57545a8281847d7e8299999ecac9cb
-d3d5d5f9f8f9fffffffeffffffffffffffffcfd0d1969598a8a8ab727379909194fffffffdfdfd
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffefefefcfdfdfffffffffffff7f7f7bfc1c26d6e72828184c5c6c7
-c5c6c7bfbec1afaeb0a5a4a7b7b7b8bfbec1c3c3c4c3c3c4e6e5e6d2d2d4b8babc8c8c90828184
-6d6e72a2a1a42323285d5f65fffffffdfdfdffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffefefefffffff4f4f4353a3b71727567656a898a8cd2d2d4e6e5e6
-f2f2f3e3e4e5f4f4f4dadadbe1e1e2e1e1e2c3c3c4c3c3c4acadae717275626266c5c6c7ffffff
-fdfdfdffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffefefefdfdfdffffffeaeaea8c8c904c4d52141519000000000206181a1f
-42444c99999ec3c3c4dfdedecac9cbb7b7b8b8babc99999ea5a4a7cfd0d1eeeeeecac9cb4c4d52
-42444c2b2b314c4d5249494feaeaeafffffffefefeffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffcfcfcffffff9091940002065c5d616262662f3137d3d5d5d6d7d8
-c5c6c790919478787c828184909194dadadbd2d2d462626667656a46464c78787c6d6e72f1f0f0
-fffffffefefeffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffcfcfcfffffff1f0f0898a8c393b402e2f3346464c3e3f4525272d0f101407080b
-0f10140f101442444ccccdceffffffffffffdadadbcac9cbe1e1e2e6e5e6dadadbd2d2d4828184
-54565c5d5f6547484d35363b828184fffffffdfdfdffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffeffffffffff4243470000001e1e2278787c797d7d969598e6e5e6
-bfbec1a09ea26d6e72898a8cd2d2d4cccdce67656a62646b6d6e7249474d424347797d7dc3c3c4
-fffffffdfdfdffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffcfcfcffffffe3e4e54c4d521e1e2242444c65656a62646b63696b54565c25272d0f1014
-2323282f31370f101425272d858589eaeaeaf2f2f3b1b1b4a8a8abb4b4b8bcbcbdbcbcbdc5c6c7
-7d7e825c5d615c5d61353a3b25272dbfc1c2fffffffcfcfcffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffdfdfdffffffe1e1e2181a1f0002061e1e2235363b49494f65656a858589
-828184696b71bcbcbdc3c3c471727546464c4c4d525d5f653c3e414c4d522323286a6a6d969598
-eeeeeefffffffefeffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fcfcfcffffffc5c6c7393b4023232847484d35363b595a5f54565c6d6e72515256595a5f626266
-353a3b54565c3e3f450f10142e2f33727379d3d5d5f7f7f7c3c3c49d9ea09d9ea0afaeb0969598
-898a8c65656a54565c6d6e72353a3b47484deeeeeefffffffefefeffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffcfcfcffffffbcbcbd07080b141519181a1f2b2b313334395c5d61a5a4a7
-cac9cbc3c3c490919454565c5152565c5d614c4d5258585d49494f3334391f2126717275828184
-bcbcbdfffffffdfdfdffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfdfd
-ffffffb8babc2f31371e1e2254565c5d5f6547484d54565c54565c797d7d696b717d7e82b1b1b4
-acadae5d5f6565656a54565c393b4042444c6d6e72898a8cacadaeb7b7b8c3c3c4fffffff2f2f3
-d6d7d8acadae6a6a6d5c5d617d7e822b2b31727379fffffffefefeffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffcfcfcffffff9091940f10141f21260f1014181a1f1c1c221c1c2242444c
-6d6e7267656a57545a4c4d5258575d65656a51525657545a46464c25272d1c1c22a2a1a4acadae
-99999efffffffdfdfdffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
-a5a4a74243472e2f3347484d42444c25272d5c5d614c4d5262646b51525654565c7172758c8c90
-e1e1e2a2a1a465656a3739403334393e3f4551525647484d9695987d7e82a2a1a4fcfdfdffffff
-fefefefffffff1f0f0898a8c67656a7d7e8225272db1b1b4fffffffcfcfcffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffcfcfcffffff8585891415192323282e2f332b2b311f212625272d393b40
-4c4d5249494f595a5f595a5f595a5f5c5d614c4d5246464c2b2b312323283c3e41cccdcea09ea2
-969598f9f8f9ffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffb1b1b4
-33343946464c42444c5c5d61515256353a3b49494f5c5d6165656a35363b4c4d52515256333439
-3e3f452e2f33393b405d5f6562626662626642434746464c65656aa8a8ab909194f1f0f0ffffff
-fcfcfcfdfdfdfffffff7f7f772737963696b65656a3c3e41e3e4e5fffffffefefeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffdfdfdffffffa2a1a41e1e2223232842444c2f31371415192b2b313e3f45
-49474d57545a6262665c5d61595a5f57545a54565c3e3f452b2b311c1c22828184eaeaea626266
-515256f2f2f3fffffffefefeffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffbcbcbd393b40
-5152562323284c4d5235363b51525646464c35363b4c4d524c4d525d5f654243473c3e4135363b
-46464c65656a7273796a6a6d696b7149494f4c4d5247484d23232872737967656ae6e5e6ffffff
-fefefefffffffdfdfdffffffeaeaea5d5f6567656a47484d6d6e72fffffffdfdfdffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffdfdfdffffffcccdce7d7e822b2b312b2b3142444c35363b35363b3e3f45
-4c4d5254565c57545a5c5d6154565c4c4d5251525633343914151942444cbfbec178787c6d6e72
-49474dc3c3c4fffffffcfdfdffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffefefeffffffe6e8e835363b2b2b31
-3739404c4d5235363b5c5d613c3e416a6a6d62646b3e3f455c5d614c4d52515256515256727379
-7d7e827d7e8265656a4c4d5251525635363b2f31373c3e412f31373e3f45393b40dadadbffffff
-fdfdfdfffffffffffffdfdfdffffffe1e1e25c5d61626266393b40a5a4a7fffffffcfcfcffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffdfdfdffffffcac9cb9695989091944243472b2b31353a3b3e3f4535363b
-42444c49474d58585d57545a46464c46464c3e3f4546464c2f3137dadadbacadae25272d5c5d61
-46464c898a8cfffffffafafbffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffefffffffffafafb65656a33343946464c
-2b2b3146464c4c4d5247484d62646b6d6e723c3e4142444c4c4d5233343949494f5c5d61898a8c
-8c8c9062626642434754565c393b400f10143e3f4549494f181a1f1c1c2247484deeeeeeffffff
-fefefefffffffffffffffffffcfdfdffffffdadadb595a5f4c4d524c4d52e1e1e2fffffffefefe
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffdfdfeffffffcfd0d15c5d61a09ea2f2f2f3797d7d7d7e82dfdede8c8c90
-46464c36343e3e3f4546464c57545a3e3f45595a5fdadadbd6d7d8cccdce7172756d6e7257545a
-49494f7d7e82fffffffcfcfcffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffcfdfdffffff9091942323282f313736343e
-3334394c4d52393b401c1c2299999e696b713e3f4542434742444c42434749494f58585d696b71
-5d5f6546464c6d6e724c4d522f313746464c47484d25272d1f212600000054565cfffffffefefe
-fffffffffffffffffffffffffffffffdfdfdffffffe1e1e254565c393b408c8c90fffffffdfdfd
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffdfdfdffffffd2d2d462646b6d6e72c5c6c7fefffff9f8f9fefefdfafafb
-afaeb0969598969598828184a8a8ab898a8cd3d5d5f5f6f5a09ea24243477d7e82dadadb717275
-2e2f33717275fffffffefefeffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffdfdfdffffffc3c3c4181a1f3c3e412b2b31353a3b
-36343e14151947484d5d5f65d6d7d899999e78787c54565c5d5f6582818442434742444c49494f
-54565c3e3f452f31372f31370f10141e1e221f21262f3137595a5f0f1014b4b4b8fffffffcfdfd
-fffffffffffffffffffffffffffffffffffffcfdfdffffffe3e4e55d5f6542444cd3d5d5ffffff
-fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffefefeffffffe3e4e57172757273796a6a6da09ea2a8a8ab909194b1b1b4
-e6e5e6e3e4e5d3d5d5b7b7b89d9ea0a09ea2bfbec16262665152566d6e72afaeb0e1e1e2b1b1b4
-353a3b7d7e82fffffffdfdfdffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffefefefffffffafafb4c4d521f21263e3f4542444c333439
-393b40393b4047484d78787cb8babc99999e72737962646b8585897d7e82424347595a5f353a3b
-07080b2e2f3307080b25272d3e3f4535363b2b2b3154565c4c4d5262646bfffffffffffeffffff
-fffffffffffffffffffffffffffffffffffffffffffdfdfdfffffff7f7f7797d7d6d6e72ffffff
-fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffff9f8f9858589e1e1e2bcbcbd5c5d616a6a6d7172756d6e72
-78787c7d7e82807e8365656a6a6a6d58575d35363b4c4d52c5c6c7fffffffcfcfce6e5e6acadae
-3e3f45797d7dfffffffdfdfdffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffdfdfdffffff9d9ea02323282b2b31181a1f2f313742444c
-3e3f453e3f45858589898a8c5d5f65e3e4e5eaeaead2d2d482818436343e3334392f31372f3137
-353a3b4c4d52393b4035363b2f31371f212654565c99999e353a3be6e8e8fffffffefefeffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffb1b1b4e1e1e2
-fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfdfdffffff909194bcbcbdffffff8585897d7e82a2a1a4dfdede
-cccdce9d9ea067656a5d5f65b8babcd3d5d5b1b1b4dfdedefefffff4f4f4fcf3faffffffacadae
-2f3137797d7dfffffffefefeffffffffffffffffffffffff000000
-000000fffffffffffffffffffefefeffffffe3e4e53334392b2b3125272d3e3f455d5f6554565c
-54565c4c4d52696b71b4b4b8858589858589a5a4a7c5c6c7cac9cba5a4a77172753e3f45515256
-2e2f330f1014353a3b3e3f452f31371c1c22a8a8abc7c9c9bfbec1fffffffdfdfdffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfffffffefefe
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfdfdffffff9091948c8c90fffffff9f8f9f9f8f9fcfcfcffffff
-fffffffafafbcccdced2d2d4f9f8f9fffffffffffffffffffefefefdfdfdfcfdfdffffff969598
-25272d717275fffffffefefeffffffffffffffffffffffff000000
-000000fffffffffffffffffffcfcfcffffff7273791f212625272d1415195152568585890f1014
-42444c25272d62646bb8babcf4f4f4bcbcbd5d5f65a2a1a46d6e7285858971727554565c46464c
-46464c393b403e3f451f212625272d78787ceaeaeaeeeeeefffffffefefeffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfdfdffffffa2a1a46d6e72dfdedebfbec1f1f0f0fffffffdfdfd
-fdfdfdfefefefffffffffffffcfcfcfcfcfcfdfcfdfafafbfdfdfdfffffffdfdfde1e1e2a5a4a7
-46464c353a3bfffffffefefeffffffffffffffffffffffff000000
-000000fffffffffffffdfdfdffffffdfdede1f21261f21261f212647484dbcbcbd898a8c000206
-3e3f457273796a6a6d1f21265c5d61afaeb0d6d7d8eaeaeab4b4b863696b5c5d61595a5f353a3b
-07080b232328141519141519696b71e6e5e6f4f4f4fefefefdfdfeffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfdfdffffffb7b7b878787c6a6a6d54565cdfdedefffffffefefe
-fffffffefefefdfdfdfffffff4f4f4f4f4f4fffffffdfdfdffffffdadadb6a6a6d49494f717275
-6a6a6d424347f9f8f9fffffffefefeffffffffffffffffff000000
-000000fffffffffffffcfcfcffffff8c8c900f10141e1e221c1c22969598dadadb8281841c1c22
-42444c62646b14151936343e3e3f45696b719d9ea08c8c906d6e7296959849494f0f1014181a1f
-2b2b31353a3b49494f858589cfd0d1f2f2f3fffffffefefeffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfdfdffffffc5c6c75c5d616d6e72727379969598eaeaeaffffff
-fdfdfdfffffffdfdfdffffffd3d5d5d6d7d8fffefea8a8abb7b7b8d3d5d54243476d6e72807e83
-5c5d61424347f7f7f7fffffffefefeffffffffffffffffff000000
-000000fffffffffffffeffffffffff47484d0f10141e1e223334395152565d5f65b4b4b8cac9cb
-dadadb5c5d6114151925272d35363b4c4d5267656a46464c62646b1f2126141519353a3b47484d
-46464c6a6a6dc7c9c9e1e1e2eeeeeefffffffefefeffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffdfdfdffffffdadadb54565c7172754c4d526a6a6deeeeeefafafb
-e3e4e5f9f8f9fafafbf2f2f3bfbec1d6d7d8e6e5e614151954565ce6e8e865656a57545a6d6e72
-3c3e41626266f4f4f4fffffffefefeffffffffffffffffff000000
-000000fffffffdfdfdffffffdfdede2f313725272d42444c2e2f3347484d696b716d6e72e6e5e6
-96959846464c353a3b2f31372e2f3335363b47484d4c4d521f21260f10141c1c22353a3b424347
-7d7e82cac9cbe3e4e5f7f7f7fffffffefefeffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffefefeffffffeaeaea6262666262668c8c90727379898a8cffffff
-cccdceb7b7b8e6e8e8f2f2f3b8babcdadadbfcfcfc898a8ca5a4a7a09ea272737965656a898a8c
-909194828184f9f8f9ffffffffffffffffffffffffffffff000000
-000000fffffffcfcfcffffffafaeb00002060f10143334393e3f4562646b696b7154565c6d6e72
-54565c62646b6a6a6d54565c353a3b5c5d6162626625272d0f10141e1e2225272d4c4d527d7e82
-b4b4b8dadadbfcfdfdfffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffefefefffffff2f2f385858946464cc5c6c7595a5f909194fffeff
-c3c3c4a2a1a4dadadbf2f2f3bcbcbdd2d2d4f1f0f0e3e4e56262663c3e4154565c35363b797d7d
-9091948c8c90fffffffdfdfeffffffffffffffffffffffff000000
-000000fffffffcfcfcffffff8585891c1c2225272d3e3f4551525665656a54565c5c5d614c4d52
-5d5f655c5d614c4d5254565c858589c3c3c44243470f10141e1e222e2f336d6e72a5a4a7b8babc
-eeeeeefffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffb1b1b46d6e72f2f2f3f7f7f7f7f7f7e1e1e2
-bcbcbdb7b7b8b7b7b8a8a8abb1b1b4f1f0f0f1f0f0f1f0f06a6a6d47484dbcbcbd909194969598
-717275b1b1b4fffffffdfdfdffffffffffffffffffffffff000000
-000000fdfdfdfffffff5f6f542444c0f101425272d232328353a3b33343946464c54565c54565c
-5c5d616d6e729d9ea0c5c6c7eaeaea595a5f0002062b2b3154565cd6d7d8eeeeeebfbec1e3e4e5
-fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffefefeffffffb1b1b4cac9cbf2f2f3fffffff5f6f5d3d5d5
-a8a8aba5a4a78c8c90898a8cb1b1b4eaeaeaeeeeeee3e4e5f7f7f7e1e1e2f4f4f4d6d7d8a39fa4
-58585dc5c6c7fffffffdfdfdffffffffffffffffffffffff000000
-000000fafafbffffffbfbec11415191f21262f31371f21263334394c4d525c5d615d5f65797d7d
-b1b1b4cfd0d1eeeeeee6e5e6cac9cb797d7d7d7e82b4b4b8d6d7d8ffffffd3d5d5d2d2d4ffffff
-fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffefefeffffffcccdcea8a8abe3e4e5f4f4f4f2f2f3f9f8f9
-b1b1b4858589898a8c8c8c90e1e1e2eeeeeedfdedefcfcfcfcfcfcfefefddfdedea5a4a7807e83
-57545ae6e8e8fffffffefefeffffffffffffffffffffffff000000
-000000f9f8f9ffffffb1b1b41c1c221f21262e2f333e3f4554565c62646b696b71717275b4b4b8
-e1e1e2e6e5e6dadadbafaeb0afaeb0c5c6c7a5a4a7dfdedef9f8f9fefefdc3c3c4eaeaeaffffff
-fefbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfe
-fffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfe
-fffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfefffbfe
-fffbfefffbfefffbfefffbfefffbfefffbfefffefffcfcfca8a8aba39fa4c5c6c7cac9cbe6e5e6
-b1b1b4858589807e839d9ea0dadadbe6e8e8cccdcee6e5e6eeeeeec5c6c7a8a8ab90919457545a
-797d7dfffffffdfcfdffffffffffffffffffffffffffffff000000
-000000f9f8f9ffffffbfbec12323283e3f4542444c54565c63696b6d6e72727379727379b8babc
-cfd0d1a8a8ab797d7d727379969598afaeb09d9ea0d2d2d4f4f4f4dadadb78787cf1f0f0ffffff
-fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff99999e1f21261f2126515256717275909194
-969598898a8c85858999999ea39fa4bfbec1c5c6c7cccdcec3c3c4b7b7b8898a8c85858949494f
-b8babcfffffffcfdfdffffffffffffffffffffffffffffff000000
-000000ffffffbfbec125272d1e1e2246464c54565c62646b65656a67656a5d5f65696b71969598
-6d6e7271476fa02d907c597b696b7178787c909194a5a4a7bfbec1afaeb0353a3ba37c9ffc82e6
-f678dff881e2f881e2f881e2f881e2f881e2f881e2f881e2f881e2f881e2f881e2fc82e6fc82e6
-fa86e6fa86e6fb8de7fb8de7fb8de7fb8de7fb8de7fb8de7fb8de7fb8de7fb8de7fb8de7fb8de7
-fb8de7fb8de7fb8de7fb8de7fb8de7fc98eafc98eafc98eafc98eafc98eafc9deafc9deafc9dea
-fc9deafc9deafca2eefca2eef69fe9fcadee8c798d07080b1e1e224f274c25272d924789924789
-8c5f887c597b8c798d858589797d7d9091949d9ea0969598969598a39fa47d7e8251525649494f
-ef9fe2fcb4effee3fafffffffffeffffffffffffffffffff000000
-00000046464c33343949494f54565c5152565d5f655d5f655d5f6562646b62646b807e83797d7d
-7c597be204bbfc00cffc00cfd30ab071476f797d7d8c8c907d7e824c4d525d5f6571476fec00bf
-f101c4f000c3f000c3f100c4f200c3f200c3f200c3f300c4f300c5f300c4f400c3f200c2f400c3
-f400c4f400c3f300c4f400c4f400c4f400c4f500c5f400c5f400c5f500c5f500c5f500c6f600c6
-f600c5f500c5f400c3f600c4f600c4f600c5f600c5f600c5f600c5f600c5f600c5f500c5f600c4
-f600c4f600c4f500c1f400c3f400c5f700c72f0e2f4f274c7c28725e2357951082fc00cffc00cf
-f501c7ed00c2ec00c1c514a87c28724f274c353a3b58575d595a5f626266353a3b353a3b862f7c
-fc00cff000c0fb99e9fffffffffbfeffffffffffffffffff000000
-0000002b2b312f313735363b393b404c4d5254565c6d6e729d9ea0858589727379797d7d8c5f88
-f700c9f700c9ee00c4ee00c4f703c9e204bb9510824c4d522f313747484d9091948c8c90e204bb
-f503c9f104c7f203c7f503c8f507c8f203c7f400c6f400c7f400c7f503c8f503c7f503c7f503c7
-f503c8f503c8f503c8f503c8f503c9f503c8f503c8f503c8f703c9f507c8f500c6f500c5f600c5
-f600c5f501c7f603c8f603c8f603c8f703c9f703c9f703c9f809cbf603c8f700c7f600c4f600c5
-f600c5f700c9f507c8f503c7fc00cfe204bb401b3c4b354cb10b984f274cb10b98fc00cff101c4
-f502c6f601c7f700c9fc00cffc00cfa00e89333439401b3c2f0e2f5e2357a02d90a02d90e204bb
-fc00cff200c2fb99e9fffffffffbfeffffffffffffffffff000000
-000000373940393b4042444c4c4d5254565c4c4d52909194b7b7b8807e8362646b924789ec03c2
-f503c9ee00c4f503c8ee00c4fc00cfc514a8696b71807e83727379353a3b47484d515256c514a8
-fc00cff000c5f600c8f600c8f300c7f609caf712cdf724d0f625d0f400c6f400c6f400c6f400c7
-f500c7f500c7f400c7f500c7f500c7f500c7f500c7f600c8f600c8f500c5f332d0f949d9f955db
-f949d9f712cdf600c7f600c8f600c8f600c7f703c9fc00cff600c5fc00cff735d3f949d9f955db
-f940d6f712cdf500c1f502c4f503c7f700c7c300a27f146f57124f57124fb10b98f712cdf507c8
-f400c6f400c6f400c6f003c5fc00cf7c28727c287257124fb10b985e2357fc00cffc00cffc00cf
-f206c7f400c4fb99e9fffffffffbfeffffffffffffffffff000000
-0000006a6a6d47484d4c4d524c4d524c4d5254565ca5a4a7b7b7b863696b862f7cf703c9f503c9
-ee00c4f503c8ee00c4f000c7f700c971476fd76cc6fdc0f2f7f7f7a59aa67c597b5c5d61a02d90
-fc00cff000c5f201c7f201c7f503c9fdcdf5fffffffcb4eff861ddf203c7f400c6f400c6f400c7
-f400c6f400c6f400c7f500c7f500c7f400c7f501c7f500c7f609cafb8de7f96fe0f939d5f735d3
-fa76e3fff5fef949d9f600c5f603c8f703c9f601c7f600c7f86ee0fcb4effc82e6f861ddf861dd
-fc82e6fdc0f2fca2eef61bcef600c4f500c5f712cdd76cc67c597bd0a9ccfcb4effc98eaf949d9
-f400c4f502c6f500c7f300c5fc00cf65195ea00e8971476fb10b984f274ce204bbf601c7f300c4
-f503c8f400c4fb99e9fffffffffbfeffffffffffffffffff000000
-0000005c5d6142444c42444c3e3f4551525625272d5d5f65afaeb07c597be204bbf503c9ee00c4
-f000c7ee00c4f000c7ee00c4fc00cfb10b98d30ab0f955dbfffefffdecf9f61bce9247897c2872
-fc00cff000c5f503c8f300c5f64ad9fedaf8fffffff740d6f200c2f503c8f501c7f501c7f501c7
-f400c6f500c7f400c7f501c7f501c7f501c7f503c8f500c5fcadeefa86e6f500c1f502c5f502c5
-f500c1fc98eafc82e6f600c4f507c8f600c6f712cdfdcdf5fdc0f2f61bcef600c4f600c4f600c5
-f600c5fc00cffb99e9fffbfff949d9f600c6f507c8fc00cff740d6fffffffcadeef600c5f503c7
-f500c6f500c7f600c7f300c5fc00cf951082951082401b3cb10b987f146fd30ab0fc00cff400c5
-f503c8f400c3fb99e9fffffffffbfeffffffffffffffffff000000
-000000797d7d5d5f6546464c37394046464c25272d1c1c2263696bd53abcf503c8ee00c4f000c7
-f000c7f000c7f000c7f000c7f503c8f703c9f000c7f86ee0fb8de7fdfefef96fe0c514a87c2872
-fc00cff201c7f300c7f503c9fa86e6fc82e6fffffff940d6f300c4f503c7f400c6f400c6f400c5
-f400c6f400c7f400c6f400c5f600c8f603c8f500c5f61bcefff9fef939d5f600c5f507c8f603c8
-f600c6f929d3f86ee0f700c7f700c9f809cbfedaf8fdc0f2f700c7f700c7fc00cff703c9fc00cf
-f603c8f603c7f600c4fb8de7fffffff949d9f700c7f500c5f625d0fefffffb99e9f600c5f703c9
-f600c7f600c7f700c7f500c6fc00cfee00c2e204bb7f146fec00bfd30ab0f200c3f600c6f600c6
-f503c8f400c3fb99e9fffffffffbfeffffffffffffffffff000000
-000000ffffffdfdede424347393b4025272d65656a2e2f331f2126df22c2f000c5ee00c4ee00c4
-ee00c4ee00c4f000c7f000c5ee00c4ee00c4f101c4fc82e6f53cd4fdcdf5fedaf8d30ab0a00e89
-fc00cff104c7f400c3f64ad9f56dddf965e1fffffff939d5f503c9f61bcef609caf611cbf61bce
-f609caf500c6f609caf61bcef609caf712cdf703c9f735d3fffffff881e2f500c1f603c8f703c9
-f600c8f603c8f703c9f703c9f600c6fc9deafffffff724d0f700c7f703c9f600c6f700c9f600c7
-f700c9f703c9f700c9f809cbfee3fafee3faf611cbf600c4f929d3fffffffc9deaf700c7f703c9
-f700c7f600c7f600c7f600c7f400c5f600c7fc00cff400c4f500c6f700c9f600c8f500c6f600c6
-f503c7f400c3fb99e9fffffffffbfeffffffffffffffffff000000
-000000ffffffd2d2d4393b4046464c1c1c2290919499999e2e2f33d30ab0f600c8ee00c4ee00c4
-ee00c4ee00c4ee00c4f000c5f000c7f104c7ee00c4fc98eaf61bcef56dddffffffef31cbf003c5
-f503c8f203c7f300c4fc98eaf61bcef86ee0fffffff53cd4f724d0fcadeefcf3fafdcdf5fa76e3
-f323cef500c5f323cef881e2fedaf8fdc0f2f735d3f609cafdecf9fffffffb73e3f703c9f600c4
-f601c7f503c8f603c8f600c6f724d0fffffffdc0f2f700c7f703c9f600c6f600c7f700c7f600c8
-f600c7f600c7f603c7f600c4f881e2fffffff56dddf500c1f929d3fffffffc9deaf600c4f703c9
-f700c7f600c7f600c6f600c7f600c7f500c7f400c5f600c7f500c6f300c5f400c6f500c6f600c6
-f503c7f400c3fb99e9fffffffffbfeffffffffffffffffff000000
-000000ffffffb4b4b842444c4c4d52353a3bb7b7b8d6d7d8a37c9fe204bbee00c4ee00c4ed00c3
-ee00c4ee00c4ee00c4ee00c4f000c5f003c5f000c5fb8de7f61bcef61bcefffffffca2eef200c2
-f206c7f100c4f332d0fb99e9f200c2f881e2fffffff53cd4f200c2f609cafdecf9fdcdf5f400c3
-f601c7f501c7f400c6f400c6fcb4eff323cef502c4f502c5f861ddfffffffffffffdcdf5f96fe0
-f712cdf600c4f507c8f600c4f965e1fffffffc82e6f600c4f703c9f600c7f700c7f600c7f600c6
-f600c7f600c6f603c7f600c5f940d6fffffffcb4eff400c3f929d3fffffffc98eaf600c4f703c9
-f600c7f500c6f600c6f700c7f600c8f500c7f500c6f500c6f500c6f500c7f500c6f500c6f600c6
-f503c7f400c3fb99e9fffffffffbfeffffffffffffffffff000000
-000000ffffff8585893c3e4136343e232328b4b4b8e1e1e2d57fc9ec03c2ec03c2ed00c3ed00c3
-ee00c3ee00c4ee00c4ee00c4ee00c4f000c5f000c7fc9deaf61bceed00c2fcb4effffbfef113c9
-f201c7f200c3fc82e6f34ad5f500c1f881e2fffffff53cd4f400c6f400c5fc82e6fffffff735d3
-f400c5f503c8f400c3f949d9f881e2f600c4f703c9f603c8f500c5f939d5fdc0f2ffffffffffff
-fdecf9f965e1f603c7f600c5fb8de7fffffff56dddf600c4fc00cff601c7f700c7f600c7f600c7
-f600c7f600c6f603c7f600c5f82fd4fffffffedaf8f700c7f625d0fffffffc98eaf600c5f703c9
-f700c9f600c7f600c6f600c7f600c8f600c7f600c7f500c6f600c6f600c7f500c6f500c6f600c7
-f503c8f600c4fb99e9fffffffffbfeffffffffffffffffff000000
-000000f9f8f978787c4c4d5235363b00020642444ccfd0d1d57fc9ec00c1ec03c2ed00c3ed00c3
-ee00c2ee00c4ee00c4ee00c4ee00c4ee00c4f000c7fb99e9f113c9ee00c2f64ad9fffffff56ddd
-f000c0f61bcefc9deaf203c7f300c4fa76e3fffffff939d5f300c4f400c6f724d0fffffffc98ea
-f400c3f507c8f400c5fb8de7f332d0f600c5f501c7f501c7f503c8f500c5f502c6f939d5fcadee
-fffcfefffffffc82e6f500c1fc98eafffffffb73e3f600c4f603c8f600c7f700c7f600c7f600c6
-f600c7f700c7f603c7f600c5f82fd4fffffffedaf8f700c7f625d0fffffffc98eaf600c4f603c7
-f600c7f600c7f600c7f600c6f500c6f500c6f600c6f500c7f500c6f500c6f500c6f500c6f600c6
-f503c8f600c4fc98eafffffffffbfeffffffffffffffffff000000
-000000d6d7d8696b71595a5f1f21261f21260f101463696bdf22c2ee00c2ec00c1ed00c3ed00c2
-ed00c2ed00c3ee00c4ee00c3ee00c3ee00c3f609caf89feaee00c4ee00c4f609cafee3fafdcdf5
-f000c0f56dddf861ddf200c3f300c4f881e2fffffff53cd4f300c4f507c8f300c4fcadeefff5fe
-f611cbf400c3f332d0fb8de7f400c3f503c7f500c6f400c6f500c6f503c7f503c7f400c5f600c5
-f949d9fff9fefff5fef609caf861ddfffffffc9deaf600c5f703c9f600c7f700c7f700c9f600c7
-f500c7f700c7f703c9f600c4f940d6fffffffdc0f2f600c4f929d3fffffffc98eaf600c4f603c7
-f600c6f500c6f600c6f603c7f600c6f500c6f500c6f500c6f500c6f400c5f500c7f500c6f500c5
-f503c7f400c3fb99e9fffffffffbfeffffffffffffffffff000000
-000000a5a4a754565c2e2f331415199695984243471c1c22e204bbf000c5ed00c2ed00c3ed00c2
-ee00c3ed00c3ee00c3ee00c3ee00c3ee00c3f113c9fc98eaee00c3ee00c4ee00c2fb8de7ffffff
-f740d6fc98eaf113c9f201c7f200c3f881e2fffffff939d5f300c4f507c8f300c4f740d6ffffff
-f56dddf500c1f881e2f940d6f400c4f503c8f500c6f609caf609caf500c7f501c7f503c7f507c8
-f400c3f881e2fffffff939d5f61bcefffffffedaf8f609caf700c9f700c9f700c7f700c7f600c7
-f600c7f700c7f703c9f600c4f881e2fffffff86ee0f500c1f929d3fffffffc98eaf600c4f603c7
-f600c6f600c7f601c7f600c5f600c7f500c7f600c7f600c6f500c5f400c5f500c6f400c6f500c6
-f503c7f600c4fb99e9fffffffffbfeffffffffffffffffff000000
-00000063696b36343e0f10142f3137cccdcea8a8ab71476fea00c0ee00c4ed00c3ee00c4ed00c2
-ee00c3ee00c4ed00c3ed00c3ee00c3ee00c2f323cefb99e9ee00c2ec03c2ee00c2f332d0fffcfe
-fee3faf56dddf200c2f507c8f200c3fc82e6fffffff53cd4f300c5f503c8f400c6f400c6fdcdf5
-fdcdf5f611cbfb99e9f503c7f400c7f503c8f400c3f86ee0f955dbf400c3f503c7f400c7f603c8
-f600c7f735d3fffffff940d6f400c3fc9deafffffff861ddf600c5f507c8f700c7f700c7f600c7
-f600c7f603c7f600c6f609cafee3fafee3faf609caf600c4f929d3fffffffc98eaf600c4f703c9
-f600c6f501c7f603c7f82fd4f600c7f500c7f600c7f500c6f500c6f500c6f600c6f500c6f500c6
-f603c7f500c5fc98eafffffffffbfeffffffffffffffffff000000
-0000004c4d5225272d00020654565cd6d7d8cfd0d1d76cc6ee00c2ec03c2ee00c4ee00c3ed00c3
-ee00c4ee00c3ed00c3ee00c4ee00c4ee00c2ef31cbfb8de7ee00c2f003c5f000c5f100c4fdc0f2
-fffdfef61bcef300c5f206c7f200c2f881e2fffffff53cd4f400c5f503c8f503c8f400c3f86ee0
-fffffffca2eef955dbf400c5f503c8f503c8f400c3fa86e6fb8de7f500c1f507c8f603c8f703c9
-f500c1f861ddfee3faf703c9f700c7f609cafdcdf5fdecf9f61bcef600c4f703c9f703c9f703c9
-f703c9f603c7f600c4fb99e9fffffff939d5f603c7f700c7f724d0fffffffc98eaf600c4f507c8
-f603c8f400c3f735d3fc9deaf600c5f703c9f700c9f600c6f600c6f600c7f600c7f600c6f600c6
-f703c9f600c5fc98eafffffffffbfeffffffffffffffffff000000
-00000035363b1f21260f1014a2a1a4e6e8e8c7c9c9d53abcf400c6ee00c4ee00c4ee00c4ee00c4
-ee00c4ee00c4ee00c4ee00c4ee00c4ee00c3f456dafdcdf5f609caec03c2ee00c4ee00c2f678df
-fca2eef000c0f203c7f203c7f300c7fca2eefffffff861ddf300c4f503c7f501c7f400c6f611cb
-fdecf9f9e3f5f603c7f400c6f400c6f503c7f400c3fb73e3fffbfff323cef600c4f502c4f400c4
-f61bcefdc0f2f940d6f502c4f703c9f600c5f609cafdc0f2fee3faf735d3f600c4f600c4f600c5
-f600c4f609cafca2eefff5fef939d5f502c4f703c9f600c4f939d5fffffffdc0f2f700c7f502c5
-f500c5f712cdfdcdf5fa86e6f600c4f703c9f600c7f600c7f600c7f600c6f600c7f600c6f600c6
-f703c9f600c5fc98eafffffffffbfeffffffffffffffffff000000
-00000042444c14151925272dbfbec1cfd0d1d0a9cced00c3ee00c4ee00c4ee00c4ee00c4ed00c3
-ee00c4ee00c3ee00c3ee00c3ec03c2f678dffca2eefcb4eff89feaf456daee00c2ee00c4f609ca
-f61bcef100c4f000c3f740d6fb99e9fcb4effdc0f2fcadeef975e2f507c8f300c5f503c7f400c3
-fca2eefc82e6f200c2f503c7f400c7f501c7f400c6f609cafa86e6fcb4eff86ee0f955dbf861dd
-fa86e6f332d0f600c4f603c8f300c5f300c5f603c7f600c5f955dbfdc0f2fc98eaf861ddf861dd
-fc82e6fcb4effb8de7f611cbf600c5f600c7f712cdfc82e6fcadeefedaf8fedaf8fc9deafa76e3
-fc98eafdcdf5fffffff955dbf600c5f603c8f600c7f500c7f600c6f500c6f600c7f500c7f600c7
-f603c8f600c4fc98eafffffffffbfeffffffffffffffffff000000
-0000001f21261e1e22858589cac9cbcccdcef34ad5ec03c2ee00c4ee00c4ee00c4ee00c4ee00c4
-ee00c4ee00c3ee00c3ee00c3ee00c2ee00c4ee00c2ee00c2ee00c4ee00c4ee00c3ee00c4ee00c4
-ee00c2f100c4f100c4f104c7f206c7f200c3f200c2f400c6f609caf201c7f400c6f503c7f300c4
-fc98eaef31cbf600c4f501c7f500c7f500c6f500c7f400c5f400c3f507c8f323cef929d3f61bce
-f600c5f600c4f503c7f600c7f300c5f500c6f601c7f603c8f600c5f600c5f939d5fffffffff5fe
-f939d5f809cbf500c1f502c5f703c9f600c6f603c8f61bcef609caf700c9f703c9f809cbf712cd
-f61bcef712cdf809cbf703c9f700c9f600c7f600c7f600c7f600c7f600c7f700c7f700c7f700c7
-f603c8f600c5fc98eafffffffffbfeffffffffffffffffff000000
-000000acadaec5c6c7eeeeeef1f0f0fcfdfdf456daed00c2ee00c4ee00c4ee00c4ee00c4ed00c3
-ee00c3ed00c2ed00c3ee00c3ee00c3ee00c3ee00c4ec03c2ee00c3ee00c3ee00c3ee00c3ee00c3
-ee00c3f100c4f100c4f100c4f100c4f101c4f003c5f300c5f400c6f400c6f503c7f400c3f735d3
-fc98eaf400c3f502c6f500c7f500c7f400c6f400c6f501c7f503c8f501c7f600c4f400c4f400c5
-f603c7f503c7f500c6f700c9f300c4f400c6f500c7f600c7f703c9f601c7f603c7fdcdf5ffffff
-f949d9f500c1f206c7f603c7f603c7f603c7f600c6f500c5f600c5f500c7f500c6f601c7f400c4
-f400c4f600c6f600c5f600c7f600c7f600c6f600c7f500c7f600c7f600c7f600c7f600c7f600c7
-f603c8f600c5fc98eafffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffbfefffffff456daed00c2ec03c2ed00c3ed00c3ed00c3ed00c3
-ed00c2ed00c3ed00c3ed00c3ed00c2ed00c2ee00c2ee00c2ee00c2ee00c3ee00c2ee00c3ee00c3
-ee00c3f100c4f000c3f100c4f100c4f100c4f100c4f300c4f400c6f400c6f203c7f400c3fb8de7
-f740d6f200c2f503c7f400c6f400c7f400c5f400c6f400c7f400c6f400c5f400c6f400c6f502c6
-f600c7f500c6f500c6f500c7f300c4f500c7f600c7f600c7f700c9f603c8f600c4f735d3fdecf9
-fffffff86ee0f600c6f500c1f500c1f400c3f507c8f503c7f502c5f601c7f502c6f601c7f502c6
-f400c5f502c6f601c7f500c6f600c7f600c7f500c6f500c7f600c7f600c7f500c7f500c6f600c7
-f603c8f600c5fc98eafffffffffbfeffffffffffffffffff000000
-000000fcfcfcfdfdfdfefefefefbfefffffff456daed00c2ec03c2ed00c3ed00c2ed00c3ed00c2
-ed00c2ed00c2ed00c2ed00c2ed00c2ed00c2ee00c3ed00c2ed00c2ee00c2ee00c2ee00c3ee00c3
-ee00c3f000c3f100c4f100c4f100c4f100c4f100c4f300c5f203c7f200c3fb8de7fffffffcb4ef
-f300c4f502c6f400c6f400c6f400c6f400c6f400c6f400c6f400c6f400c5f400c6f400c6f502c6
-f501c7f501c7f502c6f500c6f300c5f600c7f600c7f600c7f600c8f500c6f603c7f600c5f61bce
-fc9deafff9fefedaf8fc9deaf881e2fb8de7f96fe0f600c5f601c7f500c6f500c5f600c6f500c6
-f500c6f500c6f600c7f600c7f600c7f500c6f500c6f500c7f600c7f500c7f500c6f500c7f700c9
-f503c8f600c5fc9deafffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff456daee00c2ee00c4ee00c4ed00c3ed00c2ed00c2
-ed00c2ed00c2ed00c2ed00c2ee00c2ed00c2ed00c2ee00c2ee00c2ee00c2ee00c2ee00c3ee00c3
-ee00c2f000c3f100c4f100c4f100c4f300c5f300c4f300c5f203c7f300c4f56dddfdcdf5f740d6
-f400c3f503c7f400c6f400c6f500c7f600c7f500c6f400c6f500c7f500c6f502c6f503c7f500c5
-f500c5f400c4f500c6f603c8f300c5f500c7f600c7f600c6f600c7f600c7f603c7f703c9f600c5
-f500c1f609caf939d5f56dddf861ddf735d3f507c8f500c6f601c7f502c6f603c7f703c9f603c7
-f603c8f501c7f600c7f600c7f600c7f600c6f600c6f600c7f600c7f600c7f600c7f600c7f700c9
-f603c8f600c5fca2eefffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff456daed00c2ec03c2ed00c2ed00c2ed00c2ed00c2
-ed00c2ed00c2ec00c1ed00c2ed00c2ec00c1ec00c1ed00c2ed00c2ed00c2ee00c2ee00c3ee00c2
-ee00c3ee00c3f000c3f000c3f000c3f100c4f100c4f300c4f300c5f400c6f400c3f200c2f300c4
-f400c6f400c5f300c5f400c6f400c7f400c5f400c6f400c6f500c6f501c7f502c5f400c3f611cb
-f625d0f323cef609caf600c4f200c3f500c7f600c7f600c7f603c7f603c8f400c3f600c4f609ca
-f625d0f61bcef502c6f500c1f500c1f600c4f500c6f500c6f500c5f600c4f400c3f400c3f400c3
-f400c3f400c5f500c6f500c6f500c6f500c6f500c7f400c5f500c6f500c7f500c6f500c5f600c6
-f503c7f500c5fca2eefffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff456daed00c2ee00c4ed00c3ed00c2ec00c1ec00c1
-ec00c1ec00c1ec00c1ec00c1ec00c1ec00c1ec00c1ed00c2ed00c2ed00c2ed00c2ee00c3ee00c3
-ee00c2ee00c3f000c3f000c3f100c4f100c4f100c4f300c5f300c5f400c6f203c7f203c7f502c6
-f400c6f400c6f400c6f400c6f400c6f400c6f400c6f400c6f600c8f400c6f206c7fa76e3fb73e3
-f955dbf861ddfcb4effca2eef609caf500c7f601c7f503c7f502c5f400c4f949d9fc98eafc98ea
-fc82e6fa86e6fca2eefca2eef939d5f400c3f503c7f500c5f332d0fb8de7fb8de7fa86e6fb8de7
-fa86e6f724d0f600c4f502c6f500c7f500c6f500c6f400c6f400c6f500c6f500c6f400c6f500c6
-f503c7f600c4fca2eefffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ee00c4ed00c3ed00c2ed00c2ea00c0
-ec00c1ed00c2ec00c1ec00c1ec00c1ec00c1ed00c2ed00c2ed00c2ec00c1ed00c2ee00c2ee00c2
-ee00c2ee00c3f000c3f000c3f200c3f100c4f100c4f100c4f300c4f300c5f201c7f400c6f400c6
-f300c5f300c5f400c5f400c5f400c6f400c6f400c6f400c7f400c7f400c6fcb4eff56dddf500c1
-f502c4f400c3f61bcefee3faf735d3f400c4f603c8f600c5f611cbfdc0f2fdc0f2f735d3f600c7
-f500c5f600c4f507c8f861ddfdecf9fb99e9f603c7f500c6f809cbf61bcefca2eefffffffb8de7
-f712cdf609caf500c7f500c7f500c7f500c5f500c6f500c6f500c6f500c6f400c6f400c5f400c5
-f503c7f400c4fca2eefffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ec03c2ee00c3ed00c2ec00c1ec00c1
-ec00c1ec00c1ec00c1ec00c1ec00c1ec00c1ec03c2ec03c2ec03c2ec00c1ee00c2ee00c2ee00c2
-f000c3ee00c2f000c3f100c4f200c3f101c4f101c4f300c4f203c7f502c5f300c4f400c6f503c7
-f300c5f400c5f503c7f400c5f400c5f503c7f501c7f503c7f400c3f955dbfee3faf603c7f502c6
-f503c7f507c8f500c1f881e2f949d9f600c4f700c7f712cdfedaf8fcb4eff600c4f400c3f601c7
-f503c7f502c6f502c6f500c1f625d0fff9fefcb4eff600c6f603c7f500c1f56dddfffffff34ad5
-f500c1f503c7f500c6f500c7f500c6f500c6f500c5f400c6f400c5f400c6f400c5f400c5f400c5
-f503c7f300c4fcadeefffffffffbfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ee00c4ed00c3ec00c1ec00c1ec00c1
-ea00c0ea00c0ea00c0ea00c0ec00bfea00c0ec00bfec00bfec00bfec03c2ed00c2ee00c2ee00c3
-ee00c2ee00c3f000c3f100c4f003c5f100c4f101c4f507c8f200c3f502c5f611cbf507c8f200c2
-f203c7f400c5f400c3f609caf609caf400c4f502c6f503c9f400c3fc82e6fffffff61bcef400c3
-f507c8f502c6f400c4f611cbf611cbf500c5f500c6fdc0f2fdecf9f609caf502c5f503c7f500c6
-f500c7f600c6f500c5f206c7f500c1f861ddfffffff881e2f600c4f400c3fb73e3fffffff955db
-f400c3f503c7f400c5f400c5f400c5f400c5f400c5f300c4f400c5f400c5f300c4f300c5f400c5
-f203c7f400c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ec03c2ed00c2ec00c1ec00c1ea00c0
-ea00c0ea00c0ec00bfea00c0ec00bfec00bfef31cbef31cbef31cbec00bfed00c2ee00c2ee00c2
-ee00c2f000c3f000c3f101c4f200c2f300c5fc98eaf53cd4f332d0fc98eafdcdf5fdecf9fb73e3
-f200c2f113c9fc82e6fdc0f2fee3fafcadeef712cdf400c7f400c3f861ddfffffffcb4eff712cd
-f400c3f400c4f503c7f502c6f502c5f600c4f949d9fffffffc82e6f502c4f603c7f500c5f500c6
-f500c7f500c6f500c6f500c6f500c6f603c7f9e3f5fff5fef61bcef500c1f678dffffffff949d9
-f200c2f503c7f400c5f400c6f400c6f300c5f400c5f300c5f300c5f300c4f300c4f300c5f300c5
-f502c5f200c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ec03c2ed00c2ea00c0ea00c0ea00c0
-ea00c0ec00bfec00bfea00c0ec00bff56dddf740d6ec03c2f678dff678dfec00bfec03c2ee00c2
-ee00c2f000c3f101c4f000c3f53cd4fdcdf5fffffffc98eaf949d9f61bcef503c8fc82e6ffffff
-f861ddf861ddf939d5f609caf53cd4fff9fefcb4eff400c6f500c7f609cafdcdf5fffffffee3fa
-fa76e3f61bcef600c4f502c5f503c7f600c4fca2eefffffff940d6f600c4f603c7f600c6f600c7
-f600c7f600c6f500c5f500c5f603c7f400c3fc98eafffffff861ddf500c1f975e2fffffff949d9
-f200c2f503c7f400c6f400c5f400c6f400c6f300c4f200c3f300c4f300c5f300c5f300c4f300c4
-f203c7f200c2fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ee00c2ee00c4ed00c2ec00c1ec00c1ea00c0
-ea00c0ea00c0ea00c0ec00bff113c9fdc0f2f113c9ec00bfef31cbfdc0f2ee00c2ec03c2ee00c2
-ec00c1f100c4f100c4f101c4f206c7f96fe0fffffff881e2f200c2f203c7f400c5f206c7fee3fa
-fee3faf609caf502c4f503c7f500c1f987e5fffffff712cdf501c7f500c6f712cdfca2eefffcfe
-fffffffff5fefb8de7f712cdf500c5f600c8fdcdf5fffffff929d3f600c5f502c6f600c6f600c6
-f500c6f600c6f500c6f500c5f503c7f500c1f975e2fffffffb8de7f500c1f975e2fffffff949d9
-f400c3f503c7f400c5f400c5f400c6f400c6f300c4f300c4f300c5f300c5f300c5f300c4f300c5
-f203c7f200c2fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ee00c4ed00c2ec00c1ec00c1ec00c1
-ec00c1ea00c0ea00c0ec00c1ea00c0fdcdf5f678dfec00bff678dff678dfec00bfec00bfee00c2
-ee00c3f100c4f100c4f003c5f000c0f53cd4fffffff53cd4f300c4f206c7f501c7f400c6fee3fa
-fcb4eff400c3f206c7f507c8f400c4f86ee0fffffff61bcef400c5f503c8f502c5f400c4f82fd4
-fb99e9fff5fefffffffedaf8f61bcef500c7fedaf8fffffff929d3f500c5f603c7f500c6f500c6
-f500c6f600c7f500c6f500c5f502c5f400c3f678dffffffffc98eaf500c1f975e2fffffff949d9
-f200c2f203c7f400c5f400c5f300c5f300c5f300c5f300c4f200c3f100c4f100c4f200c3f300c5
-f003c5f200c2fcb4effffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ec03c2ed00c2ec00c1ec00c1ed00c2
-ed00c2ec00c1ec00c1ec03c2ec00bff34ad5fffffffb8de7f61bceec03c2f34ad5f56dddf53cd4
-f100c4f100c4f100c4f003c5f200c2f740d6fffffff53cd4f200c3f503c7f400c7f400c6fee3fa
-fcb4eff400c3f503c8f503c8f400c3f96fe0fffffff61bcef400c5f503c7f502c6f503c7f400c4
-f400c3f61bcefdc0f2fffffffc9deaf600c4fdc0f2fffffff949d9f600c4f603c7f500c6f500c6
-f600c6f600c6f500c6f500c5f503c7f400c3f881e2fffffff881e2f500c1f975e2fffffff949d9
-f200c2f502c5f400c5f400c5f300c5f300c5f300c4f300c4f200c3f200c3f300c4f300c5f300c5
-f203c7f200c2fcb4effffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ed00c2ee00c4ee00c4ed00c3ed00c2ed00c2
-ee00c2ed00c2ed00c2ed00c2f456daf53cd4f456dafff5feef31cbec00bff861ddfb8de7f206c7
-f000c5f100c4f100c4f203c7f200c2f740d6fffffff939d5f200c3f503c7f400c7f400c7fee3fa
-fcb4eff400c3f503c7f503c8f400c3f96fe0fffffff61bcef500c5f503c7f502c6f400c7f603c8
-f503c8f400c4f609cafedaf8fdecf9f600c7f881e2fffffffc82e6f600c4f603c8f500c6f600c7
-f500c6f500c5f500c6f500c5f503c7f400c3fcb4effffffff53cd4f500c1fb73e3fffffff949d9
-f400c3f203c7f400c5f400c5f400c5f300c4f300c4f300c4f200c3f200c3f100c4f100c4f300c4
-f203c7f000c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ee00c3ee00c4ee00c4ee00c4ee00c4ee00c3
-ee00c3ec03c2ec00bff678dffb99e9ee00c2ee00c2f678dffcf3faf332d0f34ad5f003c5f100c4
-f201c7f201c7f201c7f203c7f200c3f740d6fffffff939d5f300c4f503c8f500c7f500c7fee3fa
-fcadeef500c5f503c8f503c8f600c4f96fe0fffffff61bcef400c5fb73e3f712cdf500c6f501c7
-f600c7f507c8f400c3fb8de7fff9fef700c9f61bcefffbfefedaf8f609caf600c6f601c7f600c7
-f600c7f500c5f400c4f502c6f600c4f323cefffffffdc0f2f502c5f200c2fb73e3fffffff949d9
-f400c3f503c7f400c5f400c6f206c7f609caf300c4f300c4f300c4f200c3f200c3f100c4f200c3
-f003c5f000c0fcb4effffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ee00c3ee00c4ee00c4ee00c4ee00c4ee00c4
-ee00c4ee00c4ee00c2fdc0f2f861ddec00bff609caee00c2f678dfffffffef31cbf000c3f104c7
-f000c7f201c7f201c7f203c7f300c5f740d6fffffff939d5f300c5f503c8f501c7f600c8fee3fa
-fcb4eff400c5f503c8f503c8f400c4f96fe0fffffff61bcef400c6fcb4eff332d0f500c5f503c8
-f603c8f507c8f500c1fc98eafdc0f2f502c5f600c5f861ddfffffffc82e6f500c1f603c8f603c8
-f502c6f502c4f503c7f502c5f500c1fcadeefffffff735d3f400c4f400c3fb73e3fffffff949d9
-f400c3f206c7f206c7f200c2f456daf861ddf000c0f203c7f200c3f100c4f100c4f100c4f000c3
-f003c5ee00c2fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffefffffffffcfefffffff64ad9ee00c4f104c7ee00c4f000c7f000c7ee00c4
-ee00c4ee00c4ee00c2f89feafdc0f2f000c3ee00c2f113c9f53cd4fca2eefdcdf5f609caee00c2
-f201c7f201c7f201c7f203c7f200c2f740d6fffffff940d6f200c2f503c9f400c6f400c5fee3fa
-fcb4eff400c3f503c7f503c8f400c3f96fe0fffffff323cef500c1fdcdf5fc98eaf500c1f502c5
-f502c6f400c3f61bcefedaf8f735d3f500c5f703c9f601c7f96fe0fffffffa76e3f600c4f400c3
-f300c4f400c3f400c3f500c5fb99e9fffbfff940d6f400c3f206c7f000c0f678dffffffff861dd
-f500c1f502c4f200c2f206c7fdcdf5f740d6f200c2f003c5f200c3f200c3f100c4f100c4f100c4
-f003c5f000c3fcb4effffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffcfefffffff64ad9ee00c4f503c8ee00c4ee00c4f000c7f000c7
-f000c7f000c7f000c5f113c9fdc0f2fdcdf5fb8de7f975e2f61bcef740d6fffbfefcadeef53cd4
-f203c7f300c7f201c7f300c7f64ad9fdc0f2fff9fefcb4eff949d9f501c7f724d0fa86e6fdecf9
-fee3fafb73e3f712cdf503c9f955dbfdc0f2fffffffc9deaf332d0f955dbfee3fafc82e6f735d3
-f82fd4f949d9fc9deaf939d5f500c5f703c9f700c9f703c9f700c7f735d3fdc0f2fcadeef949d9
-f61bcef929d3f861ddfdc0f2fcb4eff61bcef502c4f400c5f323cef861ddfdcdf5fffffffedaf8
-f56dddf955dbf881e2fee3fafffffff625d0f200c3f101c4f300c4f100c4f300c4f100c4f100c4
-f003c5f000c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fdfdfdfafafbfffffffffcfefffffff64ad9ee00c4f104c7f503c8ee00c4f000c7f600c8
-f000c7f000c7f000c7f000c5f003c5f332d0f735d3f203c7f104c7f323cef609caf61bcef323ce
-f201c7f300c7f400c7f300c7f323cef724d0f609caf625d0f332d0f500c7f712cdf735d3f712cd
-f61bcef939d5f609caf600c8f735d3f332d0f61bcef735d3f724d0f400c5f609caf940d6f955db
-f949d9f939d5f609caf600c5f503c8f600c7f600c7f700c9f703c9f600c6f603c7f82fd4fc9dea
-fffffffdc0f2f861ddf929d3f600c4f502c4f502c5f300c4f61bcef949d9f735d3f332d0f735d3
-f940d6f939d5f955dbf955dbf939d5f507c8f300c5f100c4f200c3f100c4f100c4f300c4f300c4
-f003c5f000c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fefefefafafbfffffffffdfefffffff64ad9ee00c4f104c7ee00c4f503c8f503c8f000c7
-f000c7f000c7f000c7f201c7f203c7f100c4f000c5f201c7f503c8f000c7f000c7f201c7f400c6
-f300c7f300c7f300c7f300c7f300c5f400c6f201c7f400c6f500c6f600c8f400c6f400c5f400c6
-f400c7f400c6f501c7f600c8f400c6f500c6f500c7f400c6f500c6f503c9f501c7f400c5f400c4
-f500c5f500c6f600c8f703c9f600c8f500c7f600c7f700c9f700c9f603c8f703c9f500c1f939d5
-fffffffdcdf5f600c5f500c5f507c8f507c8f503c7f503c8f502c5f200c2f400c4f500c5f400c4
-f400c3f300c4f400c4f300c4f300c4f300c5f300c5f300c4f200c3f200c3f300c5f100c4f000c3
-f003c5f000c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffdfefffffff64ad9ee00c4f503c9f503c8f000c7f503c8f503c8
-f503c8f503c8f000c7f000c7f000c7f203c7f503c8f201c7f201c7f503c8f000c7f201c7f201c7
-f600c8f600c8f300c7f300c7f203c7f201c7f201c7f503c8f503c8f400c7f503c8f503c8f501c7
-f600c8f503c8f600c8f600c8f503c8f503c9f503c8f503c9f600c8f600c8f600c8f503c8f503c8
-f503c8f703c9f600c8f700c9f600c8f600c8f700c9f600c8f600c8f600c8f600c8f603c8f501c7
-fca2eefffffffcadeef609caf600c4f600c5f600c5f600c4f601c7f503c7f503c7f503c7f503c8
-f503c7f503c7f503c8f503c8f503c8f400c7f400c6f300c5f300c4f300c4f100c4f200c3f100c4
-f003c5f000c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffdfefffffff64ad9ee00c4f206c7f104c7f104c7f104c7f503c9
-f503c9f503c9f503c9f503c9f503c8f503c8f503c9f503c9f503c9f503c9f503c8f503c8f503c9
-f503c9f503c8f503c8f503c9f503c8f503c8f503c8f503c9f503c9f503c9f503c9f503c9f503c8
-f503c9f503c9f503c9f503c9f503c9f503c9f503c8f503c9f703c9f503c9f503c9f503c8f503c8
-f703c9f703c9f703c9f703c9f703c9f703c9f703c9f703c9fc00cff603c8f703c9f703c9f600c8
-fc00cff881e2fff9fefdecf9fb8de7f955dbf949d9f96fe0f949d9f500c6f603c8f603c8f603c8
-f503c8f503c7f703c9f503c8f503c7f503c7f203c7f203c7f203c7f101c4f101c4f101c4f003c5
-f104c7f200c3fcb4effffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffdfefffffff740d6ee00c3ee00c4ee00c4ee00c4ee00c3ee00c4
-ee00c4ee00c4ed00c3ed00c3ee00c3f000c5f000c5f300c5f300c5f300c5f300c5f300c5f400c6
-f400c6f400c6f300c5f300c5f300c5f300c5f400c6f400c6f201c7f400c6f400c6ec00bff300c4
-f400c7f400c6f400c6f500c7f500c7f500c6f500c7f600c8f600c7f500c7f600c7f500c7f500c6
-f600c7f600c8f600c8f600c8f700c9f700c9f700c9fc00cff500c5f700c7f600c7f600c7f600c7
-f502c6f600c5f609caf955dbfb8de7fc98eafc82e6f955dbf809cbf601c7f601c7f600c6f500c7
-f500c7f500c6f500c7f500c6f400c6f400c5f300c5f300c5f300c4f100c4f300c5f100c4f300c5
-f203c7f000c3fcadeefffffffffcfeffffffffffffffffff000000
-000000fffffffffffffffffffffefffffffffb8de7f456daf965e1f861ddf861ddf456daf861dd
-f456daf456daf456daf456daf456daf456daf456daf456daf456daf64ad9f949d9f949d9f949d9
-f64ad9f64ad9f949d9f64ad9f64ad9f949d9f64ad9f949d9f949d9f64ad9f949d9f949d9f64ad9
-f740d6f64ad9f53cd4f53cd4f53cd4f939d5f740d6f939d5f735d3f939d5f82fd4f929d3f929d3
-f929d3f929d3f929d3f929d3f929d3f82fd4f929d3f929d3f929d3f929d3f929d3f929d3f929d3
-f332d0f929d3f724d0f712cdf809cbf712cdf712cdf712cdf61bcef724d0f61bcef724d0f61bce
-f61bcef724d0f61bcef61bcef61bcef61bcef61bcef61bcef61bcef61bcef61bcef61bcef61bce
-f61bcef609cafdc0f2fffffffffcfeffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffeff
-fffbfffffefffffefffffffffffffffffefffffefffffefffffbfffff9fefff9fefff5fefff5fe
-fff9fefff5fefff5fefff5fefff5fefff5fefff5fefff5fefff5fefff5fefff5fefff5fefff5fe
-fff5fefff5fefffbfeffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffcfefffbfefffbfefffbfefffbfefffbfefffcfe
-fffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffdfe
-fffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffefffffefffffefffffdfefffdfe
-fffefffffefffffefffffefffffefffffefffffefffffefffffeffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffeff
-fffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeff
-fffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeff
-fffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeff
-fffefffffeffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfffffffffefffefefefdfdfd
-fffffffefefefdfdfdfefefefefefefffffffffffffefefefffffffefefefffffffefefefefefe
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffdfdfdfffffffffffffdfdfeffffffffffffffffff
-fefefefffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffd2d2d4cccdcefcfcfcfdecf9e6e5e6d6d7d8
-ffffffe6e5e6cccdceeeeeeef1f0f0f9f8f9fefefdf5f6f5f1f0f0f2f2f3fafafbeaeaeaf2f2f3
-fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffefefefffffffffffffffffffffffffefefefffffffffffffefefeffffffffffff
-fffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
-fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
-fffffffffffffefefefffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffdfdfdffffffa8a8ab99999e99999e99999efc98ea807e837d7e82
-bcbcbd858589afaeb0afaeb06a6a6dc7c9c9f2f2f38c8c90e6e5e690919499999eb1b1b4a8a8ab
-f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffefefefefefefefefefefefefefefffffefefefffffffffffffefefefefefe
-fefefefffffffffffffffffffefefefefefefefefefefefefefefefffefefffffffefefeffffff
-fefefefdfefefefefefefefefefefefdfefefefefefffffffffffffefefefefefefefefefefefe
-fefefefefefefffffffffffffffffffffffffefefefdfdfdfefefefffffffffffffffffffefefe
-fefefefefefeffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffcfcfc797d7df7f7f7ffffff78787cf9e3f5898a8c54565c
-cccdce828184b7b7b8b1b1b465656ac7c9c9f4f4f4858589ffffffa2a1a47d7e82fffffff5f6f5
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffafafbe6e8e8fafafbfffffffefefeffffffeeeeeef5f6f5fffffff2f2f3fafafbffffff
-fffffffafafbf1f0f0fafafbfffffffefefefffffffffffffffffffffffefffffffafafbf1f0f0
-fafafbfffffffefefefffffffffffffffffffffffffafafbf1f0f0fefefeffffffffffffffffff
-fffffffdfcfdeeeeeefffffff1f0f0f1f0f0fcfcfcfffffffffffffefefef7f7f7f7f7f7fefefe
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffefffffffffffffdfdfdffffff99999ea8a8abb1b1b48c8c90ffffff909194acadae
-99999e797d7db8babcacadae65656a9d9ea0cccdce6d6e72e3e4e5bcbcbda5a4a7fffffffcfcfc
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd
-ffffffd3d5d599999ec5c6c7bcbcbdb8babccccdceb1b1b4bcbcbdf1f0f0bcbcbdbcbcbdc7c9c9
-d3d5d5f5f6f5b1b1b4cccdcebcbcbdc3c3c4c5c6c7cac9cbbfc1c2d2d2d4fffefec7c9c9d3d5d5
-c3c3c4cac9cbcfd0d1c5c6c7cccdcec7c9c9eaeaeacccdce9d9ea0cccdcecccdcecac9cbcccdce
-dfdedee6e5e6c3c3c4fafafbcac9cbb8babcc5c6c7bcbcbde1e1e2e1e1e2a8a8abd3d5d5c5c6c7
-d2d2d4d2d2d4f4f4f4fffffffffefeffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffafafbbcbcbdb8babcf5f6f5ffffffdadadbfafafb
-d3d5d5bfc1c2b1b1b4d6d7d8d3d5d5acadaebfbec1b8babcb1b1b4dfdedee3e4e5fffffffdfdfe
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
-ffffffd3d5d5c3c3c4c3c3c4c7c9c9cac9cbbfc1c2c5c6c7cac9cbe6e5e6b8babcbfc1c2bcbcbd
-d3d5d5fffefecac9cbbfc1c2bfbec1cccdcea8a8abb8babccfd0d1d3d5d5fafafbd3d5d5c5c6c7
-bfc1c2cccdcec3c3c4c5c6c7acadaeb1b1b4f2f2f3c5c6c7b8babcbfc1c2bfbec1c5c6c7acadae
-eaeaead3d5d5dadadbfafafbd3d5d5d3d5d5bfc1c2b1b1b4dadadbdadadbb8babccccdcebcbcbd
-acadaea8a8abf5f6f5fffffffefefeffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffefefefffffffffffffefefefffffffffffffefefd
-fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffefefefffffffffffffffffffffffff4f4f4f9f8f9f2f2f3f7f7f7fffffff1f0f0
-fefefefefefdfefefffffffffffffff5f6f5eaeaeafcfcfcfffffff9f8f9fefefefdfdfdfdfdfd
-fffffffdfdfefffffff2f2f3e6e5e6fcfdfdfffffffefefefdfefefefefefefefefefefefffffe
-fffffffefefefefefefffffffcfdfdfefefefefffffefffffffffffdfefefdfdfdfcfcfcffffff
-f1f0f0e6e5e6fcfdfdffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfffffffffffffefefeffffff
-fdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfcfcfcfdfdfdfcfcfcfcfcfcfefefefefefeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefeffffff
-fffefefffffffefefefefefefefefefefefefffffffefefefefefefefefefffffffefefefefefe
-fefefefefefefefefefefefefffffffefefefffffffffffefefefefefefefefefefefefefefefe
-fffffffefefefefefefffffffffffffffffffefefefefefefffffffffffffefefefffffffefefe
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffefffffffffefffffffffffffefefe
-fffffffffffefffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffefefefefefefffffeffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fefefefefefeffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffdfefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffefefdffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffefeffffffffffffffffffffffffffffffffffff000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/msql.gif b/Docs/Books/msql.gif
deleted file mode 100644
index 27a7b17afb2..00000000000
Binary files a/Docs/Books/msql.gif and /dev/null differ
diff --git a/Docs/Books/msql.txt b/Docs/Books/msql.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/prof.eps b/Docs/Books/prof.eps
deleted file mode 100644
index 13cdb24afb1..00000000000
--- a/Docs/Books/prof.eps
+++ /dev/null
@@ -1,1167 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/prof.eps
-%%CreationDate: Sun Dec 31 14:30:51 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 298 372
-%%EndComments
-%%BeginPreview: 100 126 1 126
-% fffffffffffffffffffffffff0
-% fffffffffffffffffffc010050
-% ffbf7bffbefbfffffffd552a90
-% fffffffffffffffffffc004030
-% fffeffbffbeffffffff9bb5b50
-% d555d56aaebaaaaaaaad46a490
-% ffffbffffbeffffffff8100930
-% d555eaaaaedd5555555aa4a050
-% ffff7ffffbbbfffffff4000910
-% ab5bd6b5aef76b6b6b6caaa250
-% fef6bdef7bbededededdaabdb0
-% 57dff7bdeeebfbfbfbfbffef70
-% fd755def7bbeaeaeaeaf56baf0
-% 57dff77bdeebfbfbfbfafdefd0
-% 7d76bddef7bededededfd7bb70
-% efddef75adedf7b7b7b57deef0
-% 5a22108a521208484c6ad75dd0
-% fc000f000000000008e075cbb0
-% 56007fc0000000000bf0cfc770
-% 7c00ffe0000000000bfc6e23f0
-% ec03faf00000000009e0c86350
-% 5a03e0500000000009c86e26f0
-% fe0380380000a8000d80cc0bd0
-% 540328500003be000c226a26f0
-% fe034018000d61800886d643b0
-% 54073ad8000bc2a00d82f54370
-% fe06eda8001f00a009e55f13f0
-% 540728d80015c0900f77f576b0
-% fe024aa0001f80680ddd5feff0
-% 54029410001700d80830e002b0
-% 7e028940003c00300ce84203f0
-% ea016d4000102a6c098c640350
-% 5c009280001e88380d846413f0
-% fa015ea0000d802408a4640370
-% 5e00a140000d00080ca06103d0
-% 740056000004880408006402b0
-% ee00a9400004a2140c686003f0
-% bc01b5600001440c0840620370
-% 6a01ae40000154180da46203d0
-% fe07f8f0000161000fafc20370
-% 543fc7fe000050000fef7ffef0
-% 7fffffffe00081400d5dd557b0
-% ebfffffff800a2000ff767c5f0
-% 5ffffffffe0054800afdcfe350
-% fbffffffff8054000dd76263f0
-% 5fffffffff80d4000d09c42370
-% 75ffffffffc169000a176483d0
-% efffffffffc214000d52c20370
-% 5dffffffff0010200d25a283d0
-% fbfffffffe0040180b1566a370
-% 5ffffffefc00c0020c97dd7fd0
-% f7fffffe780088000d9abebeb0
-% 5dfffffff80024000b67ff4ff0
-% f7fffffef7ffffffffdf6fbd70
-% 5d555555aed6d56db575daefd0
-% f63c21e31f11619f08c867c2f0
-% 5c0223f23510311988846fe7b0
-% 762027f3219021b08904cc32f0
-% ec4022022310510089446837b0
-% 5e2825a31491119a8894e2e2f0
-% fa5020a2019021000c805027b0
-% 5da0228304108184085460c2f0
-% 775022820410310508d8c8a7b0
-% eea721030a10a98808d06055f0
-% bdaa2142171035178d74c15350
-% 6f4fe46353d15fb4eb0760a7f0
-% fafadfffffbff6ffdffedffd70
-% 5fdfbb5aad76bdd5baedfb57d0
-% 7575f6f7fbefefbf77bbaefd70
-% efdf5fdeaf7abaf5eeef7bdbd0
-% 5d75f577fbdfefbf7dddeef770
-% fbdf5d4a0c4454c2a6677bbef0
-% 5f76f42b65cdce591c66deebd0
-% 75dddce2644c64dd466df7beb0
-% ef77b9a665cf32954527bdebf0
-% 5dddf4c94cc866496da5eb7ed0
-% fbbb5fffbfb7ddf7fb7b5fd7b0
-% 5f77f6aaeafef7beafdffafdf0
-% f5eebdffbfabbdebfaf55faf50
-% 5f7defab75feef5eafbff5faf0
-% f5d7bafeef57bbfbfb6abf5fd0
-% 5f7defaddbfdeeaedeffebf570
-% f6ef7ab3b15b7bfbb7d5bebfd0
-% 5ddbdf06e1f7deb77d7f6beaf0
-% 77beb5c7b5bef7eeefd6febfb0
-% eef7ff4dfde55abbb56fd7eb70
-% 5dbd558751a43061031d7d7ef0
-% fbebff8dc3071c71c337d7d7d0
-% 5f7f5a8771c50c51607d7d7d70
-% 75d5f78dd3471871e0efdbd7d0
-% ef7f5ec761c69c61b0daf77d70
-% bdd6f78dd3471471e87fbeeff0
-% 6f7ddd4731c61c514c2aebdab0
-% fbdbbb8521450a008c1fbefff0
-% 5ef777105492aeb7554b77aad0
-% 75beeefffffffbfdfffeedffb0
-% efebdddbaaad56af555bdf55f0
-% 5d7efbbefffbfffaffd77bff50
-% fb01af77aadf5aafda8ed6adf0
-% 5f19fbdd7fb5f7faf7edfffb70
-% 7599061a94298815094c8817d0
-% ef1124c9912899c8c888cdcef0
-% 5d9738c499f5cc8c9dccc89db0
-% fb1d29cc99a489d9c88ccc97f0
-% 5f9b3ca971c8dc8c8ccc8abd50
-% f5169458094484888888c40ff0
-% 5f7f7ff54fffbfffffffbd0ab0
-% f5ebd6a9cd5b75556d55f1cff0
-% 5f7efdfc5ff6efffdfff5c5db0
-% f6d7afaff55fdd5afab5f7fb70
-% 5dfd7afb5ff57bf7afef5daff0
-% 77afefaef6bfdf6efaddf7fab0
-% eefabafbbdeab5dbafb75d57f0
-% 5c005756d6addb6d756db6ed50
-% fa003dfdbdfb77dbdfdb7dbff0
-% 5e086f57edaedd6b757febeab0
-% 74043bfd7a512b1a8b42bf7ff0
-% ee026eafdffff6fffeffebd550
-% bc7f3bfaf5ad5fd557ad7ebff0
-% 6ec06d575b76eabbbd76d5d570
-% fa0037adeddbbd6ed6ddaf77d0
-% 5e766d7f5f76ebfbbdf7fadd70
-% 74003ed5b5adb6aad6ad576bd0
-% ee006b7aed6d6dedbdbaedb770
-% 5c003ed7bbdfdf5feb77bb6df0
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 357.165354 translate
-283.464567 -357.165354 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 126 8
-% Transformation matrix
-[ 100 0 0 126 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c095754520d0c095754520d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c095754520d0c090d0c090d0c090d0c090d0c095754520d0c09
-0d0c090d0c090d0c090d0c090d0c095754520d0c095754520d0c095754520d0c090d0c090d0c09
-5754520d0c090d0c090d0c090d0c090d0c095754520d0c090d0c095754520d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c18d8b8eb8b3c1b8b3c1b8b3c1
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c18d8b8eb8b3c10d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c095754520d0c095754520d0c095754520d0c09
-0d0c095754525754525754520d0c095754520d0c095754525754525754520d0c095754520d0c09
-0d0c090d0c090d0c095754520d0c090d0c090d0c095754520d0c095754520d0c095754520d0c09
-5754520d0c090d0c095754525754520d0c095754520d0c090d0c095754520d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452
-b8b3c18d8b8eb8b3c1b8b3c1b8b3c18d8b8eb8b3c1b8b3c1b8b3c18d8b8e8d8b8eb8b3c1b8b3c1
-b8b3c18d8b8eb8b3c1b8b3c1b8b3c1b8b3c18d8b8eb8b3c10d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09
-0d0c09b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534
-b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534
-b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534
-b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534
-b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534
-b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534a6385a
-b8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e
-8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c10d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-b8b3c18d8b8e8d8b8e5754528d8b8e8d8b8e8d8b8e8d8b8e5754528d8b8e8d8b8e8d8b8e8d8b8e
-8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c10d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1dfd9dab8b3c1b8b3c1dfd9dab8b3c1b8b3c1b8b3c1b8b3c1
-b8b3c1b8b3c1dfd9dab8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1dfd9dab8b3c1b8b3c1dfd9dadfd9dab8b3c1b8b3c1dfd9da
-b8b3c1b8b3c1dfd9dab8b3c1b8b3c1b8b3c1dfd9dab8b3c10d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1
-b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104b
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c0d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104be16e8fe16e8fe16e8fe16e8fe16e8fe16e8f
-e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f
-e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f
-e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f
-e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f
-e16e8fe16e8fe16e8fdd0046e02c5ce16e8fe16e8fe16e8fa6385ab01534e16e8fe16e8fe16e8f
-e16e8fe16e8fe02c5cdd0046d7104ba6385aa6385aa6385aa6385aa6385aa6385aa6385aa6385a
-a6385ab01534b01534dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e5754525754528d8b8edfd9dafdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfddfd9da5754520d0c090d0c098d8b8efdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046d7104b5754528d8b8e5754525754520d0c090d0c09575452dfd9da
-b8b3c1575452575452dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfddfd9da8d8b8e5754520d0c090d0c090d0c090d0c090d0c090d0c09575452
-dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e16e8fb8b3c10d0c090d0c090d0c095754520d0c09b8b3c1fdfdfd
-dfd9dafdfdfde16e8fdd0046d7104b8d8b8e8d8b8e0d0c095754525754520d0c09575452b8b3c1
-fdfdfddfd9da575452dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdb8b3c15754520d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e16e8f8d8b8e0d0c090d0c090d0c090d0c090d0c09575452575452
-dfd9dafdfdfde16e8fdd0046d7104bb8b3c15754520d0c09575452b8b3c18d8b8e8d8b8e8d8b8e
-fdfdfdfdfdfd8d8b8edd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfd8d8b8e0d0c090d0c090d0c090d0c090d0c095754525754528d8b8e5754520d0c090d0c09
-0d0c09575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e16e8fdfd9da0d0c090d0c090d0c090d0c098d8b8e8d8b8eb8b3c1
-fdfdfdfdfdfde16e8fdd0046d7104bdfd9da575452575452b8b3c1fdfdfddfd9da8d8b8e575452
-b8b3c1fdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfd5754520d0c090d0c090d0c09575452b8b3c1b8b3c1dfd9dadfd9dadfd9dab8b3c18d8b8e
-5754520d0c098d8b8efdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfd0d0c090d0c09575452b8b3c1dfd9dab8b3c1dfd9da
-fdfdfdfdfdfde16e8fdd0046d7104bb8b3c1575452575452575452dfd9dab8b3c1dfd9da575452
-8d8b8edfd9da8d8b8edd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-dfd9da0d0c090d0c095754528d8b8eb8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dadfd9da
-8d8b8e0d0c09575452fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8eb8b3c18d8b8e8d8b8e
-8d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5c8d8b8e575452575452b8b3c1b8b3c1b8b3c1dfd9dadfd9da
-fdfdfdfdfdfde16e8fdd0046d7104bb8b3c15754525754528d8b8edfd9dafdfdfdfdfdfd8d8b8e
-b8b3c1b8b3c1575452dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-b8b3c10d0c090d0c098d8b8eb8b3c1b8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dab8b3c1
-b8b3c1575452575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8e5754525754525754528d8b8e575452
-5754525754525754528d8b8edfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cdfd9dab8b3c18d8b8eb8b3c1b8b3c1dfd9dadfd9dab8b3c1
-8d8b8edfd9dae6a5b7dd0046d7104b8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1dfd9dafdfdfdb8b3c1
-dfd9dadfd9da8d8b8edd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-b8b3c10d0c095754528d8b8eb8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c1
-b8b3c1575452575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e5754525754525754525754525754520d0c09575452
-8d8b8eb8b3c18d8b8e5754528d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfddfd9da8d8b8edfd9dab8b3c1dfd9dadfd9dab8b3c1
-5754528d8b8ea6385add0046d7104b8d8b8e8d8b8e575452575452b8b3c1b8b3c1b8b3c1b8b3c1
-dfd9dadfd9da8d8b8edd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-8d8b8e0d0c09575452b8b3c18d8b8e5754525754528d8b8eb8b3c1b8b3c1b8b3c18d8b8e8d8b8e
-b8b3c18d8b8e0d0c09dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdb8b3c15754525754525754525754525754525754528d8b8edfd9da
-dfd9dadfd9dab8b3c18d8b8e5754528d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd8d8b8e0d0c09b8b3c1b8b3c1dfd9dadfd9da8d8b8e
-5754528d8b8ea6385add0046d7104b5754528d8b8e5754525754528d8b8e8d8b8e8d8b8edfd9da
-dfd9dadfd9dae6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-5754520d0c095754528d8b8e575452575452575452575452575452b8b3c1575452575452575452
-5754528d8b8e575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfddfd9da5754525754525754525754520d0c095754528d8b8edfd9dafdfdfd
-dfd9dadfd9dadfd9dab8b3c15754528d8b8e8d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e16e8fdfd9da5754520d0c090d0c098d8b8edfd9dadfd9da8d8b8e
-8d8b8e8d8b8ea6385add0046b015345754525754525754525754525754528d8b8edfd9da8d8b8e
-b8b3c1fdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-5754520d0c095754528d8b8e8d8b8e5754528d8b8e8d8b8e8d8b8eb8b3c18d8b8e575452575452
-8d8b8e8d8b8e575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfddfd9da5754525754525754525754520d0c090d0c098d8b8edfd9dafdfdfd
-fdfdfddfd9dadfd9dadfd9da8d8b8e8d8b8eb8b3c18d8b8e8d8b8efdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046d7104ba6385ab01534b01534b01534b01534a6385ae16e8fa6385a
-a6385aa6385ab01534dd0046dd0046b01534b01534b01534b01534a6385ae16e8fa6385aa6385a
-b01534a6385ae02c5cdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-b8b3c15754528d8b8eb8b3c1b8b3c18d8b8eb8b3c18d8b8e8d8b8eb8b3c18d8b8e8d8b8e8d8b8e
-8d8b8e8d8b8e8d8b8efdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdb8b3c15754525754525754520d0c090d0c09575452b8b3c1fdfdfddfd9da
-fdfdfdfdfdfdfdfdfddfd9dab8b3c15754528d8b8e8d8b8e575452dfd9dafdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-dfd9da5754528d8b8e8d8b8eb8b3c1b8b3c1b8b3c18d8b8e8d8b8eb8b3c1b8b3c1b8b3c1b8b3c1
-b8b3c18d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdb8b3c15754525754520d0c09575452575452b8b3c1dfd9dadfd9dafdfdfd
-fdfdfddfd9dadfd9dadfd9dab8b3c15754525754525754525754528d8b8efdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5ce6a5b7e6a5b7e6a5b78d8b8e5754525754528d8b8ee6a5b7
-e6a5b7e6a5b7e16e8fdd0046d7104be6a5b7e6a5b7e6a5b7e6a5b78d8b8ee16e8fe6a5b7e6a5b7
-e6a5b7e6a5b7e16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-dfd9da8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1b8b3c18d8b8eb8b3c1b8b3c18d8b8eb8b3c1b8b3c1
-b8b3c1b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfd8d8b8e0d0c09575452575452b8b3c1dfd9dadfd9dadfd9dadfd9dadfd9da
-b8b3c1dfd9dadfd9dadfd9dadfd9da8d8b8e0d0c095754528d8b8eb8b3c1fdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdfdfdfd8d8b8e575452575452575452575452b8b3c1
-fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfdfdfdfddfd9da8d8b8eb8b3c1dfd9dadfd9dadfd9da
-fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e5754525754528d8b8e8d8b8e8d8b8e8d8b8e
-b8b3c1dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdb8b3c15754525754528d8b8eb8b3c1b8b3c1b8b3c1dfd9dab8b3c1b8b3c1
-8d8b8eb8b3c1b8b3c1dfd9dadfd9dab8b3c15754525754525754528d8b8efdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd8d8b8e0d0c09575452dfd9dafdfdfd8d8b8e575452
-b8b3c1fdfdfde6a5b7dd0046d7104bfdfdfdfdfdfd575452b8b3c1fdfdfdfdfdfdfdfdfddfd9da
-dfd9dafdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfddfd9da8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e
-b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfddfd9da5754525754528d8b8e8d8b8e8d8b8e575452b8b3c1dfd9dab8b3c1
-8d8b8e8d8b8eb8b3c1dfd9dadfd9dab8b3c1575452575452575452575452fdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd5754520d0c098d8b8efdfdfdfdfdfdfdfdfd575452
-8d8b8efdfdfde6a5b7dd0046d7104bfdfdfddfd9da575452dfd9dafdfdfdfdfdfdfdfdfddfd9da
-b8b3c1fdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfd8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e5754525754525754528d8b8e8d8b8e8d8b8e
-b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfd8d8b8e0d0c095754528d8b8e575452575452b8b3c1dfd9dadfd9da
-b8b3c1dfd9dadfd9dadfd9dadfd9dadfd9da8d8b8e5754528d8b8e575452dfd9dafdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd8d8b8e5754528d8b8e8d8b8edfd9da8d8b8e8d8b8e
-b8b3c1fdfdfde6a5b7dd0046d7104bfdfdfddfd9da575452b8b3c1dfd9dafdfdfdfdfdfddfd9da
-b8b3c1fdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e
-dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfddfd9da5754525754528d8b8e8d8b8e8d8b8eb8b3c1dfd9dadfd9da
-dfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dab8b3c1b8b3c18d8b8edfd9dafdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdb8b3c18d8b8e8d8b8e8d8b8eb8b3c1b8b3c1b8b3c1
-dfd9dafdfdfde6a5b7dd0046d7104bfdfdfddfd9da8d8b8eb8b3c1b8b3c1fdfdfdfdfdfddfd9da
-dfd9dafdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c18d8b8eb8b3c1
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e575452b8b3c1b8b3c18d8b8eb8b3c1dfd9dadfd9da
-b8b3c1dfd9dafdfdfddfd9dadfd9dadfd9dadfd9dadfd9dadfd9da8d8b8eb8b3c1fdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfddfd9dab8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9da
-fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfddfd9da8d8b8eb8b3c1b8b3c1fdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1b8b3c18d8b8e8d8b8e8d8b8e
-dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e8d8b8eb8b3c18d8b8e8d8b8eb8b3c1b8b3c1
-b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c18d8b8e575452b8b3c1fdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdfdfdfddfd9da8d8b8e8d8b8eb8b3c1b8b3c1dfd9da
-fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfdfdfdfdb8b3c1b8b3c1dfd9dafdfdfdfdfdfddfd9da
-fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfd5754525754528d8b8e5754525754528d8b8e8d8b8e8d8b8e8d8b8eb8b3c1575452
-575452fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8eb8b3c18d8b8e5754528d8b8eb8b3c1
-dfd9dab8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c1575452575452dfd9dafdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8eb8b3c1b8b3c1b8b3c1fdfdfd
-fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfdfdfdfdb8b3c18d8b8edfd9dafdfdfdfdfdfddfd9da
-dfd9dafdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdb8b3c10d0c095754528d8b8e5754525754525754525754525754528d8b8eb8b3c1575452
-575452fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8eb8b3c1
-8d8b8e8d8b8e8d8b8edfd9dadfd9dadfd9dadfd9dab8b3c15754528d8b8efdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046e02c5cb8b3c15754525754528d8b8e8d8b8eb8b3c1b8b3c1b8b3c1
-dfd9dafdfdfde6a5b7dd0046d7104bfdfdfdfdfdfdfdfdfd575452b8b3c1dfd9dadfd9dafdfdfd
-fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da
-8d8b8e0d0c090d0c090d0c095754525754525754525754525754528d8b8eb8b3c18d8b8e0d0c09
-0d0c098d8b8eb8b3c1dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da8d8b8eb8b3c1575452575452b8b3c1
-b8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c1dfd9dafdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046b015340d0c090d0c090d0c098d8b8e8d8b8e8d8b8e5754520d0c09
-0d0c09575452a6385add0046d7104bfdfdfdfdfdfddfd9da5754528d8b8edfd9dadfd9dafdfdfd
-dfd9dafdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8e5754520d0c09
-0d0c090d0c090d0c090d0c090d0c095754528d8b8e8d8b8e8d8b8e8d8b8e5754520d0c090d0c09
-0d0c090d0c090d0c090d0c095754528d8b8eb8b3c1dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8eb8b3c18d8b8e8d8b8e8d8b8e
-b8b3c1dfd9dadfd9dab8b3c1dfd9dab8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046dd0046b01534b01534b01534d7104bd7104be02c5cb01534b01534
-b01534b01534dd0046dd0046dd0046e02c5ce02c5cd7104bb01534e02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5cd7104bdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104b5754525754520d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c095754525754520d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452575452b8b3c1fdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8e8d8b8eb8b3c1b8b3c1
-b8b3c1dfd9dadfd9dab8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452b8b3c1fdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e8d8b8e8d8b8eb8b3c1
-dfd9dadfd9dab8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046b015345754525754525754525754520d0c09575452575452575452
-575452575452b01534dd0046e02c5ce6a5b7e6a5b75754520d0c090d0c090d0c090d0c09e6a5b7
-e6a5b7e6a5b7e16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452
-b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da5754528d8b8e8d8b8e
-b8b3c18d8b8eb8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a5754525754525754520d0c090d0c090d0c09575452575452
-575452575452a6385add0046e02c5cfdfdfd8d8b8e0d0c090d0c090d0c090d0c090d0c09575452
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c09575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c15754528d8b8e8d8b8e
-8d8b8e8d8b8eb8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8e5754520d0c09575452575452575452575452
-575452575452a6385add0046e02c5cfdfdfd8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1575452575452
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c098d8b8efdfdfdfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e5754528d8b8e8d8b8e
-8d8b8e8d8b8eb8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8edfd9dadfd9dadfd9dab8b3c18d8b8e8d8b8e
-8d8b8e575452a6385add0046e02c5cfdfdfdb8b3c18d8b8edfd9dadfd9dadfd9dab8b3c1575452
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c09575452fdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8eb8b3c15754525754528d8b8e
-8d8b8e8d8b8eb8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8eb8b3c1dfd9dadfd9da8d8b8e8d8b8e8d8b8e
-575452575452a6385add0046e02c5cfdfdfddfd9da8d8b8e8d8b8eb8b3c18d8b8eb8b3c1b8b3c1
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c09575452fdfdfddfd9dadfd9dadfd9dab8b3c18d8b8edfd9dab8b3c18d8b8e8d8b8e
-8d8b8e8d8b8eb8b3c1b8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8eb8b3c1b8b3c18d8b8e8d8b8e8d8b8eb8b3c1
-575452575452a6385add0046e02c5cfdfdfdfdfdfd8d8b8e8d8b8eb8b3c1b8b3c1b8b3c1dfd9da
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c098d8b8edfd9dafdfdfdfdfdfddfd9dadfd9dadfd9dab8b3c1dfd9dafdfdfdb8b3c18d8b8e
-b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dab8b3c18d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e575452b8b3c1dfd9da5754528d8b8eb8b3c1b8b3c1
-8d8b8e575452a6385add0046e02c5cfdfdfdfdfdfdb8b3c18d8b8eb8b3c1b8b3c1b8b3c1dfd9da
-fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dadfd9dadfd9dadfd9dab8b3c1fdfdfddfd9da
-dfd9dadfd9dadfd9dadfd9dadfd9dadfd9dab8b3c18d8b8e8d8b8eb8b3c1dfd9dafdfdfdfdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e575452b8b3c1dfd9dab8b3c18d8b8eb8b3c18d8b8e
-8d8b8e575452a6385add0046e02c5cfdfdfdfdfdfd8d8b8e5754525754528d8b8e8d8b8e575452
-dfd9dafdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c098d8b8e5754520d0c090d0c090d0c090d0c090d0c09b8b3c1
-fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dafdfdfddfd9da8d8b8e575452dfd9dafdfdfd
-dfd9dadfd9dadfd9dafdfdfddfd9dafdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8eb8b3c1fdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8e8d8b8edfd9dab8b3c18d8b8e8d8b8e8d8b8e
-575452575452a6385add0046e02c5c8d8b8e0d0c090d0c095754528d8b8e8d8b8e8d8b8e0d0c09
-0d0c09575452a6385add0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c09dfd9da8d8b8e0d0c090d0c090d0c090d0c098d8b8efdfdfd
-dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dafdfdfdb8b3c18d8b8e8d8b8e8d8b8eb8b3c1
-8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dadfd9dafdfdfd
-fdfdfdfdfdfde6a5b7dd0046a6385ab8b3c18d8b8e5754528d8b8edfd9da8d8b8e575452575452
-0d0c09575452a6385add0046b015340d0c090d0c090d0c090d0c098d8b8e8d8b8e8d8b8e575452
-0d0c090d0c090d0c09dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c095754525754520d0c090d0c090d0c09575452b8b3c1dfd9da
-dfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dab8b3c1dfd9dab8b3c1b8b3c1b8b3c1b8b3c1
-b8b3c18d8b8edfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9da
-dfd9dadfd9dae6a5b7dd0046a6385a5754525754525754525754528d8b8eb8b3c18d8b8e575452
-0d0c09575452b01534dd0046b015340d0c090d0c090d0c090d0c09575452b8b3c18d8b8eb8b3c1
-8d8b8e0d0c090d0c09dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bdd0046dd0046dd0046b01534b01534d7104bd7104bd7104bd7104bd7104bd7104b
-b01534b01534dd0046dd0046dd0046b01534b01534b01534b01534b01534d7104bd7104bd7104b
-d7104bb01534dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046d7104bd7104bd7104bd7104bdd0046dd0046
-dd0046d7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bdd0046dd0046dd0046
-d7104bd7104bd7104bd7104bdd0046dd0046d7104bd7104bd7104bd7104bdd0046dd0046dd0046
-d7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bdd0046dd0046d7104bd7104b
-d7104bd7104bd7104bdd0046dd0046d7104bd7104bd7104bdd0046dd0046dd0046dd0046d7104b
-d7104bd7104bd7104bdd0046dd0046d7104bd7104bd7104bdd0046dd0046dd0046d7104bd7104b
-d7104bd7104bdd0046dd0046dd0046d7104bd7104bd7104bdd0046dd0046dd0046dd0046d7104b
-d7104bd7104bdd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cdfd9dafdfdfddfd9da575452575452575452
-5754528d8b8edfd9dafdfdfde6a5b7dd0046e6a5b7fdfdfdfdfdfd8d8b8e0d0c090d0c090d0c09
-0d0c09b8b3c1fdfdfddfd9dadd0046e02c5cdfd9dafdfdfdb8b3c10d0c090d0c090d0c090d0c09
-575452dfd9dafdfdfde6a5b7dd0046e6a5b7fdfdfdb8b3c18d8b8e8d8b8e575452575452b8b3c1
-fdfdfddfd9dadfd9dad7104bd7104bdfd9dafdfdfd5754520d0c090d0c090d0c090d0c098d8b8e
-fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfddfd9da5754525754528d8b8e8d8b8e8d8b8edfd9da
-fdfdfdfdfdfde16e8fdd0046b015348d8b8eb8b3c15754525754520d0c090d0c09575452575452
-b8b3c1b8b3c1e16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfddfd9da8d8b8e8d8b8eb8b3c1
-8d8b8e575452dfd9dafdfdfde6a5b7dd0046dfd9dafdfdfddfd9da0d0c090d0c090d0c090d0c09
-0d0c090d0c09fdfdfdfdfdfddd0046e02c5cfdfdfdfdfdfd5754525754528d8b8e8d8b8e575452
-0d0c098d8b8efdfdfde6a5b7dd0046dfd9dafdfdfdb8b3c1b8b3c1dfd9dab8b3c1575452575452
-fdfdfdfdfdfdfdfdfdd7104bd7104bfdfdfddfd9da0d0c09575452b8b3c1b8b3c15754520d0c09
-fdfdfdfdfdfddfd9dadd0046e16e8ffdfdfdb8b3c1575452b8b3c1dfd9dadfd9dab8b3c18d8b8e
-fdfdfdfdfdfde16e8fdd0046d7104bb8b3c18d8b8e0d0c095754520d0c095754520d0c090d0c09
-b8b3c1dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8edfd9dafdfdfd
-fdfdfddfd9dadfd9dafdfdfde6a5b7dd0046dfd9dafdfdfd8d8b8e0d0c090d0c09575452575452
-575452575452dfd9dafdfdfddd0046e02c5cfdfdfdb8b3c1575452fdfdfdfdfdfdfdfdfddfd9da
-575452575452fdfdfde6a5b7dd0046dfd9dafdfdfddfd9dadfd9dadfd9dadfd9da8d8b8e575452
-fdfdfdfdfdfdfdfdfdd7104bd7104bfdfdfd8d8b8e0d0c09dfd9dafdfdfdfdfdfddfd9da0d0c09
-dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfd5754528d8b8edfd9dadfd9dafdfdfddfd9da575452
-b8b3c1fdfdfde16e8fdd0046d7104bb8b3c1575452575452b8b3c1dfd9dadfd9dab8b3c10d0c09
-575452dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfd8d8b8e8d8b8eb8b3c1fdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfd8d8b8e5754528d8b8e8d8b8edfd9da
-dfd9da8d8b8edfd9dafdfdfddd0046e02c5cfdfdfddfd9da8d8b8e8d8b8eb8b3c1b8b3c1575452
-575452575452fdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dadfd9dadfd9dab8b3c18d8b8e575452
-dfd9dafdfdfdfdfdfdd7104bd7104bfdfdfdb8b3c18d8b8edfd9dafdfdfddfd9dadfd9da575452
-dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfd8d8b8e8d8b8eb8b3c1dfd9dadfd9dab8b3c18d8b8e
-dfd9dafdfdfde16e8fdd0046b01534b8b3c1575452b8b3c1fdfdfdfdfdfdfdfdfdb8b3c1575452
-575452dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfd8d8b8e8d8b8e8d8b8eb8b3c1
-dfd9dadfd9dafdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfd8d8b8eb8b3c15754525754528d8b8e
-8d8b8e8d8b8efdfdfddfd9dadd0046e02c5cfdfdfddfd9da8d8b8e8d8b8eb8b3c1b8b3c18d8b8e
-8d8b8e575452fdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dab8b3c1b8b3c1b8b3c1b8b3c1575452
-b8b3c1fdfdfdfdfdfdd7104bd7104bfdfdfddfd9da8d8b8e5754528d8b8e8d8b8e8d8b8e8d8b8e
-dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfdb8b3c18d8b8e8d8b8eb8b3c18d8b8e8d8b8e8d8b8e
-fdfdfdfdfdfde16e8fdd0046b015348d8b8eb8b3c1b8b3c18d8b8eb8b3c18d8b8e575452575452
-8d8b8edfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cdfd9da8d8b8e8d8b8eb8b3c18d8b8eb8b3c1
-b8b3c1dfd9dafdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfdb8b3c1b8b3c1b8b3c18d8b8e8d8b8e
-8d8b8edfd9dafdfdfddfd9dadd0046e02c5cfdfdfdfdfdfddfd9dafdfdfdfdfdfddfd9dadfd9da
-8d8b8e575452fdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dadfd9dab8b3c1dfd9dab8b3c18d8b8e
-dfd9dafdfdfdfdfdfdd7104bd7104bfdfdfdfdfdfdb8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1
-dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfdb8b3c18d8b8edfd9dab8b3c1dfd9dadfd9dab8b3c1
-fdfdfdfdfdfde16e8fdd0046d7104b8d8b8eb8b3c1fdfdfddfd9dadfd9da8d8b8eb8b3c1575452
-b8b3c1dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046e02c5c5754525754528d8b8e8d8b8e8d8b8edfd9da
-dfd9dafdfdfdfdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfddfd9da8d8b8e8d8b8e575452b8b3c1
-b8b3c1fdfdfdfdfdfddfd9dadd0046e02c5cfdfdfdfdfdfdfdfdfddfd9dadfd9da8d8b8eb8b3c1
-b8b3c1dfd9dafdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dadfd9dab8b3c1dfd9dab8b3c1b8b3c1
-fdfdfdfdfdfdfdfdfdd7104bd7104bfdfdfdfdfdfddfd9dadfd9dab8b3c1b8b3c1dfd9dadfd9da
-fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfddfd9da8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1b8b3c1
-fdfdfdfdfdfde16e8fdd0046d7104bb8b3c1b8b3c1dfd9dadfd9dab8b3c15754528d8b8e8d8b8e
-dfd9dadfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015345754525754528d8b8e8d8b8e8d8b8edfd9da
-dfd9dab8b3c1dfd9dafdfdfde6a5b7dd0046dfd9dafdfdfdb8b3c18d8b8e8d8b8e8d8b8eb8b3c1
-b8b3c1fdfdfdfdfdfddfd9dadd0046e02c5cfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e8d8b8e
-dfd9dafdfdfdfdfdfde6a5b7dd0046e6a5b7fdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8e8d8b8e
-dfd9dafdfdfdfdfdfdd7104bd7104bfdfdfdfdfdfddfd9dab8b3c18d8b8e8d8b8eb8b3c1dfd9da
-fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfdfdfdfd5754525754528d8b8e8d8b8e575452dfd9da
-fdfdfdfdfdfde16e8fdd0046d7104bb8b3c1b8b3c1dfd9dadfd9dadfd9da8d8b8e8d8b8e8d8b8e
-b8b3c1b8b3c1e16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015345754525754528d8b8e575452b8b3c1dfd9da
-8d8b8e5754528d8b8efdfdfde6a5b7dd0046dfd9dafdfdfdfdfdfd8d8b8e5754528d8b8eb8b3c1
-dfd9dafdfdfdfdfdfddfd9dadd0046e02c5cfdfdfdfdfdfdfdfdfdb8b3c1b8b3c1b8b3c18d8b8e
-b8b3c1fdfdfdfdfdfde6a5b7dd0046e6a5b7fdfdfdfdfdfddfd9dab8b3c18d8b8e8d8b8e575452
-8d8b8edfd9dafdfdfdd7104bd7104bfdfdfdfdfdfddfd9da8d8b8eb8b3c1b8b3c1b8b3c1b8b3c1
-fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfdfdfdfd5754525754528d8b8e575452575452fdfdfd
-fdfdfdfdfdfde16e8fdd0046e02c5cdfd9dafdfdfdfdfdfddfd9dadfd9dab8b3c18d8b8e575452
-575452b8b3c1e16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046b015345754525754528d8b8e8d8b8eb8b3c18d8b8e
-575452575452575452b8b3c1e6a5b7dd0046dfd9dafdfdfddfd9dadfd9da8d8b8e8d8b8e575452
-b8b3c1fdfdfdfdfdfdfdfdfddd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8e8d8b8e575452575452
-0d0c09dfd9dafdfdfde6a5b7dd0046dfd9dafdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8e575452
-5754525754528d8b8ed7104bd7104bfdfdfddfd9da5754528d8b8e5754525754528d8b8e575452
-8d8b8efdfdfddfd9dadd0046e16e8fdfd9da5754528d8b8e5754525754525754528d8b8e8d8b8e
-dfd9dafdfdfde16e8fdd0046e02c5cfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e5754528d8b8e
-8d8b8edfd9dae6a5b7dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104b5754525754528d8b8ee6a5b78d8b8e575452
-575452575452575452575452a6385add0046e6a5b7b8b3c1b8b3c1e6a5b7e6a5b7b8b3c1575452
-575452e6a5b7dfd9dae6a5b7dd0046e02c5cb8b3c18d8b8e8d8b8e8d8b8eb8b3c18d8b8e0d0c09
-0d0c090d0c098d8b8ee16e8fdd0046e6a5b7dfd9dae6a5b78d8b8e8d8b8eb8b3c1575452575452
-5754525754520d0c09dd0046d7104b8d8b8e575452575452b8b3c15754525754528d8b8e575452
-0d0c098d8b8ee16e8fdd0046a6385a5754520d0c098d8b8eb8b3c18d8b8eb8b3c1b8b3c1575452
-0d0c09575452a6385add0046e02c5cdfd9dadfd9dadfd9dab8b3c1b8b3c18d8b8e8d8b8e8d8b8e
-8d8b8edfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e16e8fe16e8fe6a5b7d7104b
-e02c5ce6a5b7e16e8fe16e8fdd0046dd0046e16e8fe16e8fe16e8fe16e8fdd0046dd0046e16e8f
-e6a5b7e16e8fdd0046e16e8fe6a5b7e16e8fd7104be02c5ce16e8fe16e8fd7104bd7104be16e8f
-e16e8fe02c5cdd0046e6a5b7e02c5cdd0046e02c5ce16e8fe16e8fe6a5b7e02c5cdd0046e16e8f
-e16e8fdd0046d7104be16e8fdd0046dd0046e16e8fe16e8fdd0046dd0046e16e8fe16e8fdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dfd9dae16e8fdfd9dae16e8f
-e02c5cdfd9dae02c5cfdfdfdd7104be02c5cdfd9dad7104bdd0046dfd9dae16e8fdd0046dfd9da
-e16e8fd7104bdd0046e6a5b7e6a5b7d7104bdd0046e6a5b7e16e8fd7104bdd0046e16e8fe6a5b7
-d7104bd7104bdd0046dfd9dae16e8fdd0046dfd9dae16e8fdd0046e16e8fdfd9dadd0046e16e8f
-fdfdfde16e8fdd0046e16e8fdd0046dd0046dfd9dadfd9dadd0046dd0046e6a5b7e6a5b7dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e6a5b7e6a5b7e6a5b7e02c5c
-e02c5cdfd9dae6a5b7e16e8fdd0046e6a5b7e6a5b7dd0046dd0046e16e8fdfd9dadd0046e6a5b7
-e6a5b7e16e8fdd0046e6a5b7dfd9dae16e8fdd0046e16e8ffdfdfde6a5b7d7104be02c5cdfd9da
-dfd9dae02c5cdd0046dfd9dae02c5ce02c5cfdfdfddd0046dd0046e02c5cfdfdfdd7104be16e8f
-e16e8ffdfdfde16e8fe16e8fdd0046e02c5ce16e8fdfd9dae02c5cdd0046e6a5b7e16e8fdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dfd9dae16e8fdd0046dd0046
-e02c5cdfd9dadfd9dae16e8fdd0046e16e8fdfd9dadd0046dd0046e6a5b7e6a5b7dd0046dfd9da
-e16e8fdd0046dd0046e6a5b7e6a5b7dd0046dd0046dd0046e02c5cdfd9dae16e8fdd0046d7104b
-e6a5b7e6a5b7dd0046dfd9dae02c5cd7104bfdfdfde02c5cdd0046e02c5cfdfdfddd0046e16e8f
-d7104be16e8ffdfdfde6a5b7dd0046e16e8fe16e8fdfd9dae6a5b7dd0046e6a5b7e16e8fdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dfd9dae16e8fdd0046dd0046
-e02c5cdfd9dae02c5cdfd9dae02c5cd7104be6a5b7e16e8fe16e8fe6a5b7e02c5cdd0046dfd9da
-e16e8fdd0046dd0046e6a5b7e6a5b7e16e8fdd0046e16e8fe16e8fe6a5b7e02c5ce02c5ce16e8f
-e16e8fe16e8fdd0046dfd9dae16e8fdd0046e16e8fe6a5b7e02c5ce6a5b7e16e8fdd0046e16e8f
-e02c5cdd0046e16e8fe6a5b7d7104be16e8fdd0046e02c5cdfd9dadd0046e6a5b7e6a5b7e16e8f
-d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd7104bdd0046dd0046
-dd0046d7104bdd0046d7104bd7104bdd0046dd0046e02c5ce02c5cdd0046dd0046dd0046d7104b
-d7104bdd0046dd0046d7104be02c5ce02c5cdd0046d7104be02c5cd7104bdd0046d7104be02c5c
-e02c5cdd0046dd0046d7104bd7104bdd0046dd0046e02c5ce02c5cd7104bdd0046dd0046d7104b
-dd0046dd0046dd0046d7104bdd0046d7104bdd0046dd0046d7104bdd0046d7104be02c5ce02c5c
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104be02c5cdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427d86427
-e02c5ce02c5cd86427d86427e02c5cdd0046dd0046dd0046dd0046e02c5cf9f302f9f302d8ac0f
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427f9f302
-f9f302f9f302f9f302d8ac0fb01534dd0046dd0046dd0046dd0046d86427f9f302f9f302f9f302
-d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046d7104bd8ac0fd8ac0fd86427
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046b01534d86427
-dd0046dd0046dd0046dd0046d7104bd86427dd0046d7104bd86427d86427e02c5cdd0046dd0046
-d7104be02c5ce02c5ce02c5ce02c5cdd0046d7104be02c5ce02c5ce02c5ce02c5cdd0046e02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5cdd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427f9f302d8ac0f
-dd0046dd0046d7104bd86427f9f302f9f302d86427d8ac0ff9f302f9f302f9f302d86427dd0046
-e02c5cd8ac0ff9f302f9f302f9f302d7104be02c5cd8ac0ff9f302f9f302f9f302d7104bd86427
-d8ac0ff9f302f9f302f9f302f9f302a6385ae02c5cd8ac0ff9f302d8ac0fd86427dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046d86427f9f302f9f302f9f302d8ac0f
-dd0046e02c5cd8ac0ff9f302f9f302f9f302d86427b01534b01534f9f302f9f302f9f302e02c5c
-dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046
-d7104bd8ac0ff9f302f9f302f9f302d7104bdd0046d8ac0fd8ac0fb01534dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046d86427f9f302f9f302d8ac0f
-dd0046dd0046b01534f9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302d86427
-dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046
-dd0046d7104bf9f302f9f302f9f302d8ac0fd86427d8ac0fb01534dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d8ac0f
-dd0046dd0046dd0046f9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a
-dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046
-dd0046dd0046e02c5cf9f302f9f302f9f302f9f302b01534dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d8ac0f
-dd0046dd0046d7104bf9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a
-dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046
-dd0046dd0046dd0046d8ac0ff9f302f9f302f9f302d86427dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046e02c5cd7104be02c5cf9f302f9f302d8ac0f
-dd0046dd0046d7104bf9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a
-dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046
-dd0046dd0046e02c5cd8ac0fd8ac0ff9f302f9f302f9f302e02c5cdd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427
-f9f302f9f302d8ac0fdd0046dd0046dd0046e02c5cf9f302b01534d7104bf9f302f9f302d8ac0f
-dd0046dd0046dd0046f9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a
-dd0046dd0046d8ac0ff9f302f9f302e02c5cdd0046e02c5cf9f302f9f302f9f302d7104bdd0046
-dd0046d7104bf9f302a6385add0046d8ac0ff9f302f9f302f9f302d7104bdd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302
-f9f302f9f302f9f302d86427e02c5cd86427f9f302f9f302b01534d86427f9f302f9f302f9f302
-e02c5cd7104bd86427f9f302f9f302f9f302d86427dd0046e02c5cf9f302f9f302f9f302d8ac0f
-e02c5cdd0046d86427f9f302f9f302f9f302d8ac0fd8ac0ff9f302f9f302f9f302d8ac0fe02c5c
-d86427f9f302f9f302d7104bdd0046d86427f9f302f9f302f9f302d8ac0fe02c5cdd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd8ac0fd8ac0f
-d8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd86427d8ac0fd8ac0fd8ac0fd8ac0f
-d8ac0fd86427d8ac0fd8ac0fd8ac0fd8ac0fd8ac0fb01534d8ac0fd8ac0fd8ac0fd8ac0fd8ac0f
-d86427dd0046dd0046d86427d8ac0fd8ac0fd86427b01534d8ac0fd8ac0fd86427b01534d86427
-d8ac0fd8ac0fd8ac0fd86427e02c5cd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd7104bdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046b01534dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427d86427dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046e02c5cd8ac0fd8ac0fd8ac0fd86427d8ac0f
-d8ac0fd86427dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d7104bdd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427f9f302f9f302b01534e02c5c
-f9f302f9f302e02c5cdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104b
-dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427d86427dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302dd0046dd0046
-f9f302f9f302d86427e02c5cd8ac0fd86427d8ac0fd8ac0fd7104bd7104bd86427d86427d8ac0f
-d8ac0fe02c5cdd0046dd0046d86427d8ac0fd86427d8ac0fd86427d86427d7104be02c5cd8ac0f
-d86427f9f302d8ac0fdd0046d86427d8ac0fd8ac0fd8ac0fe02c5cdd0046d7104bd86427d8ac0f
-d86427d8ac0fd8ac0fd86427d8ac0ff9f302d8ac0fe02c5cdd0046d7104bd86427d8ac0fd86427
-d8ac0fd8ac0fd86427d86427d8ac0fd8ac0fe02c5cdd0046d7104bd86427d8ac0fdd0046d7104b
-d86427d8ac0fd86427d8ac0ff9f302d86427dd0046dd0046d86427d8ac0fd86427d8ac0fd86427
-d86427d7104bdd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d7104bd86427
-f9f302f9f302a6385af9f302f9f302d8ac0fd8ac0ff9f302a6385ad8ac0ff9f302b01534dd0046
-f9f302f9f302e02c5cd86427f9f302d86427dd0046d8ac0ff9f302d86427d86427f9f302f9f302
-d8ac0ff9f302d8ac0fd8ac0ff9f302a6385ae02c5cf9f302d8ac0fd7104bd8ac0ff9f302d8ac0f
-b01534d86427f9f302d8ac0fb01534d86427f9f302d8ac0fdd0046d8ac0ff9f302f9f302b01534
-d86427f9f302f9f302b01534d86427f9f302d8ac0fdd0046d86427f9f302f9f302dd0046d86427
-f9f302f9f302a6385ab01534f9f302f9f302e02c5ce02c5cf9f302d8ac0fb01534d86427f9f302
-d8ac0fb01534dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d86427d8ac0f
-d8ac0fa6385add0046d8ac0ff9f302d86427d7104bb01534d86427f9f302d8ac0fdd0046dd0046
-d86427f9f302d8ac0fd8ac0ff9f302d86427dd0046d8ac0ff9f302d86427dd0046f9f302f9f302
-b01534b01534b01534a6385ab01534d7104bd86427f9f302d8ac0fdd0046e02c5cf9f302d8ac0f
-dd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046
-e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046d7104bf9f302f9f302dd0046dd0046
-f9f302f9f302d7104bdd0046d8ac0ff9f302a6385ad86427f9f302d8ac0fdd0046d86427f9f302
-d86427dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302b01534b01534
-b01534dd0046dd0046d8ac0ff9f302d86427dd0046dd0046d86427f9f302d8ac0fdd0046dd0046
-d86427f9f302d8ac0fd7104bf9f302d8ac0fe02c5cf9f302d8ac0fb01534dd0046f9f302f9f302
-b01534dd0046dd0046d7104bd8ac0fd8ac0fd86427f9f302d8ac0fdd0046e02c5cf9f302d8ac0f
-dd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046
-e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046d7104bf9f302f9f302dd0046dd0046
-f9f302f9f302d7104bdd0046d8ac0ff9f302a6385ad7104bd8ac0ff9f302e02c5cd8ac0ff9f302
-b01534dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302dd0046dd0046
-dd0046dd0046dd0046d8ac0ff9f302d86427dd0046dd0046e02c5cf9f302f9f302dd0046dd0046
-d86427f9f302d86427d7104bd8ac0fd8ac0fd86427d86427b01534dd0046dd0046f9f302f9f302
-b01534dd0046dd0046d8ac0ff9f302b01534d86427f9f302d8ac0fd7104be02c5cf9f302d8ac0f
-dd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046
-e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046d7104bf9f302f9f302dd0046dd0046
-f9f302f9f302d7104bdd0046d8ac0ff9f302e02c5cd7104bd8ac0ff9f302d86427d86427b01534
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046d7104bd8ac0ff9f302f9f302d86427dd0046
-dd0046dd0046e02c5cd8ac0ff9f302d8ac0fd7104bdd0046dd0046d86427f9f302d8ac0fd86427
-d8ac0fd86427dd0046e02c5cf9f302f9f302f9f302f9f302f9f302d86427d86427f9f302f9f302
-d86427d7104bdd0046d8ac0ff9f302d8ac0fd86427f9f302f9f302d86427d8ac0ff9f302f9f302
-e02c5cd86427f9f302f9f302e02c5cd8ac0ff9f302f9f302d86427d86427f9f302f9f302e02c5c
-d86427f9f302f9f302e02c5cd86427f9f302f9f302d86427d86427f9f302f9f302d86427d86427
-f9f302f9f302d86427e02c5cf9f302f9f302d8ac0fd7104bd8ac0ff9f302f9f302f9f302f9f302
-d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046d7104ba6385ab01534b01534a6385add0046
-dd0046dd0046d7104ba6385ab01534a6385ab01534dd0046dd0046dd0046b01534a6385aa6385a
-b01534dd0046dd0046e02c5cd8ac0fd8ac0fd8ac0fd8ac0ff9f302f9f302a6385ab01534b01534
-a6385ad7104bdd0046d7104ba6385ab01534dd0046b01534b01534d7104ba6385ab01534a6385a
-b01534a6385ab01534a6385ab01534a6385ab01534b01534a6385aa6385ab01534a6385ab01534
-a6385ab01534b01534b01534a6385ab01534b01534a6385aa6385ab01534b01534a6385aa6385a
-b01534b01534b01534b01534a6385ab01534a6385ae02c5cd8ac0fd8ac0fd8ac0fd8ac0ff9f302
-f9f302e02c5cdd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046f9f302f9f302dd0046dd0046dd0046f9f302d8ac0fdd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046d8ac0ff9f302d7104bdd0046dd0046d8ac0f
-f9f302b01534dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046e02c5cd8ac0fd8ac0fd86427d86427d86427b01534dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cd8ac0fd8ac0fd86427d86427d8ac0f
-b01534dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046b01534b01534b01534dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046b01534b01534b01534dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bd7104bd7104bd7104bd7104bdd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bdfd9dadfd9dadfd9dadfd9dadfd9dadfd9da
-dfd9dadfd9dadfd9dadfd9dae16e8fe02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104bdd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfde6a5b7dfd9da
-fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfde6a5b7d7104b
-e6a5b7fdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-e02c5cd7104be02c5ce02c5cd7104be02c5ce02c5cd7104be02c5ce02c5ce02c5cd7104bd7104b
-d7104bd7104bdd0046dd0046d7104bd7104bd7104be02c5cd7104be16e8fe02c5cd7104be02c5c
-e02c5cd7104bd7104bd7104be02c5cd7104be02c5ce02c5cd7104bd7104bd7104bd7104bd7104b
-d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfde6a5b7fdfdfde6a5b7
-b01534e6a5b7fdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c
-e16e8fe16e8fe02c5ce02c5cd7104be16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f
-e02c5ce16e8fd7104be02c5ce16e8fe16e8fe16e8fe02c5cd7104be16e8fe02c5ce02c5ce02c5c
-e16e8fe16e8fe16e8fe02c5ce16e8fd7104be02c5ce16e8fe02c5ce16e8fe16e8fe16e8fe16e8f
-e02c5cdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfde16e8fdfd9dafdfdfdfdfdfd
-e6a5b7b01534e6a5b7fdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-d7104bd7104bd7104bd7104bdd0046d7104bd7104be02c5cd7104bd7104bd7104bd7104bd7104b
-d7104bd7104bdd0046d7104bd7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104b
-d7104be02c5cd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bd7104bd7104bd7104b
-d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfde6a5b7e02c5ce16e8fe02c5ce02c5c
-e02c5cb01534e02c5cfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bdfd9dae02c5ce02c5ce02c5ce16e8fe16e8f
-e6a5b7e6a5b7e6a5b7fdfdfde16e8fdd0046e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104b
-e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5cd7104be02c5ce02c5ce02c5cdd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bdfd9dae6a5b7dfd9dafdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046d7104be02c5cd7104bd7104bd7104bd7104be02c5c
-e02c5ce02c5cd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104be02c5ce02c5c
-d7104bd7104bd7104bd7104be02c5cd7104be02c5cd7104bd7104be02c5ce02c5cd7104bd7104b
-d7104bd7104be02c5ce02c5ce02c5cd7104bd7104be02c5cd7104bd7104bd7104bd7104bd7104b
-d7104be02c5ce02c5cd7104bd7104bd7104be02c5cd7104bd7104bd7104bd7104bd7104bd7104b
-e02c5cd7104bd7104bd7104be02c5ce02c5ce02c5cd7104bd7104bd7104be02c5ce02c5cd7104b
-d7104be02c5cd7104bd7104bd7104bd7104bdd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdb8b3c15754525754525754528d8b8e
-5754525754528d8b8efdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfddfd9dab8b3c1b8b3c1dfd9dadfd9da
-b8b3c1b8b3c1b8b3c1fdfdfde16e8fdd0046dd0046dd0046dd0046e02c5ce02c5ce02c5ce02c5c
-d7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5c
-e02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5c
-e02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5cd7104bdd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046d7104be02c5ce02c5ce02c5c
-d7104bd7104bd7104be02c5ce02c5ce02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5c
-d7104bd7104be02c5ce02c5ce02c5cd7104bd7104be02c5cd7104be02c5cd7104be02c5ce02c5c
-e02c5cd7104be02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5cd7104bd7104b
-e02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5cd7104bd7104bd7104be02c5c
-e02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5c
-e02c5ce02c5ce02c5cd7104bdd0046dd0046dd0046dd00460d0c09
-0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
-fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046
-dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/prof.gif b/Docs/Books/prof.gif
deleted file mode 100644
index 8bb86295ab7..00000000000
Binary files a/Docs/Books/prof.gif and /dev/null differ
diff --git a/Docs/Books/prof.txt b/Docs/Books/prof.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/pthreads.eps b/Docs/Books/pthreads.eps
deleted file mode 100644
index 183b792c639..00000000000
--- a/Docs/Books/pthreads.eps
+++ /dev/null
@@ -1,1212 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/pthreads.eps
-%%CreationDate: Sun Dec 31 14:31:11 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 296 383
-%%EndComments
-%%BeginPreview: 100 131 1 131
-% fffffffffffffffffffffffff0
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000008000000000000000010
-% 80000020000004028000000010
-% 80000044110004020000000010
-% 80000010511325224989251010
-% 80000083111249024099082010
-% 80000020000020200a00000010
-% 80000000000000000100002010
-% 80002000000000000000000010
-% 80004000000000000000000010
-% 80020800880000400808830010
-% 80002008000102100000048010
-% 80000009400100000008500010
-% 80020000000092406000008010
-% 80100008404000000008080010
-% 80002000080140400200022010
-% 80420008400000044849008010
-% 80004800000141410000140010
-% 80000000000000000000000010
-% 80020000000000000000000010
-% 80100000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000004000000000000000010
-% 80000004000000000000000010
-% 8000000d000000000000000010
-% 8000000c080000000000000010
-% 8000000d947000000000000010
-% 8000000f68a000000098000010
-% 8000000ca87800000000000010
-% 80000007208000000000000010
-% 80000004a1cc00000094800010
-% 80000001564200000000000010
-% 800000065a4200000000000010
-% 8000000b604400000005c00010
-% 8000000d904200000080000010
-% 8000000b784100000000000010
-% 8000000d466600000000000010
-% 8000000d846200000000000010
-% 8000141d223600000000000010
-% 8000fb9f932c000100a2ca0010
-% 80034e9ea13c00029002000010
-% 800ef79b2934000b3000000010
-% 8017570c919c0008e5baac0010
-% 802eed0c91980005c000000010
-% 8017ba4f8da8000a8000000010
-% 8015c4ad034c0012036d700010
-% 800f725f42e40027004a500010
-% 8007d4bb802c00280000000010
-% 80036836ac14004b8000000010
-% 8007dead180800910000000010
-% 8006ffdfba0e01480000000010
-% 8003dffd370405b00391000010
-% 80015dff7f0605e00028000010
-% 8002afdb360209600000000010
-% 80058fb7e90611b00000000010
-% 800abdff7401010802e4e80010
-% 800557eff40340b00000000010
-% 80010fbeac8281c00000000010
-% 8006abfb770182400164000010
-% 800d5fefd40286c00000000010
-% 8035ebfff50504f00000000010
-% 807f7d5dd3f94d800000000010
-% 8005d7a7bed60d000000000010
-% 800bbfffed7fdb000000000010
-% 801ef77f76b5fe4000d3a00010
-% 8035adebaf7f7e000000000010
-% 800b6f7f7eebda800000000010
-% 80005aefdbdf740402ab400010
-% 80005f7b7ef5b0000090000010
-% 8002d2def7bb80000000000010
-% 8000ab75beee20040000000010
-% 8002aa8437b4011002a8000010
-% 80055500d5ea01000000000010
-% 8000014012a804000000000010
-% 80000a9a04e000000000000010
-% 800024a0000000000000000010
-% 8000552a400000400000080010
-% 800092ec8000000001de580010
-% 8000553e040000000000000010
-% 8000a4b4420000000000000010
-% 8000aaa1040000000154a80010
-% 8000552c580000040000000010
-% 80001ca2a00000080000000010
-% 80001faac00000100179b00010
-% 80003bffc00000800000000010
-% 8000dfdb400013000000000010
-% 8002af76d00110000000000010
-% 800dfeedd56880000000000010
-% 80375bfb280000000000000010
-% 802af7dec41200000000000010
-% 8035feba7c4000000184000010
-% 802b5bf54900000003cfc00010
-% 800d6fa97000000003c9400010
-% 8003b77f8000000001cf400010
-% 80005ab9000000000008000010
-% 80000240000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% 80000000000000000000000010
-% ffffffffffffd4924924924930
-% edb6db6ddddb41249249249250
-% dbedf6df7776d4492492492490
-% febf5fb2dddfa1224924924930
-% d5ebf579b77554881209249250
-% ff7eafd19d15c1202040092490
-% d5d5faffb77b504a9515524930
-% ff7f5faafdd6ca9040a0049250
-% d5d5f5ffab7fd125150aa92490
-% ff7f5f55ffd54448a251124930
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-281.300715 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 131 8
-% Transformation matrix
-[ 100 0 0 131 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
-fffffffffff7fffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff7ffffffffffff
-f7f7f7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffffff
-f7f7f7fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffff
-f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffefefeffffffffffffff7f7f7
-fffffffffff7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffff7f7f7fffffff7f7f7fffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffff
-ffffffefeff7fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-efefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffff
-fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffefeff7
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff7ff
-ffffffffffffefeefffffffffffffff7f7f7f7f7f7ffffffffffffffffffefefeffffffff7f7f7
-fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7f7f7fffffffffffffffffffffffff7f7fffff7ffffffffefeeffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-d6d6dee7e6ef9991aaffffffffffffffffffffffffefefeff7f7effffffffffffff7f7f7ffffff
-fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffefefeffffffff7f7f7fffffffffffffffffffffffffff7ffffffffa8a8b5a8a8b5fff7ff
-f7effff7efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeeffdedef0
-979ca9d6d6eb796e82f7f7ffffffffffffffffffffd6d6d6dededed6d6d6f7f7f7e7e7e7f7f7f7
-d6d6d6fffffff7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-dedede81897cffffffffffffffffffffffffffffffd6d6def7f7f7fff7ff555682e7e6ef7e7b9c
-fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffefefefcbcec5d6d6d6efefefffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c7b7c
-cbcedbb7b3c4d6d6eb9c9fc0ffffffefefeff7f7ffd6d6ebd6d6eb67687ccbcedbffffffdedde7
-7c7b7cf7f7ffefeff7d6d6ded6d6ebefeff7efeff7d6d6ebe7e6eff7f7ffffffffdedef0efeff7
-d6d6de7c7b7cffffffdedde7efeeffe7e6efd6d6ded6d6ebf7f7ffffffff7e7b9cd6d6dea8aac6
-e7e3f7f7f7ffefeff7d6d6deefeff7ffffffe7e6efdedde7ffffffefeff7ffffffdedde7efeff7
-efeff7e7e6effff7ffffffffdedde7efeff7ffffffe7e6efffffffe7e6efdedde7fffffff7f7f7
-e7e6efffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffff7f7ef
-fffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff7ffe7e7e7c8c5d5
-efeff7848e9bd6d6eba5a5a6cbcedb979ca9ffffff9c9fc0bac6d8848e9bcbcedbffffffefeff7
-7e7b9cf7f7ffffffffa8aac667687ccbcedbc4d3ed5556824c5299efeff7dedef05556829c9fc0
-c4d3ed7e86b0d6d6de52457ac4d3edb7b3c47e7b9cd6d6ebfffffff7f7ff796e827e86b0bac6d8
-7e7b9cefeeff9c9fc07e86b0c8c5d5d6d6eb55568252457adedef0d6d6ebbac6d85556829c9fc0
-a8aac67e7b9cffffffdedef07e7b9ccbcedbd6d6eb9c9fc0e7e3f7848e9b9991aaffffffbbc1c8
-9991aaffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffff7fffff7fffff7fffff7fffffff7f7f7fffffffffffff7f7ffffffffffffff7c7b7cdedef0
-bdbdbda8aac6efeff7efeff77e7b9c7e7b9cefeff79c9fc0a8aac67e7b9cbac6d8d6d6dea3c4da
-67687cd6d6ebf7f7ffbac6d867687ccbcedbffffff7e86b0555682bac6d89c9fc0555682c4d3ed
-b7b3c47e7b9cd6d6eb412f549c9fc0efeeffbac6d8cbcedbf7f7ffffffff67687cffffffdedde7
-67687cffffffbac6d8cbcedbbac6d8a3c4da9c9fc0557085dedef0d6d6eb7e86b0555682979ca9
-d6d6eb9c9fc0ffffffd6d6ebc4d3ede7e3f77e7b9c7e7b9ce1eeffbac6d8ffffffd6d6dea8a8b5
-c8c5d5fffffffffffff7f7ffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffff7f7f7fffff7ffffffffffffffffffffffffc6cecef7efff
-979ca9ffffffdedef0dedde7979ca9979ca9bbc1c8ffffffa8b9bda8a8b5bac6d8bac6d8cbcedb
-9c9fc0cbcedbe7e3f7d6d6deb7b3c4dedef0ffffffbac6d8a8aac6bac6d8a8aac6a8aac6d6d6eb
-a8aac6bac6d8e7e3f7979ca9e7e6efd6e6ed9991aabac6d8f7f7ffffffffa8b9bdf7ffffefefef
-a8aac6ffffffefeff79c9fc0c8c5d5b7b3c4c4d3eda8aac6efeff7b7b3c4bac6d8b7b3c4bac6d8
-efeff7cbcedbf7f7ffefeeffe7e6efeff7ffb5bdbda8a8b5deedeed6d6ebffffffdedde7848e9b
-e7e6effffffffffffffff7ffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7ffe7e7e7e7dde7dedede
-d6d6d6cddadadae0d6efefefe7e7e7fffffffffffffffffff7f7f7fffffff7f7ffffffffffffff
-fffffff7f7fffffffffffffffffffffffffff7f7fffffffffffffff7fffff7f7ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff7f7fffffffff7f7fff7f7fffffffffffffffffffff7fffffffffffffffff7ffff
-f7fffff7f7f7f7fffff7f7ffffffffb7b3c467687ce7e6efffffffffffffffffffffffffffffff
-f7fffff7f7fffffffffffffff7fffffffffffffffffffffffffffff7ffffffffffe7e6efa8a8b5
-dedde7ffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffe7e6efe7e7e7efefefefefef
-e7e7e7efefefe7e7e7f7f7f7dedede9a9291d6dedefffffff7f7f7ffffffffffffffffffffffff
-f7f7ffffffffffffffffffffffffffe7f4f7f7f7f7f7f7f7f7fffffffffffffffff7f7f7ffffff
-fffffff7fffffffffffffffff7fffff7fffffffffff7f7fff7f7ffffffffffffffffffffffffff
-f7fffff7f7f7ffffffffffffffffffffffffe7f4f7fffffffffffffffff7ffffffffffffffffff
-fffffff7fffffffffff7f7f7f7f7fff7ffffa8a8b5deedeeffffffffffffffffffffffffffffff
-fffffffffffff7f7fff7ffffffffffefefeff7fff7ffffffe7f2edffffffffffffffffffd6d6de
-d6d6defffffffff7ffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffefeff7e7e6efd6d6d6f7f7f7
-f7f7efbdbdbddededec6c6c6a5a5a6efefefaeadadd6d6d6ffffffefefefdedde7cececee7e7e7
-dededed6d6d6d6d6d6cecececececee7e7e7e7f2edcddadacddadacdd8ccd6d6d6f7fff7ddeade
-dededec6ceced6d6d6deedeee7f2ede7f2edd6dedec6ceced6d6dededde7bbc1c8efefeff7f7f7
-ffffffe7f4f7cddadad6d6d6c6c6c6d6dededededecbcec5dae0d6fffffffffff7fffffff7fff7
-efefefd6dedecdd8cce7f4f7fffffff7f7f7ffffffffffffd6dedec6cecec6c6c6d6deded6d6d6
-c6ceced6dedefffffffffffffffffff7f7f7f7fff7cdd8ccc6c6c6cdd8ccb7bcadf7fff7f7f7ff
-efeff7ffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffefeff7b5b5b5efefef
-f7f7f79b9c9cf7f7f7f7f7f7b5b5b5b5b5b5ffffff9b9c9cc6c6c6c6c6c6e7e7e7d6d6d6dedede
-f7f7efdedededededecbcec5f7f7f7cececeb5b5b5d6dedeefefe7f7f7f7b5b5b5d6d6d6c6c6c6
-e7f2edf7fff7d6dedecececeddeadec7c6bcdededef7f7ffc6ceced6dedef7f7efe7f4f7aeadad
-f7fff7bcc8bcc7c6bcf7f7efcddadab9bdb5cdd8ccf7fff7efefe7efefe7fffffffffffff7fff7
-dededeffffffbdbdbda5a5a6ffffffffffffffffffe7e7e7b5bdbdefefefdeedeeb5b5b5bbc1c8
-ffffffcececea5a5a6e7f2edf7fff7ffffffaeadadddeade9fa89c7c7b7cefefe7bdbdbde7e6ef
-fffffff7f7fffffffff7f7ffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7f7fffffffff7f7ffbbc1c8ffffff
-f7f7f7bdbdbdffffffffffffdededea5a5a6ffffffffffffc6c6c6bdbdbdefefe7d6dedecec6c6
-fffffff7f7ef898c8caeadaddae0d6bdbdbdb5b5b59fa89cc6c6c6ffffffbdbdbdefefefdedede
-cdd8ccffffffcdd8ccefefefffffffcececed6dedeffffff9a92919b9c9cf7f7f7fffff7e7f2ed
-e7f2edcdd8ccb5b5b5ffffffcbcec5b9bdb5efefe77c7b7cdae0d6ddeadef7f7f7fffffff7f7f7
-b5b5b5efefefe7f2edbcc8bce7e6effffffff7ffffffffffa8b9bdfffffff7f7f79a9291dedede
-c6c6c6ffffffb5b5b5aeadadffffffa8b9bddedede7c7b7cb9bdb5c6c6c67c7b7ccdd8cce7e7e7
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffefeff7b5b5b5f7f7f7
-ffffffaeadadffffffffffffdededebdbdbdffffffffffffbdbdbde7e7e7cec6c6efefefd6dede
-ffffffdae0d6898c8cffffffcdd8cca5a5a6d6dede898c8cbbc1c8ffffffdededef7f7ffefefef
-c6ceceefefefc6cecefffffffffffff7f7f7efefefffffff848e9b9b9c9cefefefffffffefefef
-f7f7f7dededeaeadadffffffcececec6c6c6ffffffd6d6d6f7f7f7cececef7fff7ffffffefefef
-b5b5b5f7f7f7ffffffbdbdbdbdbdbdffffffffffffffffffbdbdbdefeff7f7fff7a8a8b5ffffff
-d6d6debbc1c8ffffffa5a5a6c6c6c69b9c9cdededeffffff9a9291bbc1c8aeadadffffffefefef
-fffffffff7ffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffd6cdd7bbc1c8efefefd6d6def7f7ff
-ffffffaeadadffffffffffffdededec6c6c6ffffffffffffbdbdbdc7c6bcefefefffffffdae0d6
-ffffffefefe79b9c9cfffffff7f7f7efefefffffff81897cb5b5b5ffffffbbc1c8d6cdd7c6cece
-efeff7f7f7f7c6c6c6ffffffffffffd6d6dee7e6efffffff898c8c7c7b7cf7f7f7dedede9a9291
-ffffffd6d6de9b9c9cffffffaeadad7c7b7ca8b9bddededeefefefe7e7e7fffffffffffff7f7f7
-7c7b7c898c8cffffffe7dde7d6d6defffffffff7ffffffffb5b5b5ffffffefeff7848e9bffffff
-e7e6efd6cdd7fffffff7f7f7efeff7c6b9c6d6d6d6ffffffffffffdedede898c8cc6c6c6f7f7f7
-fffffff7f7f7ffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffe7e6efefe6f2efeff7b5b5b5efeff7
-f7f7f7b5b5b5f7f7f7ffffffc6cecebdbdbdffffffffffffc6c6c6e7e7e7fffffff7f7f7e7e7e7
-ffffffe7e7e7898c8cf7f7f7fffffff7f7f7ffffff9b9c9ccececeffffffefefefe7e6eff7f7f7
-fff7ffefefefbbc1c8f7f7ffffffffefeff7efefefffffffb5b5b5cececedededea5a5a6bbc1c8
-ffffffe7e7e7c6c6c6f7f7f7f7ffffe7e7e7e7dde7dededeefeff7fffffffffffff7f7f7c6b9c6
-ffffff898c8ca5a5a6ffffffbdbdbdcececeffffffffffffb5b5b5fff7fffff7f7b5b5b5ffffff
-e7dde7dededeffffffffffffe7dde7ffffff979ca9dededee7e6efffffffffffffdededecbcec5
-fffffff7f7f7f7f7f7fffffffffff7ffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffefefefcbcedbf7f7ffc6cecefff7ff
-ffffffaeadadffffffffffffd6d6d6aeadadffffffe7e7e7efefeff7f7f7ffffffffffffdedede
-ffffffe7e7e79b9c9cfffffffffffff7f7ffffffff7c7b7cbdbdbdffffff979ca9e7e7e7dedde7
-bdbdbdffffffd6d6deffffffffffffe7e7e7e7e7e7ffffff898c8cbdbdbd81897cefefefffffff
-e7e7e7efefefc6c6c6ffffffb5b5b5aeadadefefeff7f7ffd6d6d6cececeffffffe7e6efaeadad
-e7e7e7fffffff7f7f7ffffffc6c6c6c6c6c6ffffffffffffbdbdbdffffffefeff7b5b5b5ffffff
-e7e7e7bbc1c8ffffffdedde7dedde7e7e7e7e7e6efbbc1c8848e9befefefe7e7e7e7e7e79b9c9c
-fffffffffff7fffff7fffffffffffffffff7ffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffc6cece898c8cd6d6ded6cdd7f7f7ff
-f7f7f7616f61e7e6efdededeaeadadc6c6c6ffffffaeadadcececeffffffffffffffffffbbc1c8
-ffffffe7dde77c7b7cffffffefeff7ffffffffffff796e82bdbdbdffffffd6cdd7ffffffe7e7e7
-d6cdd7f7f7f7bbc1c8efefefffffffe7e7e7e7e7e7ffffff898c8ccececea5a5a6f7f7f7f7f7f7
-bdbdbdf7f7f7d6d6d6efefefbdbdbdaeadadf7f7f7aeadadf7f7f7aeadade7e7e7b5b5b5efefef
-9fa89cdededea5a5a6a5a5a6ffffffb9bdb5cdd8ccffffffa5a5a6f7f7eff7f7f79b9c9cefefef
-bdbdbda5a5a6ffffffa5a5a6c6c6c6c6c6c6f7f7f7bdbdbddededea5a5a69b9c9cefefef9fa89c
-fffffffffffffffff7fffffffffffffffff7ffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffefeff7f7f7f7ffffffcececef7f7f7
-fff7ffa5a5a6d6d6d6c6c6c6a5a5a6f7f7f79b9c9cc6c6c6ffffffffffffffffffe7e6efe7e6ef
-ffffffefefefa8a8b5f7f7f7f7f7f7fffffff7f7f7aeadadd6d6d6ffffffd6d6d6e7e7e7dedede
-efefefffffffe7e7e7e7e7e7f7f7f7cececeefefe7ffffff9fa89ccdd8ccaeadadfffffff7f7f7
-cbcec5ffffffd6d6d69b9c9cbdbdbdaeadade7e7e7aeadadc7c6bcb5b5b5dededeaeadaddedede
-d6d6d6ffffffc7c6bccdd8ccffffffcecececdd8ccdae0d6aeadadfffff7f7f7f77c7b7cc7c6bc
-dae0d6dedede9fa89cc7c6bcffffffaeadadcec6c69b9c9cbdbdbdd6d6d6dededed6d6d6dedede
-fffffffffff7fffffffffff7ffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffdedde7b5b5b5d6d6d6c6ceceffffff
-fffff7dedde7efefefefefe7f7f7f7b5b5b5d6d6d6fffffffffffff7ffffffffffdeedeeffffff
-deedeef7f7f7fffffff7fffff7fffffffffffff7ffffffffe7f4f7e7f2edf7ffffe7f2edf7fff7
-f7f7f7efefefe7f2edf7ffffefeff7efe6f2fff7fff7f7efffffffdededefffffff7f7eff7f7f7
-f7f7f7f7f7f7ffffffdedededededeffffffe7e7e7ffffffc7c6bce7e7e7f7f7f7efefeffffff7
-e7e7e7efefe7fffffffffff7efefe7f7f7eff7f7efdedededededeefefe7efefe7cdd8ccfff7f7
-fffff7d6d6d6c7c6bcfffffffffffffff7f7bdbdbdf7f7f7fff7fff7f7f7dededed6d6d6ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffc6c6c6dededed6d6d6f7f7f7
-f7f7f7a5a5a6efefefdededef7f7efffffffffffffffffffffffffffffffffffffffffffe7f4f7
-e7f2eddeedeee7f4f7f7fffff7fffff7ffffffffffefeff7efefefdeedeee5ffffe5fffffffff7
-efefefefefe7e7f4f7f7fffffffffffff7ffefeff7f7f7f7e7f2edfffff7efefeff7f7f7f7f7f7
-f7f7f7fffffffffffffffffff7f7f7e7e7e7efefefefefeffffffffffffff7f7f7f7f7f7f7f7f7
-fffff7fffffff7f7f7efefefefefe7efefeffffff7fffffff7f7efdededeefefe7fffff7efefef
-dededef7f7efffffffffffffffffffffffffffffffefeff7e7e7e7efefeffffff7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffe7e7e7bdbdbdf7f7f7
-ffffff9a9291e7f2edfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
-fffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffe5ffffefffffffffff
-fffff7fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7cececee7e7e7ffffff
-ffffffaeadadcdd8ccf7f7f7f7f7fffffffffffffffffffffffffffffffffffff7fffff7fffff7
-fffff7fffff7fffffffffffffffffffffffffffffffff7fffff7fff7ffffeffffff7fffffffff7
-fff7fffffff7fffffff7fffff7fffffff7ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffff
-fffffffffffffffffffffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffdededebdbdbdd6d6d6c6c6c6
-b5b5b5c6c6c6d6d6d6f7fffff7fffffffffffffffffffffffffffffffffffffff7ffffefffffef
-ffffeffffff7fffff7fffffffffffffffffffff7fffff7ffffffffffffffffffffffffffffffff
-fff7fffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7efefefefefef
-efefeffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7ffffef
-ffffeffffff7fffffffff7fffff7fffffffffffffffff7fffffffffffffffffffffffff7ffffff
-fffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7f7f7f7f7f7fffffff7f7f7ffffff
-fffffffffffff7f7f7fffffff7fffffffffff7fffffffffffffffffffffffffff7fffff7fffff7
-fffff7fffffffff7fff7f7ffe1eeffeff7fffffffffffffffff7fffff7ffffffffffffffffffff
-fffffffffffffffffff7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-f7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffff
-f7fffff7ffffefffffe1eeffc4d3edbac6d8effffffffffffffffffffffffffffffffffffff7ff
-fffffff7fffff7fffff7fffff7fffff7ffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7fffff7ffffffffffffffffffffffffffffffffffffeffffff7ffff
-efffffefffffcee0ef285297a3c4daf7ffffeffffff7fffff7fffffff7f7fffff7ffffffffffff
-f7ffffeffffff7ffffeffffff7fffff7fff7ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff7f7ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7fffff7fffff7fffffffffffffffffffffffff7ffffefffffefffff
-e5ffffe5ffffa3c4da4f6c9fa3c4dae7f4f7f7ffffe7f4f7f7ffeffffffffffffffffff7ffffff
-effffff7fffff7f7f7efeff7fffff7f7f7efffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff7f7fffff7fff7f7f7fffffff7f7ffffffffffffffffffffffffffffffffffffff
-fff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7fffff7fffff7fffffffffffffffffffffffff7ffffefffffe5ffff
-e5ffffc4d3ed1550782852976784bda8a8b5e7f4f7fffffffff7efded6ccdac7abfff7eff7fff7
-f7fffff7f7f7fffffffbefeffdefe7fef7e7fff7efffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffff7fff7f7fffff7fff7f7fffff7ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7fffff7fffffffffffffffffffffffffffffff7fffff7fffff7ffff
-f7ffffcee0ef1426574f6c9f8ba1c79991aac7c6bcded6cceee1c3e6c196b99f9bdac7abfbfbde
-fffff7fffffffce6eed7ad9dd6aa8afdcfc4fff7efffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7f7f7f7f7f7fffffffffffffffffffffffffffffffffffffffffff7f7ff
-fffffffff7fff7f7fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff7ffff
-f7ffffd6dede1426572f537967687c9d716f9d716fa38457f6cdabc28268e6c196a2763ffbfbde
-fef7e7ded6ccc38a81bf4d3ed66b42d6aa8affffeffffffffffffff7f7f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffff7ffe7dde7dedde7a8a8b5d6d6ebdedef0c8c5d5b7b3c4ffffff
-f7f7fffffffff7f7f7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7fffff7fffffffffffffffffffffffffff7fffff7ffffefffffeffffff7
-ffffffd6dede1e1f3a1e1f3a4d48538040497d3d30a16d56c18040c48756bf4d3ed2a46af2ebd6
-eee1c3a16d56a16d569e2e11bf4d3ee18855fdd0ceffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffff7ffffffffb5b5b5cbcedb67687cd6d6dee7e6ef67687c67687cffffff
-f7f7fffffffff7f7f7f7f7effffffffffff7ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7fffff7fffffffffffffffffffffffffffffffff7ffffefffffefffffef
-fffff7efefef7a68703f3235804049c28268e78673a0563f954713c18040954713f6cdabfdffe7
-fdffe7d7ad9dbf4d3eb62b10b62b10f13f3df3ac92fdefe7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffefefeff7efffe7dde7f7f7f7ffffffd6d6dec8c5d5ffffff
-fffffff7f7ffefeff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7fffff7fffffffffffffffffffffffffffffffffff7ffffefffffef
-fffff7ede8de9d716f9d716f804049bf4d3ed7ad9df3ac92c28268d7ad9deee1c3fdffe7f7f7ff
-b7b3c4c38a81a13e30d66b42f3ac92c28268d6aa8afbfbdefff7effffffff7f7fff7ffffffffff
-ffffeffffff7fffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
-fffff7fffff7fffffffffffffaeef7ffffffffffffffffffffffffffffffffffffffffffffffff
-fff7fffffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7fffff7fffffffffffffff7fffffffffffffffffffffffff7fffff7
-ffffeffdefe7ddcacb846a4ca16d56e88683a13e30e886839d716fc6ceceffffffcee0ef8ba1c7
-616cbf804049a00d08d6aa8afff7f7bab69da16d56f6cdabf2ebd6efefe7f7ffffefffffffffff
-ffffefffffefffffeffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff7
-fffff7fffff7fffff7ffffffffffffb5b5b5e7dde79b9c9cefefefbbc1c87e7b9c9991aa7e7b9c
-bac6d8bac6d8848e9b9991aae7e3f7a8a8b5c8c5d5f7f7ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffe7f4f7f7ffffffffff
-efefeffffffffff7fff3d2dac38a81e88683e78673bf4d3ec6b9c6677e83677e836784bd1e4253
-9991aae78673a00d08c38a81ffffeffbefefd6aa8aa0563feee1c3fffffff7f7f7f7fffffffff7
-ffffefffffeffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
-fffff7fffff7fffff7f7f7f7ffffffdedde7efe6f2e7e6eff7fffff7f7f7efeff7dedef0efeff7
-fff7fff7efffdedef0efeff7fff7ffefeff7f7f7fffffffff7f7ffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7ffffffffff
-f7fffffff7ffc8c5d5796e827a6870c38a81e886839d716f9d716f557085477285557085677e83
-fce6eee88683bf4d3ebea476ffecd0ffffffc38a81bc6a39f6cdabfdefe7fffffff7fffffffff7
-fffff7fffff7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffff7efffffffff
-f7f7ffe7e3f7fffffff7f7fff7f7fff7efffffffffe7e3f7f7ffffffffffefeff7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7fffff7fffffffffffffffffffffffffffff7fffff7fffff7ffffefffff
-f7ffffdeedee6175a76175a72f537967687c7e7b9c9d716f5d324bddcacbffeefffff7f7efefe7
-fdefe7e88683812d0dbea476ffffeffef7e7d2a46ab55d18e28e67fdcfc4fff7ffffffffffffff
-fffffffffff7fffff7fffffff7fffffffffffffffffffffffffffffffffffffffffffffff7ffff
-ffffffffffffffffffefeff7f7f7ffdedef0dedef0f7f7f7c8c5d5efefefffffffefefef796e82
-979ca9848e9b67687c67687cbbc1c8efeeffefeff7efeff7c6c6c6f7f7fffffffff7f7ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffefffff
-efffffcddada142657506fb66784bd4f6c9f2f53799991aac28268a0563fc38a81fce6eeffffef
-ffffefe2c9b9661b0cbea476fbfbdefdffe7f6cdabd66b42e18855f2ebd6fce6eeffffffffffff
-fffffffffff7fffffff7fffff7fffffffffffffffffffffffffffff7fffff7fffff7ffffffffff
-ffffffffffffffffffffffffffffffbbc1c8efeff7a8a8b5e7e6efb5b5b5ffffffefeff7979ca9
-e7e7e7ffffffe7e6efa8a8b5dedde7ffffffa8a8b5e7e6effffffffffffffffffff7f7f7ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7f7fff7f7ffff
-f7ffffcee0ef3f70b43f70b43f70b41b6ea38ba1c76175a77e5640b62b10a00d08f3ac92e2c9b9
-f2ebd6e2c9b9812d0ddea372fff6b6fdffe7eca872ef883abc6a39fdcfc4ffffffefeff7ffffff
-fffffffffffffffffff7fffff7fffffffffffffffffffffffffffff7fffffffffffffffffffff7
-fffff7fffffff7fffff7f7fff7ffffffffffffffffffffffffffffffffffffffffffffffffffff
-f7f7f7e7e6effffffffffffff7f7fff7f7ffffffffe7e6effffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffff7fffff7fff7effff7effffff7ffffeffdffe7fdffe7fdffe7fffff7ffffff
-f7ffffdeedee2852973f70b43f70b41b6ea33f70b46784bd9d716fc28268d66b42bf4d3ebf4d3e
-ffffefdac7ab812d0dd66b42e6c196ffffffdea372b62b10b55d18fdd0cefff7ffffffffffffff
-fffffffffffffffffff7fffff7fffffffffffffffffffff7f7fff7fffffffffff7ffffeffffff7
-ffffeffff7efffffffffffffeff7fff7f7fff7fffff7f7f7fffffffffffffffffffffff7e7f4f7
-fffffffffffff7f7f7fffffff7f7fffffffff7f7f7fffffffffffff7f7ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffefefeffffff7
-f7f7effffff7fef7e7ffffeffef7e7ffecd0f2ebd6ffecd0fbfbdeffecd0f2ebd6fffff7fff7ff
-f7f7ff9c9fc01534701b6ea3616cbf3f70b41b6ea3e1eeffc38a81e2c9b9ffeeffbf4d3ed66b42
-d6aa8af2de95954713b62b10bf4d3efffff7c28268b62b10d66b42fdcfc4fff7ffefeff7ffffff
-f7f7f7ffffffffffffefffffeffffffffffffff7f7ffffefffffeffef7e7ffffefded6ccfbfbde
-fbfbdefef7e7fffff7fffff7fffffff7fffffffffff7f7f7fffffffffff7fffff7fffff7f7f7f7
-fffffff7f7f7fffff7f7f7f7f7f7fffffffff7f7f7e7f4f7fffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff7
-efefe7ffffeff2ebd6dac7abdac7abbea47683814ea18b74bea476a38457d6aa8ae2c9b9fce6ee
-efe6f21426571a378a2852973f70b47b8dc86784bdeff7ff9d716fe88683fdd0cee2c9b9a13e30
-ef883afff6b6e18855bc1111f13f3dc28268d66b429e2e11e28e67f2ebd6fff7ffefeff7ffffff
-f7f7f7fffff7fffffffffffff7fffffffffffffff7fffff7fbfbdefdffe7dac7abbea476ffecd0
-fbfbdefef7e7f2ebd6f7f7eff7fff7f7ffffbcc8bce7f2edfff7efffffffffffffefefe7fffff7
-ffffffffffffffffffffffffffffffefeff7fffffffffffff7f7f7efefeff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffff7f7fff7effffff7fef7e7
-fdffe7c7c6bcbea476846a4c81753383814e626e1f626e1f81753383814ea2763fa16d56fff7ef
-a8a8b50000211a378a2852971a378a2852974c5299b99f9bc38a81e88683d7ad9df3d2dab55d18
-bc6a39e6c196e6c196a00d08f13f3ddd250fb62b109e2e11dac7abfff7f7fff7ffffffffefeff7
-fffffffffff7fffffffffffff7fffff7fffff7f7f7fff7eff2ebd6dac7abd6aa8aa38457ffffef
-eee1c3f2ebd6ffffffefefe7fffff7d6dedecdd8cc616f61ded6cc9a9291aeadadcdd8ccaeadad
-4d48539b9c9c898c8c272522b5b5b5ffffff898c8cb5b5b54d4853bcc8bcf7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffefffffefdac7ab
-bab69d83814e83814e817533626e1f817533817533626e1f42500d605622605622846a4cb99f9b
-a8a8b51426571426571a378a1a378a5058b05058b0c38a81c28268c28268d6aa8af2ebd6e6c196
-954713bea476f3ac92a00d08d30f15dc0c02b70d05c48756f2ebd6fff7fffff7fff7f7fff7f7ff
-fffffffffff7fffffffffffff7fffff7fffffffffffef7e7fbfbdebea476d2a46ac28268c28268
-fffff7bab69da18b74fffffff7f7f7deedeeffffffaeadadefefe7c7c6bccdd8ccefefefcdd8cc
-a5a5a6cececeb5b5b5898c8cdededeffffffc6c6c6cececeaeadadefefeffffff7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffff7effffff7dac7ab83814e
-5c553b5c553b626e1f626e1f42500d626e1f55884455884442500d27381342500d5c553be2c9b9
-d6d6eb142657153470285297616cbf1a378ac4d3edb99f9ba0563fe88683d6aa8afdd0cefdd0ce
-812d0de28e67ffecd0c38a81cc0004dd250fb70d05d7ad9dfffffffaeef7fffffff7f7ffffffff
-fffff7fff7effff7effffffffffffffffffffffffffffff7a38457dea372c28268a13e30a13e30
-c38a817d3d30846a4cfffffffffff7f7f7fff7fffffffffffbefefffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffff7ffffefc7c6bc846a4c7e5640
-42500d5c3f1b42500d626e1f626e1f43711e626e1f55884443711e42500d273813bab69defefe7
-ffffff8ba1c71426573f70b4a6c8eb506fb6142657c7c6bcb99f9b9d716fe78673fdcfc4f3d2da
-a13e30b62b10f3ac92c38a81860002dd250f9e2e11e6c196ffffffffeefff7f7fff7fffff7f7ff
-fffff7ffffefffffeffffffff7fffff7f7f7ffffffc7c6bca16d56f3ac92e28e67c180407e1006
-812d0d661b0c9d716fffffff7c7b7cbdbdbd616f61101715efe6f23f32353f3235545656bbc1c8
-272522979ca95456569b9c9c7c7b7c979ca99a9291101715e7e7e7ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7fffffffffffffffffffffffffffffffffffffff7effffff7a18b74846a4c605622
-5c553b413d1242500d817533626e1f626e1f43711e1c4e0e42500d43711e413d12eee1c3fbfbde
-fff7f7e7e6ef1426571426578ba1c7a3c4da000021aeadadffffff9d716fa16d56fdd0cefdcfc4
-a00d08b62b10e18855f6cdabb62b10b62b10bf4d3ee2c9b9fffff7fffffff7ffffeff7ffffffff
-fff7f7fff7effffffffffffff7ffffffffffffffffd7ad9ddea372a0563fd66b42a13e30812d0d
-a13e309d716ffff7fffff7ffe7e6efdeedeeefeff7e7e7e7efefefe7e6efe7e7e7efefefffffff
-e7e6efefeff7efefefefeff7efeff7f7f7f7f7f7f7dededefffff7f7f7efffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7fffff7fffffff7fffffffffffffffffffffffff7efffffefa18b747e564083814e
-42500d27381342500d413d12626e1f626e1f626e1f626e1f8c611b817533b6a042b6a042bea476
-bea476bab69d796e821e1f3a616cbf555682555682d6e6edfffffffff7ffa16d569e2e11f6cdab
-9e2e11b62b10d35113f3ac92dea372a00d08bc6a39ddcacbfffffff7ffeff7fff7f7fff7ffffff
-ffffffffffffffffffefffffeffffff7fff7fdffe7bea476e28e67e78673e88683a0563f804049
-9d716ffff7fffff7fffff7f7ffffffefeff7f7f7f7f7fffff7fff7f7f7f7ffffffefefefffffff
-fffffff7f7f7ffffffefefefe7e7e7f7f7ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7fffffffffffff7fffff7fffffffffffffffffff7efffffefbea47681753383814e
-1c4e0e43711e103a155c553b5c553b817533a38457b6a042b6a042d2a46ad2a46ac48756ebc07c
-a38457a3845710171552457a9991aa412f54c4d3ede1eefff7f7f7fff7fff2ebd6a0563f9e2e11
-b62b10b62b10d35113e28e67d6aa8a9e2e117d3d30ddcacbffffffeff8eeffffeffffff7ffffff
-fff7fffffffff7ffffe5fffff7fffff2ebd6e6c196c18040da8539eca8729e2e11a16d56d7ad9d
-fff7f7fff7fffff7ffffffff979ca97c7b7c101715c6c6c6616f613154499a9291000000272522
-898c8c616f61ffffff4d48535456564d463cbbc1c8ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffff7fffffffffffffffffff7f7ffffefffffefffffef7da572
-1c4e0e103a1543711e31653542500d626e1f817533b6a042d2a46ac48756d2a46adea372a2763f
-8175337e564027252252457a1e42532f53799991aa9a9291e2c9b9fce6eefffffffffff7a16d56
-c28268a13e30a13e30a13e30b99f9ba8a8b51e1f3ad6cdd7fffffff7ffeff7ffeffffff7fffff7
-fffffffffffff7ffffe7f2edffffefbea476a2763ffcdf6ae18855da8539a0563f8c611bfffff7
-fff7effffffffffffffffffffff7ffffffff7c7b7ce7e7e7545656898c8cc6c6c6a5a5a6616f61
-aeadad898c8ccecece3f32359b9c9c616f61d6cdd7ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffff7efefe7fdffe7f2ebd6
-2b67201c4e0e1c4e0e2b67202b672043711e626e1fb6a042d2a46ae28e67eca872c48756c48756
-817533413d123f32355570850000212445383f3235a18b74b99f9bf2ebd6e2c9b9ddcacbd7ad9d
-fbefeff2ebd6846a4c7a6870c6b9c67e86b0142657b5bdbdfffffffffffff7fff7ffffeffffff7
-fffffffffffffff7effdffe7fff6b6ebc07cc18040ffbc38bc6a39b55d18bc6a39c48756eee1c3
-ffffeffffff7fff7f7f7f7f7fff7f7efefeffffffffffffffffffffffffffffffff7f7f7ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fff7eff8eeddeade
-558844103a151963201963202b672042500d626e1f817533bc6a39eca872f3ac92eca872f3ac92
-a16d56492717616f6167687c67687c846a4c7e5640a16d56bab69ddac7ab605622817533d7ad9d
-fbfbdefff7efffffffc6b9c64c5299477285477285a6c8ebeff7fffffffffffffffffff7f7f7ef
-fffff7fffff7ffffeffbfbded2a46ab6a042ffbc38da8539b55d18a2763feca872a38457846a4c
-fffff7fdffe7f7f7eff7f7eff7f7f7efeff7fff7f7fff7fffff7ffefe6f2fffffffffffff7f7f7
-f7f7f7fffffff7f7f7efefeffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7fffff7ffffffffffe7f2edddeade
-7da5721c4e0e103a151c4e0e2b672043711e42500d5c3f1b812d0dd66b42c28268e78673e18855
-c282685c3f1b0000004d48537a6870a16d56e6c196bea47698ae892b672042500d817533e6c196
-fbfbdedeedeedeedeee1eeff8ba1c72852976784bda3c4dacee0effff7fffff7f7fffff7f7fff7
-fffff7ede8dedac7abbea476c18040ef883ae7a330b55d18b55d18ebc07cbea4765c3f1bdac7ab
-fdffe7ffffeffffffffff7f7fff7f7fff7f7fffffffff7f7fff7fffffffff7f7f7fffffff7f7f7
-fffffffffffff7f7f7f7f7f7ffffffefefeff7f7f7ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7ffffeff7fff7ffffeff8eef7ffef
-566f421d4f261c4e0e2b67201c4e0e42500d413d12661b0c661b0c7e10067e10067e1006bf4d3e
-bc6a397d3d305c2e355d324b661b0ca13e307e1006fdd0ce83814e27381343711e83814e7da572
-7da572deedeed6e6edefffffcee0ef3f70b42f5379153470bac6d8fffffffffffffffffff7fff7
-f7f7efded6ccd6aa8aa0563fda8539da8539de9d2ede9d2eb6a042f2de95fff6b6dac7abffffef
-fef7e7fffff7fffff7fffff7ffffffc7c6bcb99f9befeff7fffffffff7ffffffffffffffffffff
-fffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffe7f4f7f7f7fffffffffdffe7
-cbcec560562242500d413d12413d12413d12492717661b0c7e10067e10067e10067e10067e1006
-7e1006661b0c7e10065c2e359e2e11860002a0563fd7ad9d5c553b3f3235316535315449336b4d
-103a15e5ffffe5ffffeffffff7ffff9c9fc02852974f6c9fd6e6edffffffffffffffffffffffff
-dedede81897cd7ad9d954713954713d35113b55d18bc6a39fdf5abfdffe7fbfbdefffffffffff7
-fffff7ffffffffffffefefefffffff7c7b7c5d324b7c7b7cd6cdd7bdbdbd898c8c9b9c9cefefef
-cecece81897caeadadb5b5b5fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffff7fffff7fffff7fffffffffffffff7fff7f7fffffffffff7effbfbde
-fbfbdea384577e564083814e846a4ca38457a2763f812d0d7e10067e1006860002860002860002
-a00d08a00d08a00d087e1006a13e30860002c38a81a384572d00001e1f3a1e1f3a142657142657
-52457affeeffefeff7fffffff7ffeffff7f77e86b02f5379c4d3edf7ffffe7f4f7f7ffffffffff
-dedede5c553bc38a81812d0d9e2e11812d0d812d0dc18040eee1c3ffffeffffff7ffffffffffff
-fffffffffffffffffffff7f7ffffffddcacbddcacba18b74ddcacb7a68709b9c9c9a9291deedee
-b5b5b5c6b9c6cececed6d6d6fffffffffffffffffffffffffffffff7f7f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffff7fffff7fffff7fffff7fffffff7f7fffff7fffff7f7fff7effdffe7
-d6aa8ac18040c18040a16d56c48756c48756eca872a13e30661b0ca00d087e1006860002a00d08
-a00d08a00d08a00d08a60003a00d087e1006d6aa8ab99f9b7e56405d324b52457a52457a52457a
-e7dde7b99f9bb99f9beff8eeeff8eeffffffa6c8eb1550788ba1c7efffffe7f4f7ffffffefefef
-796e82ffeeffd6aa8a812d0db55d18954713812d0dc28268fdcfc4fffffffff7fffff7ffffffff
-f7f7fffffffffffffffffffffbefeffff7effffffffff7ffffffffe7e7e7fffffff7f7f7ffffff
-f7f7f7fffffffffffffffffffffffffffffff7f7f7fffffffffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffff7ffffefffffeffffff7fffff7fffffffffffffce6eefbefefdac7ab
-c282688c611bb55d18812d0d8c611be18855e28e67a13e30a00d08661b0c860002a00d08b70d05
-b70d05b70d05dd250fd30f159e2e11661b0c5c553b5c553b5c2e359d716fa18b749d716fd7ad9d
-9d716ffdd0ced7ad9dfffff7efefe7ffffff7e86b01534706784bddeedeee5ffffe5ffff848e9b
-e7dde7ffffffbab69d661b0cb55d18954713812d0d804049a18b74fff7fff7f7fff7fffff7ffff
-f7f7fffffffffffffffff7f7fff7effffff7fdefe7ffffffdededefff7f7ffffffffffffffffff
-e7e7e7f7f7f7f7f7f7fffffff7f7f7fffffffffffffffffffffffff7f7f7f7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffff7ffffeffffff7fffffff7f7fffff7ffffffffffffff846a4c
-a0563fc18040da8539b55d18da8539b55d189547139e2e117e1006a00d08860002a00d08a60003
-a60003b70d05bc1111bc11117e1006413d125c3f1b4927177d3d305c2e35817533626e1fe6c196
-eee1c3fbfbdefce6eeede8def2ebd6f7ffff8ba1c77b8dc8155078a3c4dae5ffffa8b9bdd6d6de
-fffffffff7ffd6aa8a661b0cc18040f2de95eee1c3a16d567a6870e7e6effffffff7f7ffffffff
-f7fffffffffffffffffff7f7ffffff5456567c7b7c7a68703f32353f3235e7f4f7aeadad3f3235
-d6d6d6bdbdbd1017152725224d463cf7f7f73f3235c6cecef7f7f7ffffffffffffefefefffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffff7fffff7fffff7fffffffffffff7f7fffff7ffffffffa38457
-a38457bc6a39b55d188c611bb55d18e7a330b55d18954713a00d087e1006860002a00d08b70d05
-b70d05b70d05bc1111a600037e1006413d1242500d413d12492717413d12817533a38457bea476
-e6c196eee1c3fef7e7fff7f7f7fff7e5ffffe5ffff506fb62d707fcee0ef677e83e5fffff7ffff
-fff7ffffeefffdffe7d2a46a605622ebc07ca2763f846a4c9a9291fff7effffffff7fffff7ffff
-fffffffffffffffff7fffff7ffffeff2ebd6fffff7fffffffffffffffffffffffff7f7f7ffffff
-fffffff7f7f7f7f7f7f7f7f7f7f7f7fffffff7f7f7fffffffffffff7f7f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffff7fffffffffffffffffffffffff7f7fffff7fffef7e7
-eee1c3ebc07cb55d18de9d2ede9d2ef5bb36ef883ad66b427e1006860002a00d08a00d08a60003
-b70d05bc1111b70d05a00d08661b0c60562260562242500d43711e43711e83814e42500dbea476
-eee1c383814edae0d6fff7efffffffe1eefff7ffff6175a72d707f6784bdcee0efe5ffffe1eeff
-ffeeffe7dde7ffecd0b6a0428c611b8c611b7e5640fdd0ceffecd0f7f7effffff7fffff7ffffff
-f7fff7fffff7fffff7ffffeffff7efffffffded6ccefefefd6deded6dedee7e7e7efefefdedede
-efefefffffffffffffffffffffffffefefefffffffefefeffffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7f7ffffffffded6cc
-a0563f8c611bc18040b6a042b6a042de9d2ede9d2ed66b42b62b10860002860002a00d08a60003
-a60003b70d05a00d08a00d08661b0c5c3f1b81753343711e1d4f2643711e558844605622846a4c
-846a4cbab69dffffeffffff7f7f7ffefeeffffffff6784bd4f6c9f2d707fd6e6eddeedeeffffff
-fff7ffcec6c6492717817533b6a0425c3f1bbab69dfffffffffff7ffffeffffff7fffff7ffffff
-f7fff7f7f7efffffffffffefefefe7ffffff545656cecece848e9b67687c81897cdedede616f61
-c6c6c6fffffff7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffff7f7fffff7fffff7ffffffffffefe6f2d6d6de7a6870
-7e56407e56407e56408c611b8c611b817533a13e30a13e309e2e117e1006860002860002a00d08
-a00d08a00d08a00d08a00d087e1006492717626e1f626e1f83814e558844817533626e1f817533
-a38457bea476fffff7fff7f7fffffff7ffffcee0ef4f6c9f6784bd477285ddeadedeedeeffffff
-ffffff9a92917e5640d6aa8aa0563f8c611bc38a81ddcacbfce6eef7fffffffffffffffff7fff7
-fffffffffffffffffffffff7fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffff7f7f7fffffff7f7f7fffffffffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffff7fffff7fffff7fffff7ffffdedde77e7b9c5456567a6870
-5d324b7a68707e56409d716f5c553b7e5640a0563fa13e30a13e30a13e30a00d087e1006860002
-8600028600027e10067e1006661b0c413d122738132738131c4e0e1c4e0e7da5727da57283814e
-b7bcada18b74ded6ccdededecee0efc4d3ed8ba1c76784bd677e83a3c4dabac6d8fffffffbefef
-b99f9b5c3f1bb99f9bb99f9b5d324b8040494927175c2e35cececef7fffff7ffffffffffffffff
-ffffffffffffffffffffffffffffffefeff7f7f7f7fffffff7f7fff7f7fff7f7f7fffffff7f7f7
-f7f7f7fffffff7f7f7f7f7f7f7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffff7f7ffffefffffffffff677e831e1f3a412f54142657
-52457a3f32355456565456563f32355c2e357e5640804049804049a13e30a0563fbf4d3ea13e30
-a13e30a0563f812d0d661b0c7d3d30413d12273813103a151c4e0e2b6720a5c2a77da572616f61
-616f61545656545656557085477285677e83a6c8eba3c4da6784bde5ffff677e83f7f7ffefefef
-5c3f1b7e5640846a4c5d324b7e7b9cb99f9ba5a5a69fa89cdae0d6e7f4f7f7ffffffffffffffff
-fffffffffffffffff7fff7f7fffffffffffff7f7f7fffffff7ffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffff7fffff7fffffff7fffff7ffffbac6d8a8aac6bac6d8bbc1c8
-5556825556822f5379412f544d48534d48534d48535c2e355c2e355d324b5c2e35804049a16d56
-a16d56a16d56846a4c5c3f1b413d12273813273813316535336b4d316535336b4d1d4f26566f42
-2445383154493154491659532d707f2d707f2d707f2d707f477285a8b9bdcbcedbffffff9991aa
-5d324b7e5640846a4c796e82a5a5a6fff7ffffffffddeadee7f4f7f7ffffffffffffffffffffff
-fffffffffffffffffff7f7f7f7f7f7fffffffffffffffffff7f7f7e7f4f7fff7fff7fff7ffffff
-f7f7f7efefeff7f7f7fffffff7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffff7fffffffffffff7ffffffffffffffff8ba1c77e86b0
-4f6c9f2852971534702f537952457a412f5452457a412f54412f545d324b3f32353f32355c2e35
-3f32351017154d463c3f3235413d12103a15103a151d4f261d4f26336b4d244538315449315449
-677e83616f611e4253336b4d165f35165953165953165953165953315449616f61898c8c3f3235
-1e1f3a616f612725227c7b7cffffffddeadee7f4f7a3c4dadeedeeffffffffffffffffffffffff
-fffffffffffffffffffffff7ffffffd6d6d6dededef7ffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7f7f7fffffff7f7f7fffffffffffffffffff7f7f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffff7ffffffffffffffffffffffff8ba1c74f6c9f285297
-5058b05058b04c52994c52994c529915347052457a52457a52457a1e1f3a1e1f3a52457a4d4853
-1e1f3a2445383154492445382445382738131d4f261d4f26273813616f61677e83316535272522
-9fa89c81897c616f61336b4d0a4438165f35165f35336b4d2445381d4f261d4f26103a15101715
-315449272522272522a8b9bda8b9bd90aaaaffffffa6c8ebe7f4f7fffffff7fffff7ffffffffff
-ffffffffffffffffffffffffffffffbdbdbdefefef7c7b7c272522898c8c898c8cefeff7898c8c
-616f61616f614d4853dedede7c7b7ca5a5a6ffffffa5a5a6f7f7f7ffffffefefefffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffff7fffffff7f7ffffffff7e7b9c52457a6784bd
-4c52993f70b4506fb6285297616cbf4c52995058b052457a1a378a52457a52457a1426572f5379
-1e42531e42531659531550781d4f261d4f2642500d558844316535316535616f612725224d463c
-315449566f423165353165351d4f26196320103a15315449244538315449316535101715103a15
-0a4438244538103a15677e83d6e6edd6dedef7ffffeff7ffeffffff7fffff7fffff7ffffffffff
-fffffffffffffffffffffffffffffffffffff7f7f7dededebbc1c8d6dededededeffffffdedede
-d6d6d6cececec6c6c6f7f7f7d6d6d6e7e7e7ffffffdededefffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000f7fffffffffffffffffffffffffffffffff7fffff7fffff7fffffff7f7ffb7b3c46175a7
-5556826175a74c52994c52994c52995058b0616cbf4c52992f53794c52992852972f53792f5379
-1534701550781550782d707f165953103a153165357da572315449316535315449244538273813
-4d463c2445382445381d4f262b67201963203165351d4f26336b4d244538316535165f35103a15
-3165351c4e0e677e83a3c4da848e9bd6e6edeffffff7ffffeff7fff7ffffeff7ffffffffffffff
-fffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000f7fffff7fffffffffffffffffffffffffffffffff7fffff7fffff7fffffffffffff7f7ff
-f7f7fff7f7ffcee0efa6c8eb7b8dc8506fb62f53792852974c52995058b0285297285297153470
-1550781550781550781534700a44380a44381d4f26336b4d244538244538244538244538315449
-566f422445383165353165353165351c4e0e2b67202b67201d4f26165f351d4f261d4f26336b4d
-316535558844e7f2ed90aaaacee0efeffffff7ffffe7f4f7cddada979ca9deedeeffffffe7f4f7
-fffffffffffffff7f7ffffffcbcec59a92917c7b7c2725229b9c9c7c7b7c7c7b7c244538fff7f7
-4d48537c7b7cffffff616f61898c8cffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000f7fffff7fffffffffffffffffffffffffffffffff7ffffeffff7effffff7ffffffffffff
-fff7ffdedef0efeeffa3c4da5058b06175a74c52995058b05058b04c52994c52994f6c9f285297
-2852971550781550781550781659530a44382d707f336b4d0a44382d707f0a4438244538336b4d
-336b4d3154491d4f26336b4d196320316535196320316535196320336b4d558844316535244538
-f7ffffddeadef7fff7fffffff7fffff7fff7efffffefffffdeedeed6dededeedeef7f7ffffffff
-f7f7f7fffffffffffffffffff7f7efffffffcecece9a9291e7f4f7b5b5b59b9c9cfff7ffaeadad
-9b9c9ccdd8ccffffffc6c6c6c6c6c6ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffff7fffff7fff7effffff7fff7ff
-efe6f27e86b07e86b04f6c9f4f6c9f7b8dc87b8dc86175a74f6c9f5058b04f6c9f506fb64c5299
-2f53791550782f53792f53791659531659530a44381659530a44380a4438336b4d0a44380a4438
-165953165f35165f35165f35165f35336b4d558844165f351d4f2631653555884498ae899b9c9c
-fffffff7f7efefefefe7f4f7e7f2edf7fff7eff8f7f7ffffffffff979ca9f7f7ffeff7fff7f7ff
-ffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffff7f7ffffeffffff7fffff7ffffff
-ffffffe7e3f7d6d6eb6175a78ba1c74f6c9f4f6c9f6784bd7b8dc84f6c9f4c52996175a74f6c9f
-2f5379555682477285477285557085677e83477285477285315449165953336b4d0a4438165f35
-165f35165f35165f35165f35316535336b4d5588442b6720336b4dbcc8bca5c2a7a5c2a7ffffff
-f7f7fff7f7efffffffffffffffffffeff8f7d6e6edbbc1c8e1eeffa8b9bdf7f7fff7ffffffffff
-ffffffffffffffffffffffffdededecbcec5c7c6bca5a5a6dae0d6b5bdbdd6d6d6b5b5b5d6d6d6
-cececef7f7f7dedededededeffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffeffffff7fffffffffffffffffffffffffffffffffffffffff7f7ffeff7fff7f7ffff
-cee0ef7e86b06175a76175a76784bd4f6c9f6784bd6784bd6784bd6784bd4f6c9f6175a77e86b0
-8ba1c7979ca9979ca9848e9b90aaaaa8b9bd90aaaac6cece616f61244538244538165f35165f35
-165f3519632019632031653555884455884455884481897ceff8eedae0d6dae0d6f7fff7f7ffff
-efffffffffffd6e6ed7e86b0cbcedbffffffbbc1c8898c8cdeedeef7fffff7fffff7fffff7f7f7
-ffffffffffffffffffffffffaeadadaeadad898c8c272522d6dede7c7b7cb5b5b54d4853cecece
-d6d6d6ffffffcecececececeffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffefffffeffffffffffffffffffffffffffffffff7fffff7fffff7fffff7ffffe1eeff
-848e9b7e7b9c7b8dc87b8dc86175a77b8dc88ba1c76175a76175a77e86b05570857e86b0bac6d8
-f7ffffffffffffffffffffffdededeb5b5b57c7b7c7c7b7c898c8c616f617da572558844196320
-1963202b67202b67202b67202b672043711e7da57283814ec6c6c6fffffff7ffefeff8f7efffff
-d6e6edbac6d8cee0ef677e83b5bdbdffffffffffffffffffffffffd6e6edf7ffffffffffefeff7
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7fffff7fffffffffffffffffffffffffffffff7fffff7fffff7fffff7fffff7ffff
-bac6d8bac6d8cee0efcee0efcee0efe1eeffcbcedbbdbdbdcececea5a5a6a18b749d716f9a9291
-dac7abdac7abe6c196e6c196e6c196ffecd0f2ebd6dac7abded6cc616f61ddeade7da5727da572
-558844336b4d2b67205588445588447da572a5c2a7cbcec5dededefff7ffffffffefffffffffff
-cddada557085fffffffffffffffffff7fffff7fffffffffff7f7fffffffff7f7ffffffffffffff
-fffff7fffffffffff7fffff7fffff7fffff7fffffff7f7f7fffffff7f7f7f7fffff7f7f7ffffff
-fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffeffffff7fff7ffffffe2c9b9d6aa8af6cdabdea372c48756c48756dea372
-e28e67c18040da8539da8539c48756f2de95f6cdabeee1c3e2c9b9c7c6bcb9bdb581897cdeedee
-a5c2a755884431653531653598ae89cdd8cceff8eeffffffffffffffffffffffffffffffffffff
-f7ffffa8a8b5a8a8b5fffffff7fffff7fffffffffff7fffffffffffffffff7f7f7fffffffffff7
-fff7f7fffff7fffff7fffff7fffffff7f7eff7f7f7fffffffffffffffffff7f7f7ffffffffffff
-fffffffffffffffffffffffffffffffffffff7f7f7f7f7f7fffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-f7f7fffffffffff7f7fff7eff2ebd6c28268c48756e18855954713d66b42e28e67c48756e28e67
-d2a46aebc07cebc07ceca872eca872ebc07cf6cdabdac7abeee1c3fbefefb7bcaddae0d6f7ffef
-ddeadea5c2a7bcc8bca5c2a7bcc8bcdeedeeeff8f7fffff7ffffffffffffffffffffffffffffff
-ffffffe7e6efc6cecec6cecea8b9bdfffffff7fffff7fffff7fffffffffffffff7ffffffffffff
-fffff7fffffffff7effff7f7ffffffffffffffffffefefefd6dedeffffffffffffffffffffffff
-fffffff7f7f7f7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffff7f7f6cdabc38a81c18040d66b42d66b42da8539e18855e18855e28e67c48756
-a2763fa0563fa2763fd2a46adea372e6c196e6c196d6aa8affecd0ddcacbfff7efcbcec5ede8de
-b7bcadeff8eeddeadeffffffcddadaddeadeefffffffffffffffffffffffffffffffffffffffff
-fffffff7ffffffffffdeedeed6e6eda8b9bdcbcedbffffffeff7fffffffff7fffff7f7f7ffffff
-fffffffffffffffffff7f7effffff7dededec6c6c6cddadaffffffe7f4f7d6d6d6aeadadcecece
-f7f7f7fffffff7f7f7f7f7f7b5b5b5c6c6c6a5a5a6efefefffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffff7ded6ccc28268c18040e18855da8539d66b42ef883ada8539da8539bc6a39954713
-9547138c611ba0563f812d0d8c611beca872d6aa8af6cdabe2c9b9f2ebd6fffff7c7c6bceff8ee
-ddeadeefefe7f7ffeff7fff7e7f4f7e7f2edffffffffffffffffffffffffffffffffffffffffff
-fffffff7fffff7ffffffffffffffffdeedeeffffff979ca9d6dedeffffffffffffffffffffffff
-fffffffffffffffffffffff7ffffff9fa89c7c7b7c5456564d4853e7f4f79b9c9c616f61272522
-616f61aeadadbdbdbda5a5a6bdbdbd3f3235616f61e7e7e7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffff7f7efe2c9b9c28268e28e67bc6a39da8539ef883ada8539d66b42b55d18b55d18bc6a39
-a0563fa13e30954713661b0c954713dea372e6c196f3ac92f6cdabeee1c3c7c6bcb7bcadb7bcad
-eff8eef7ffefefefe7fffffffffffffff7fffff7fffffffffffffffffffffffff7fffffffffff7
-fffffffffffffffffff7fffff7ffffeff7fff7ffffd6e6edcee0efd6d6ebf7ffffffffffffffff
-ffffffffffffffffffffffffffffffe7e7e7efefefcddadad6dedefffffffffffff7f7f7e7e7e7
-e7e7e7f7f7f7ffffffefefefffffffd6dedeefeff7ffffffffffffffffffefefefffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7
-fffffffffff7ded6ccbc6a39e28e67da8539d66b42da8539da8539ef883ada8539da8539c48756
-b55d18661b0c812d0da0563fbc6a39dea372ebc07cf3ac92f6cdabf6cdabffecd0ffecd0a18b74
-ffffeffff7effffff7fff7fff7f7f7fffffffffffffffffffffffffffff7fffff7fffff7fffff7
-ffffeff7ffeff7fffff7ffffffffffeff7ffefffffffffffe1eeffbac6d8e1eefffffffff7ffff
-fffffffffffffffffffffffffffffff7fff7d6dedefffffff7ffffe7f2eddeedeefffffff7f7f7
-ffffffffffffdededef7f7f7efefeff7f7f7f7f7f7f7f7f7f7f7f7ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff7fffff7
-fffff7ffffffeee1c37d3d30bc6a39c48756e28e67e18855bc6a39c18040da8539bc6a39c18040
-c48756c18040c48756d2a46adea372c48756d2a46aebc07cd6aa8ae6c196f6cdaba18b74d7ad9d
-fbefeffffff7fffffffffffff7f7fff7f7fffffffffffffffffffffffffffffff7fffff7ffffef
-fffff7f7fff7fffffff7ffffe1eefff7fffff7ffffefffffffffffbbc1c8efeefff7ffffeff7ff
-fffffffffffffffffff7f7f7ffffff9fa89c000000cddada898c8c9b9c9c9b9c9ccecece4d4853
-dededeffffff7c7b7c9b9c9c9a9291c6cece545656d6d6d6fffffff7f7f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-f7fff7f7f7f7ffffffded6cca0563f846a4ca16d56a38457c48756c48756c18040a2763fd2a46a
-c18040c48756c48756c48756d6aa8aebc07ce6c196bea476d6aa8abea4767e5640a38457fff7ef
-fff7effff7f7fffffffffffffffffffffffffffffffffffffff7fffffff7fffff7fffff7ffffef
-f7ffefe7f2edf7fff7efffffefffffefffffe1eeffffffffd6dede67687ce7f4f7ffffffe7f4f7
-fffffffffffffffffff7fff7f7fff7fffffffffffff7fff7ffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fff7
-fffffffffffffffff7efefe7ffffffbab69d4927175c3f1b5c553bbea476a38457c48756d2a46a
-a38457c48756dea372dea372c28268bea476bea476d6aa8a846a4ca38457a18b74fdffe7fdffe7
-ffffeffffffffffffffffffffff7ffffffffffffffffffffffffffe7f4f7fffffffffffff7fff7
-e7f2edffffffe7f2edefffffffffffdeedeeeff7ffcbcedb67687cefefeff7fffff7ffffffffff
-f7f7fffffffff7fff7ffffffefefe7dededeb5b5b5f7fff7a8b9bdc6c6c6b5b5b5c6c6c6efefef
-e7e7e7c6c6c6b5b5b5dededec6c6c6dededef7f7f7efefeffffffffffffffffffff7f7f7ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-f7f7fffffffffff7f7f7f7effffff7a5a5a62445382445382725223f3235413d125c553ba38457
-c28268c38a81c38a81c38a81a384577e56405c553b5c553b83814ef2ebd6fdffe7fdffe7ffffef
-fffffffffffffffffffffffffffffffffffffffffff7fffffffffff7fffff7fffff7ffffefffff
-efffffffffffffffffffffffdeedeecddadacbcedb557085e7e7e7ffffffdeedeefffffff7f7f7
-fffffff7f7f7ffffffffffffdae0d6b5b5b5616f61dedede545656616f613f32354d4853fffff7
-aeadad2725224d463cd6d6d65456567c7b7cffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-f7f7fffff7ffffffffe2c9b9bab69d9a92914d4853412f543154491e1f3a1e1f3a4d48534d463c
-4d463c4d463c3f32354d463c4d48534d4853272522244538b7bcadfffff7eff8eeffffeffffff7
-fffffffffffff7f7fff7fffff7fffff7fffff7ffffefffffdeedeeeff7fff7ffffffffffffffff
-ffffffdeedeea8b9bdd6dede979ca9979ca9bac6d8f7f7f7e7f4f7eff7ffffffffffffffefefef
-fffffffffffffffff7fffff7fffffffffffff7f7f7d6dedeffffffd6dedecececec6c6c6ffffff
-f7f7f7bbc1c8e7e7e7ffffffdedededededeffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffe7e3f7f7f7ff
-fffffff7efffa5a5a6a16d56a16d569d716f4d4853412f542f53791426571e42531e42531e1f3a
-1e42532f53791e425316595314265716595347728531544990aaaabcc8bccbcec5fbefeffff7ff
-fff7fff7f7ffefffffe5ffffe5ffffe5ffffe5fffff7fffff7ffffffffffefffffa8b9bd979ca9
-a8b9bde7e6ef2f5379848e9bcddadad6e6edffffffefffffefeff7fffffff7f7f7ffffffffffff
-f7f7f7fffffffffff7fffffffffff7efefeff7f7f7ffffffefefefffffffffffffffffffffffff
-efefeffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffffffffffefeeff
-a8a8b59991aa9d716f7d3d30a0563f846a4c67687c1e42531e1f3a142657155078153470142657
-1550781b6ea31b6ea31b6ea31b6ea33f70b44f6c9f47728590aaaa90aaaa90aaaad6e6edffffff
-fffffffffffffffffff7ffffefffffefffffefffffa8b9bd677e836175a7d6e6eda3c4da7e86b0
-557085bac6d8cbcedbd6dedeffffffe7f4f7eff7fffffffff7fff7f7f7f7f7fff7fffff7fffff7
-fffff7fffffffffff7fffff7fffffff7f7effffffff7f7f7e7f4f7fffffff7f7f7ffffffffffff
-f7f7f7efefeffffffffffffff7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffdedef0a8a8b57e7b9c
-55708567687c7a6870812d0d5c3f1b5c3f1b5c553b4d4853142657153470155078153470155078
-1a378a1b6ea31b6ea31b6ea31b6ea34f6c9f153470165953557085557085677e83848e9b848e9b
-677e837e7b9c6175a75570854f6c9f848e9bcee0efcee0efbac6d890aaaaa8aac6a3c4dacee0ef
-cee0efd6e6edfffffffffffff7ffffeffffff7fffffffffff7fff7f7fff7f7f7effffff7ffffff
-fffff7fffff7fffff7fffff7fffff7fffffffffffffffffffffffffffffffffffffffffff7f7f7
-f7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7fffff7fffffffffffffffffffffffffffffff7ffffdedef07b8dc86175a75058b0
-5058b05058b052457a5c3f1b661b0c7e56405c3f1b3f32352445381e42531e1f3a1550781b6ea3
-1550781b6ea31b6ea31b6ea31b6ea3315449616f61a5a5a6898c8c83814eb99f9bb99f9bcec6c6
-c8c5d5d6d6decddadacddadaa3c4daa6c8eba6c8ebbac6d8bac6d8bac6d8c4d3edd6e6edeff7ff
-fffffffffffff7fffff7fffffffffffffffffffffffffffffffffffffffffffff7ffffffffffff
-fffffffffffffffffffffffffffffffffff7fffffff7f7f7fffffffffffffffffff7f7f7ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffff7fffffffffffffffffffffffff7ffffffffff8ba1c74c52996175a7616cbf
-616cbf5058b04c52995c2e35846a4c492717605622605622413d122445383154491e4253142657
-155078155078155078165953336b4d566f4242500d83814ed6aa8ad7ad9dc38a81c38a81ffffff
-ffffffffffffcee0efa3c4daa6c8eba3c4daa3c4dabac6d8cee0efe7f4f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffff
-f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7ffffffffffffffffffffffffffffffffffffeff7ffa3c4da52457a616cbf616cbf
-616cbf616cbf5058b05d324b3f32355c2e355c2e355c3f1b4927175c553b5d324b4d48534d4853
-412f5427252231544927381383814ea18b74bea476a384575c553b5c3f1b4d463c4d463c898c8c
-a8a8b5bac6d8a8aac6a8b9bda6c8ebe1eeffe1eeffeff7fffffffffffffffffffff7fffff7ffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffefefefffffff545656000000e7e7e7ffffffbdbdbdcecece272522
-fffffff7f7f7f7f7f7f7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffff7fffffffffffffffffffffffff7ffffffffffe1eeff6175a76175a74c5299
-7b8dc8616cbf5058b05556827a6870412f543f32355c2e355c553b5c2e355c2e358040495c2e35
-7d3d305c2e35a16d56c48756a38457c18040c28268a18b74a18b749b9c9c4d4853848e9ba8b9bd
-bac6d8d6e6edeff7fffff7fffffffffffffffffffffffffff7ffffeff7ffffffffffffffffffff
-f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff7f7f7efefefffffff545656000000000000000000e7e7e7a5a5a6616f6167687c
-1017155456564d4853000000a5a5a6ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffff7fffffffffff7fffffffffffffffffffffffff7ffffeff7ffcee0ef7b8dc84f6c9f
-616cbf5058b0616cbf7b8dc84c529952457a67687c4d48533f32355c2e355c2e355c2e35804049
-804049a0563fbc6a39e18855c48756c28268d2a46a9d716f5c553b4d463cddeadeffffffefffff
-effffff7fffffffffffffffffff7ffffeeffffeeffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffc6c6c63f3235000000101715000000a5a5a6e7e7e7101715efefef
-616f61272522b5b5b51017159a9291ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffff7ffffffffffffffffffffffffffffffdeedeef7f7ffeff7fff7f7ffa6c8eb
-7e86b06175a75058b05058b0616cbf4c52994c529967687c555682412f54412f547a68705c2e35
-5c2e358040495c2e357d3d30661b0c5c2e35661b0c846a4c9a9291fff7f7f7ffffe7f4f7e5ffff
-e5ffffeffffff7f7fffff7fffff7fffff7fffff7ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffff7f7f7ffffffd6dede3f3235101715616f61f7f7f7d6d6d6000000272522
-3f32352725229b9c9c9b9c9ca5a5a6ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7ffffffffff
-ffffffa8aac6a3c4daa6c8eb5058b07b8dc85058b05058b06175a74c52995058b04c5299616cbf
-52457a412f54412f5467687c9a92919d716f9a9291fce6eeffffffffffefeff8eeffffefffffef
-fffff7fffff7fffffffffffffff7fffff7fffffffffffffffffff7f7f7f7ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffd6d6d6f7f7f7f7f7f7ffffffd6d6d6545656ffffff
-f7f7f7efeff7f7f7f7efefefffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffff7fffffffffff7ffffeff7fff7ffff
-eff7fffffffffff7fffff7ffe7e3f7a8aac6a3c4da9c9fc09c9fc09c9fc09c9fc09c9fc09991aa
-7e86b09991aa7e86b0c6b9c6ffeefffffffffffffffff7fffff7f7fffff7ffffeffdffe7ffffef
-ffffeffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffc6c6c6e7e7e7efefef
-bdbdbdbdbdbddededee7e7e7e7e7e7ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffff7fff7ffffeffffff7fffff7fffffffffffffff7fffff7ffffefffffef
-ffffeffffff7fffff7f7fffff7fffff7fffff7fffffffffffffffffffffffffff7ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffff7fffff7fffff7fffff7fffffffffffffffffffffffffff7ff
-fffffff7f7fffff7fffffffff7fffff7fffff7fffff7fffff7ffffffffffffffffffffffffffff
-fffffffffffffffffff7fffff7fffff7fffffffffffffff7ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffff7fffffffffffffffff7ffffffffffffffffffffff
-fffffffffffffffffffffffffffff7ffffeffffff7ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffff7fffff7fffffffffffffffffffffffffffffffffffffff7fffff7
-fffff7fffffffffffffffffffffff7fffff7fffff7fffffffffffffffffff7fffff7ffffffffff
-fffffffffffffffffffffffffffff7ffffeffffff7ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffff7fffff7f7fff7f7fffff7fffff7fffff7fffff7fffffffffffffff7fffff7fffff7
-fffff7fffff7fffff7fffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffff7fffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff7
-fffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff7ff
-fffffffff7fffffffffff7fffffffffff7fffff7ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff000000
-000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7
-fffff7fffff7fffff7fff7f7fff7f7fff7fffff7fffffffffffffffffffffffffffffff7fff7f7
-fff7f7fff7f7ffeeffffeeffffeeffffeeffffeefffaeef7fbefeffce6eefdefe7fdefe7fdefe7
-fce6eefbefeffce6eeffeeffffeeffffeefffaeef7fce6eefaeef7faeef7faeef7fff7efffffef
-ffffeffffff7fffff7ffffefffffeffdffe7ffffefffffefffffefffffefffffefffffefffffef
-ffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffef
-ffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffef
-ffffefffffefffffefffffefffffefffffefffffefffffef000000
-000000fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4
-fdcfc4fdcfc4fdd0cefdd0cefdd0cefdd0cefdd0cefdd0cefdd0ceeee1c3fdcfc4fdcfc4fdcfc4
-fdd0cefdcfc4fdd0cefdd0cefdd0cef3d2dafdd0cefdd0cef3d2dafdcfc4fdd0cef3d2dafdd0ce
-fdd0cef3d2dafdd0cefdd0cef3d2daf3d2daf3d2daf3d2daf3d2daf3d2dafdcfc4eee1c3fff6b6
-fff6b6fff6b6fff6b6fff6b6fdf5abfdf5abfdf5abfdf5abfff6b6fdf5abfdf5abfdf5abfdf5ab
-fdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abf2de95
-fdf5abfdf5abfdf5abfdf5abfff6b6fdf5abfff6b6fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6
-fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6000000
-000000bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111
-bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111a00d08bc1111b70d05bc1111bc1111
-d30f15b70d05bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111b70d05
-bc1111b70d05bc1111d30f15bc1111bc1111d30f15bc1111bc1111d30f15b70d05ef883ade9d2e
-de9d2eb6a042de9d2ede9d2ee7a330e7a330de9d2ee7a330e7a330de9d2ede9d2ede9d2ee7a330
-e7a330de9d2ee7a330e7a330e7a330de9d2ede9d2ede9d2ede9d2ede9d2ede9d2ee7a330de9d2e
-de9d2ee7a330de9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2e
-de9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2e000000
-000000ee000cee000cee000cee000cee000cee000cee000cee000cee000cee000cee000cee000c
-ee000cee000cee000cf7000ff7000fee000cf50f10f50f10f50f10f50f10f50f10dc0c02f7000f
-ee000cf50f10d30f15d30f15d30f15f50f10ee000cee000ceb0000f50f10ee000cee000cf50f10
-f50f10dc0c02ee000cdc0c02f50f10f50f10dc0c02dc0c02dc0c02dc0c02bc1111ec8311ffa21c
-f3a015e7a330f3a829ffa21cf3940bff9403f3a015f3940bf3a829f3a015ffa21cffa21cffa21c
-ffa21cec8311ffa21cf3a015f3a015f3940bffa21cf3a829f3940bf3a829f3a015f3940bffa110
-f3940bf3a015ff9c08f3940bff9c08ffa110f3a015f3a015f3a015ffa110f3a015ffa110ffa110
-ffa110ffa110ffa110ffa110ffa110ffa110ffa110ffa110000000
-000000ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008
-ff0008ff0008ff0008f7000ff7000ff7000ff7000fff0008ff0008ff0008ff0008ff0008ff0008
-f50f10f50f10d30f15dc0c02ee000cf50f10f70000f80900ff0000ff0000f70000f80900ff0000
-f70000f50f10f50f10f50f10ee000cf50f10f80900f70000f80900f50f10dd250fec8311ff9403
-f3940bf3940bf3940bf3940bff9c08ff9c00ff9c08ff9c08ff9c08ff9c08ff9403ff9c08ff9403
-ff9403ff9c00f3940bff9403f3940bf3940bff9c08ff9c08ff9403ff9403ffa110ff9c08ff9c08
-ffa110ff9403ff9c08ff9c08ff9c08ff9403ff9403ff9403ff9403ff9403ff9403ff9c00ff9c00
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000
-000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0000ff0000ff0000f70000f70000f70000ff0000ff0000ff0000ff0000ff0000ff0000f50f10
-dc0c02dc0c02b62b10d66b42f13f3df70000f70000f80900eb0000f70000ff0000ff0000ff0000
-ff0000eb0000eb0000f50f10f80900f70000eb0000eb0000f80900dc0c02dd250fec8311ff9403
-f3a829ffbc38f5bb36f3940bff9c08ff9403f3940bf3940bf3940bf69d04f3940bff9c00ff9c00
-f3940bffa508ff9c00ff9c00ff9c00ff9c00ff9403ff9403ff9c00f3940bf3940bec8311ff9c08
-f3940bf3940bf3940bff9c08f3940bff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000
-000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0000ff0000ff0000f80900f80900f70000ff0000ff0000ff0000ff0000f70000f80900f70000
-ee000ccc0004bf4d3efdffe7e78673dc0c02f70000dd250ff50f10eb0000f50f10dc0c02eb0000
-f50f10f13f3ddd250feb0000f50f10f13f3df50f10f13f3df50f10dc0c02dd250fec8311ec8311
-f5bb36f5bb36fcdf6af3940bec8311f3940bffbc38f3a829f3a015f3a015f5bb36f3a829f5bb36
-f3a015f3a015ec8311f3a829f5bb36f3a015f3a015ffbc38f5bb36f5bb36f3a829f5bb36e7a330
-f5bb36e7a330ffbc38f3a829f3a015f3a015ff9c08ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000
-000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0000ff0000ff0000f80900f80900f80900ff0000ff0000ff0000ff0000f70000f80900f80900
-f50f10dc0c02b62b10ffffefe78673dc0c02eb0000e88683f3ac92f50f10d30f15dc0c02d30f15
-f13f3dfdcfc4e88683e78673dc0c02e18855f13f3de88683f13f3ddc0c02cc0004ef883af3a015
-f3a829fcdf6affbc38e7a330f5bb36f3a015f5bb36fcdf6afcdf6ade9d2ef2de95fcdf6af2de95
-fcdf6ade9d2ede9d2efcdf6aebc07cec8311de9d2ef2de95ffbc38f2de95fcdf6afcdf6ae7a330
-f5bb36e7a330fdf5abffbc38f3a015f3a015f3a015f3a015f3a015f3a015f3a015f3940bffa508
-f3a015ff9c08f3a015ff9c08f3a015ff9c08f3a015ff9c08000000
-000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000f70000
-f80900ee000cd30f15f13f3df13f3ddc0c02ee000cf13f3df13f3df50f10ee000cf50f10d30f15
-dc0c02f13f3df13f3df13f3ddc0c02f50f10f50f10f13f3df50f10ee000cdc0c02ef883af3940b
-f3a829f5bb36f5bb36f3a829f3a829f69d04f3940bf3a015f3a829f3940bf5bb36f3a015f5bb36
-f3a829f3a015f3940bf3a829f3a015f3940bf3a015f5bb36f3a015f5bb36f3a829f5bb36e7a330
-f3a015f3a829f5bb36f3a829f3a015f3a015f3940bffa500ff9c00ff9c00ff9c00ffa500ff9c00
-ff9c00ff9c08ff9c00ff9c08ff9c00f3940bffa500f3940b000000
-000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0008ff0008f7000feb0000ee000cee000cee000cf7000ff7000fee000cee000cee000cee000c
-ee000cdc0c02eb0000dc0c02ee000cee000cee000cff0000ff0008f80900dc0c02ec8311ff9403
-ff9c00f3940bf3940bff9c00ff9c00ff9c00ffa500f3940bf69d04ffa500f69d04f69d04ff9c00
-f69d04ffa500f69d04f69d04f69d04f69d04f69d04f69d04ffa500f69d04f3940bf3940bf3a015
-f3a015ff9c08ff9403ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00
-ffa500ff9c00ffa500ff9c00ffa500ffa500ff9c00ffa500000000
-000000ff0000f70000ff0000f70000ff0000f70000ff0000f70000ff0000f70000ff0000f70000
-ff0000f70000ff0000ff0000ff0000ff0000f70000dc0c02f80900eb0000f70000f70000ff0008
-ff0008ff0008f7000ff7000fff0008ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-f70000ff0008f70000ff0000f70000f70000f70000ff0000ff0000f80900dc0c02ec8311ff9403
-ff9c00ffa508ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c08
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c08ff9c08ff9c08
-ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000
-000000f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000
-f70000f70000f70000ff0000ff0000f70000dc0c02dc0c02dc0c02dc0c02dc0c02f70000f7000f
-ff0008ff0008f7000ff7000fff0008ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
-ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000f80900dc0c02ec8311ff9403
-ff9c00ff9c00ff9c00ff9c00ff9403ff9c00ff9c00ff9c00ff9c08ff9c08f3940bff9c08f3940b
-ff9c08f3940bff9c08f3940bff9c08f3940bff9c08f3940bff9c08ff9c08ff9c00ff9c00ff9c00
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00
-ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/pthreads.gif b/Docs/Books/pthreads.gif
deleted file mode 100644
index 3dcd86b2c41..00000000000
Binary files a/Docs/Books/pthreads.gif and /dev/null differ
diff --git a/Docs/Books/pthreads.txt b/Docs/Books/pthreads.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/realmen.eps b/Docs/Books/realmen.eps
deleted file mode 100644
index c04e3fd8ffa..00000000000
--- a/Docs/Books/realmen.eps
+++ /dev/null
@@ -1,1167 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/realmen.eps
-%%CreationDate: Sun Dec 31 14:31:25 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 298 372
-%%EndComments
-%%BeginPreview: 100 126 1 126
-% fffffffffffffffffffffffff0
-% aaaaaaaaaaaaaaaaaaab7b5550
-% d5555555555555555555add4b0
-% aaaaaaaaaaaaaaaaaaaeff6b50
-% d555555555555555555556aab0
-% aaaaaaaaaaaaaaaaaaabaf5450
-% d5555555555555555556feaa10
-% aaaaaaaaaaaaaaaaaaaaa548b0
-% d5555555555555555556aa9210
-% aaaaaaaaaaaaaaaaaaa9542450
-% d5555555555555555552254a90
-% aaaaaaaaaaaaaaaaaaa89a1030
-% d555555555555555555054a7b0
-% aaaaaaaaaaaaaaaaaaa92a0ad0
-% d555555555555555555054a550
-% aaaaaaaaaaaaaaaaaaaaaa4af0
-% d55577d5555555555550fd5490
-% aaabdd7aaaaa90a24aabfe5530
-% d556b7ad55554a489551fb5490
-% aaabd4b6aaaaa55252afef2d10
-% d556ab5d55552aad5553feaa30
-% aaadd556aaaad552aaabfe5490
-% d5576aaaabaaaaed5557dd5530
-% aaadaaaaaaaaaaaaaaabfeaad0
-% d556d55557aaaaeaaaabfa57f0
-% aaadaaaaaaaaaad55555fd5570
-% d5576aaaabaaabaaaaa9eaabd0
-% aaadd55556aaaaeaaaa9fd56b0
-% d556aaaab5db76b755527556b0
-% aaadd555ef76adddaaa8955510
-% d5576aaabadd7b775554555650
-% aaadaaaad7ab56d55551555a90
-% d556d555555555aaaaaa2b6d10
-% aaadaaaaabaaaaeaaaaadedab0
-% d5576aaaaaaaaaaaaaad6bee90
-% aaadd55557aaaaeaad52b7bbf0
-% d556aaaaaad555aaaab7fff770
-% aaadeaaaab55556ab7fffffff0
-% d557555eaaaaaaabfffffffff0
-% aaadd5aaaaaaad5ffffbfcbf70
-% d556aabd5555557ffff7fd7fb0
-% aaabff6aaaaaabfffff51dd970
-% d55555dab55557fffff6fcd570
-% aaaaeeb555aaafffffedbb5570
-% d555555555555ffffff7fffff0
-% aaaaaaaaaaaabff9ffdffffff0
-% d555555555555ff6fffffffff0
-% aaaaaaaaaaaaaffaa495084970
-% d55555555555abf76dbabb5b70
-% aaaaaaaaaaaaabf76db3ad5ef0
-% d55555555555557ffafffffff0
-% aaaaaaaaaaaaaaaffffffffff0
-% d555555555555555fffffffff0
-% aaaaaaaaaaaaaaaa57fffffff0
-% d555555555555555a8555f5c10
-% aaaaaaaaaaaaaaaaaba856dab0
-% d55555555555b555555557b750
-% aaaaaaaaaaaaaad6aaa817aef0
-% d55555555555555555552b7bb0
-% aaaaaaaaaaaaaaaaaaa82fd550
-% d5555555555555555554935bf0
-% aaaaaaaaaaaaaaaaaaa817d550
-% d55555556d556d5555544b5d30
-% aaaaaaaaaaaaaaaaaaa817d510
-% d55555555555aad55554ab6c50
-% aaaaaaaaaab6ad56aaa80baa90
-% d5555555555555555554abd630
-% aaaaaab5aaaaaaaaaaa8155d50
-% d5555555556ad5555554abaab0
-% aaaaaaaaaaad5ab6aaa826aff0
-% d555555556d555aad554aaaab0
-% aaaaaaaaaaaaaaaaaaa856d770
-% d5555555b555555556d4ab55b0
-% aaaaaab6aaaadaaaaaa82ed650
-% d55555555556ab555555575d10
-% aaaaadaaaadaaab6b6a85db450
-% d5555555555555555554abfe90
-% aaaaaaaaadaaaaaaaaa92fda10
-% d555555b55556d5555595efeb0
-% aaaaaaaab55aaab6b6aa5dea90
-% d55556d55555aad55554bfdf70
-% aaaaaaaaaaaab5556aa977f5b0
-% d5555555556aaaaaaad56edb50
-% aaaaaaab6aad55b5555addf6b0
-% d555b55556d5aaaad6abb7dab0
-% aaaaaaad55555b555aaafff510
-% d55555556aaaaaab555756ea50
-% aaaaaad5ad555555556afff510
-% d555555aaaab6aad6aadabdc50
-% aaab6b55556d556aad56def510
-% d5555555aaaaab5555aab7ea50
-% ad5aaaaab5aab555aab76dddb0
-% d56aad5556ab56aab555bf7550
-% aaaad5adaab55556aaaad5fab0
-% d555555555556ab555576fead0
-% aaaaaaaaad56ad556b6abb7b50
-% d6d5555555aad5aaad56d7ea10
-% aaab6adab55aaab55555bdf550
-% d5555555aaaaad56aaaeabac10
-% aaaaab5555b5b5aad555dffa90
-% d56d5d6b6d56aab55ab6aaed30
-% daaaaaad56daad56ab5527b610
-% d5aadb75b56ad5aad5569aed50
-% aab6aaaaab56aab5556a2b5bf0
-% d555555555555b56ad5494aa90
-% fffffffffffffffffad5115bf0
-% fffffffffffffffffb5a4ed6b0
-% f7ffeff7ffbfbff7f56a9114b0
-% f488305512616c147aad14b510
-% f6b7b7baf7effff7fb55551410
-% fffffffffffffffff56d16f490
-% fffffffffffffffffaab55a210
-% d5555555555554952b6da54a50
-% d5555555555555b56aaadff510
-% db6db6db6dadb6aad6d77455f0
-% d5555555556aaad6aab5a92ab0
-% dadb6db6db5b6d5adb56d2ad50
-% d6aaaaaaaaaaab6b556b71aaf0
-% dad6db6db6d6daad6aada54a90
-% d55aaaaaaabaab55adb5749510
-% d6ab56db6dab5ab6b555a91630
-% dadab55555556b5556da505490
-% d5556db6db6dad6daaa94aaa10
-% d6b6aaaaaaaab5aab5b4105690
-% dad5b56db6db56b556a8a52ab0
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 357.165354 translate
-283.464567 -357.165354 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 126 8
-% Transformation matrix
-[ 100 0 0 126 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-00000048b33423ad2331bf0d22b50b31bf0d25b52129bd0822b50b23b50021bd0821bd0821bd08
-21bd0021bd0821bd0021bd0821bd0821bd0821bd0821bd0821bd0821bd0821bd0829bd0821bd00
-21bd0021bd0021bd0021bd0021bd0021bd0021bd0021c60021c60018bd0018c60018c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600
-18c60021c60021c60021c60021c60018c60021c60018c60021c60018c60021c60021c60021c600
-18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60018c60805974b
-06aa6d02946f06aa6d00955f04787005775608911a08911a05983505974b00955f00955f06aa6d
-06aa6d43b66d43b66d6ec36843b66d25a75822a63223ad23000000
-00000031bf0d31bf0d31bf0d29c60029c60829c60029c60021c60029c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c600
-21c60018c60021c60021c60021c60021c60018c60021c60018c60021c60021c60021c60021c600
-21c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60800955f
-06aa6d00955f00955f00955f0577560c751808911a08911a05983505974b00955f00955f06aa6d
-06aa6d23a57923a57925a7586ec36850bf4f25a75848b334000000
-00000029bd0831bf0d31bf0d29c60029c60029c60821c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600
-18c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c60018c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60805974b
-00955f06aa6d00955f00955f0c751808911a185d2829312926642208911a00955f05775605974b
-18a2753da88306aa6d25a75843b66d6ec36850bf4f409651000000
-00000031bf0d31bf0d31bf0d29c60829c60029c60029c60029c60029c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c600
-21c60018c60021c60021c60021c60021c60018c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021bd0800955f
-02946f00955f00955f05775608911a059835333631293129253021188a0d05974b00955f05974b
-43b66d43b66d25a75825a75843b66d649e6a649e6a409651000000
-00000031bf0d31bf0d31bf0d29c60829c60829c60829c60029c60029c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600
-18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60800955f
-00955f00955f00955f05974b059835239a3a3336312530212931293e822705974b18a2753fa46b
-43b66d43b66d3fa46b48b33489bc5aafb869a89971a58f55000000
-00000029bd0831bf0d29c60829bd0829c60829c60829c60029c60029c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600
-21c60018c60021c60021c60021c60021c60021c60018c60021c60018c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60018c60018c600
-21c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60805974b
-05974b05974b06aa4705974b059835239a3a4d5d572530212931293e822705974b3da88362a788
-4eb58850bf4f3fa46b91bf3bafb869ddc17eeab65ef3b50f000000
-00000031bf0d31bf0d31bf0d29c60829c60829c60829c60829c60829c60821c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-18c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c60018c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600
-18c60021c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60807aa32
-05983507aa3205983507aa3205974b25a758649e6a4b572e637e2405983523a57970b68c70b68c
-70b68c649e6a89bc5a91bf3bddc17eddc17ef8af56f5bd00000000
-00000023bf1131bf0d31bf0d29bd0829c60829c60829c60029c60829c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60018c60021c60018c600
-21c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60806aa47
-05974b08a62907aa323fa46b3fa46b43b66d649e6a63c74d6a92543da88370b68c88ad9788ad97
-88ad97abb37eabb37ecbb062ddc17efab77bf8af56f5bd00000000
-00000029bd0831bf0d31bf0d29c60829c60829c60821c60029c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-18c60021c60018c60021c60021c60021c60018c60018c60018c60021c60018c60021c60018c600
-21c60018c60021c60018c60021c60021c60018c60021c60018c60021c60018c60018c60018c600
-18c60021c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60018c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021bd0850bf4f
-6ec3686ec368649e6a6ec36870b68c649e6a70b68c62a78870b68c88ad9788ad978bc1a38bc1a3
-a1ad9ea1ad9e88a87acbb062d9ac7bfab77bf5af30f5bd00000000
-00000029bd0831bf0d31bf0d29bd0829bd0029c60829c60021c60029c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600
-18bd0018c60021c60021c60021c60021c60021c60018c60021c60018c60021c60018c60021c600
-21c60021c60021c60021c60018c60021c60021c60018c60021c60018c60021c60018c60021c600
-18c60021c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c600
-18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60029bd08afb869
-d9ac7b85c17685c17685c176649e6a4eb58862a78862a7884eb58862a7888bc1a38bc1a3a3b8af
-a1ad9e929b9c8f8f7ab88d5bd9ac7bcbb062f5af30f3b50f000000
-00000029bd0829bd0831bf0d29bd0829c60829bd0829c60029c60021c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600
-18c60021c60018c60021c60021c60021c60018c60021c60018c60018c60018c60021c60018c600
-21c60018c60021c60018c60021c60018c60021c60021c60018c60018c60018c60018c60018c600
-18c60018c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c60021c600
-21c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60029bd08ddc17e
-ddc17eabb37eabb37e85c17670b68c3fa46b23a57918a27506aa6d4eb5888bc1a3a3b8afa3b8af
-a3b8afa1ad9e88ad9789bc5acbb062d99755eab65ee4ac2c000000
-00000029bd0829bd0831bf0d29c60029bd0829c60021c60029c60029c60021c60821c60821bd00
-21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600
-18bd0018c60021c60018c60021c60018c60021c60018c60018c60018c60018c60018c60021c600
-18c60021c60018c60021c60018c60021c60018c60021c60018c60018c60018c60018c60018c600
-18c60018c60018c60018c60021c60018c60021c60021c60021c60021c60021c60021c60021c600
-18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c608ddc17e
-fdca81ddc17eabb37eabb37e88a87a62a7883da88323a5793da8838bc1a38bc1a3a3b8afa3b8af
-a3b8afa1ad9e83959818a2754096516a92547f8a518b873b000000
-00000029bd0031bf0d31bf0d29bd0829c60029bd0829c60829bd0821c60821c60021c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600
-18c60021c60018c60021c60021c60021c60021c60021c60018c60018bd0018c60018c60018c600
-21c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c600
-18bd0021c60021c60018c60021c60021c60018c60021c60018c60021c60018c60021c60018c600
-21c60018c60018c60021c60018c60021c60021c60021c60021c60021c60021c60029bd08abb37e
-fdca81ddc17ed9ac7ba8997188a87a88a87a7d957862a78870b68c8bc1a38bc1a38bc1a3a3b8af
-8bc1a3a3b8af62a78800967b06aa6d00955f05974b278c56000000
-00000029bd0829bd0831bf0d29c60029bd0029c60029bd0029c60029bd0021c60021c60021c600
-21c60021c60021c60021bd0021c60021c60021c60021c60021c60021c60021c60018c60018c600
-18bd0018c60021c60021c60021c60021c60021c60018c60018c60018c60021c60018c60018bd00
-21c60021c60018c60021c60018c60021c60018c60021c60018c60018c60018c60018c60018c600
-18c60018c60018c60018bd0018c60018c60021c60018c60021c60018c60018c60021c60021c600
-18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60029c608ddc17e
-fdca81d9ac7bd9ac7ba8997191875d818c647d95787d957870b68c88ad978bc1a38bc1a38bc1a3
-8bc1a38bc1a34eb58800967b00955f06aa47409651497651000000
-00000029bd0029bd0829bd0029bd0029c60029bd0029c60021bd0029c60021c60021c60021c600
-21c60021c60021c60021c60021c60021c60021bd0021c60021c60021bd0021c60021bd0018bd00
-18c60021c60021c60021bd0021c60021c60021c60018c60018c60018c60021c60018c60018c600
-21c60018c60021c60018c60021c60018c60021c60018c60021c60018c60021c60821c60821c600
-18c60018bd0023bf1131bf0d31bf0d21c60818c60018c60018c60023bf1129c60821c60021c600
-21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60029bd08d9ac7b
-fab77bd89076b88d5ba58f557f8a51816e5a818c647d95787d957870b68c88ad978bc1a38bc1a3
-8bc1a38bc1a362a7883fa46b25a75825a758278263497651000000
-00000029bd0829bd0831bf0d29bd0829bd0029c60829bd0029c60821bd0021c60021c60021bd00
-21bd0021c60023bf11239a3a29846d347382347382347382296e87296e87296e87296e87347382
-29846d239a3a21bd0821c60021c60021c60021c60021c60018c60018bd0018c60021c60021c600
-18c60021c60018c60021c60018c60021c60018c60021c60021c60018bd0063c74d70d75610c600
-10bd0023bf1163c74d63c74d63c74d21c60818bd0085c17621c60063c74d50d03810c60018c600
-18c60018c60018c60018c60018c60021c60021c60021c60021c60021c60021c60021c608d9ac7b
-fab77bd89076906a58493e28493e28344833493e284b572e818c6488a87a70b68c4eb5884eb588
-4eb58870b68c62a788649e6a89bc5a7f8a518b873b927820000000
-00000029bd0029bd0831bf0d29bd0029bd0829bd0029c60829bd0029c60821c60021c60021bd00
-21c60023ad23296e87315aad315aad315aa5315aa5315aa5315aa5315aa5315aa5315aa5315aa5
-315aa5315aad296e8725b52121c60021c60021c60018c60018c60018c60018c60018c60018c600
-21c60018c60021c60018c60021c60018c60021c60021c60021c60010c60063c74d63c74d25b521
-63c74d70d75670d75685c17650d03810bd0031bf0d8bc1a350d03850d03863c74d50d03870d756
-50d03863c74d50d03870d75650d03821c60021c60021c60021c60021c60021c60021bd00cbb062
-d89076906a58333631222929213129253021213129222929344833818c6488ad974eb5883da883
-109c8423a57906aa6d48b334cfad02cfad02e4ab00e4ab00000000
-00000029bd0829bd0029bd0829bd0829bd0029c60829bd0021c60829bd0021c60821bd0821c600
-23ad23296598315aad31629c31629c31629c315aa5315aa5315aa5315aa5315aa5315aa5315aa5
-315aad31629c315aa5296e8721b51821c60021c60018c60018c60018c60018c60018c60018c600
-21c60021c60018c60018bd0018c60018bd0021c60021bd0021c60010bd0050d03870d75670d756
-63c74d50bf4f70d75670d75650d03810bd0050d03863c74d70d75650d03870d75670d7566cc951
-70d75670d75650d03885c17631bf0d21c60021c60021c60021c60021c60021c60021bd00d9ac7b
-d8907633363125302129312929312929312929312926393125302160604288a87a70b68c23a579
-06aa6d06aa6d06aa6d90b112cfad02cfad02f5bd00f5bd00000000
-00000021bd0029bd0829bd0829bd0821bd0829bd0821c60029bd0021c60821c60021c60021bd00
-287b7b315aa531629c3163a5315aa5287b7b23ad2322a63223ad2323ad2323ad2323ad2321a427
-27826331629c31629c315aad278c5621c60018bd0018c60018bd0018c60018c60018c60018c600
-18bd0018c60021c60021c60018c60018c60018bd0018c60021bd0010bd0050d03863c74d63c74d
-63c74d50d03850d03863c74d31bf0d23bf1150d03823bf1170d75670d75650d03885c17670d756
-50d03870d75648b33470d75621c60818c60021c60021c60021c60021c60021c60021bd00b88d5b
-7f5a5822292929312929312929312929312929312929312925302160604288a87a70b68c3da883
-109c8406aa6d05974b90b112cfad02f5bd00f5bd00f5bd00000000
-00000022b50b29bd0829bd0821bd0029c60021bd0029c60021c60029bd0021c60821c60023ad23
-3163a531629c3163a531629c315aad27826321ce0018c60018c60018c60018c60018c60018c600
-18ce00239a3a315aa531629c296e8723bf1118c60018bd0018c60018c60018c60018c60018c600
-18bd0021c60018c60018bd0018c60018bd0021c60021c60010bd0050d03870d75629c60810c600
-29c60818c60021c60018c60021c60018c60021c60021c60021c60018c60025b52170d75663c74d
-29c60818c60021ce0018c60021c60021c60021c60021c60021c60021c60021c60021c600b88d5b
-5c4c512229292931292931292931292931292931292131292530217f8a518f8f7a70b68c23a579
-06aa6d06aa6d05974b90b112cfad02e4ab00f5bd00f5b500000000
-00000029bd0829bd0829bd0829bd0029bd0829c60021bd0029c60021c60029bd0821c600299452
-315aa53163a531629c31629c315aa529846d21c60021bd0018bd0018c60018bd0018c60018bd00
-18c60021b518296e87315ab52963a623ad2318c60018c60018bd0018c60018c60018c60018c600
-18c60018c60018c60018c60021bd0018c60021c60018c60018c60021c60021c60018bd0018c600
-18c60018c60018c60018c60018c60018c60018c60018c60021c60021c60029c60031bf0d29c608
-18c60021c60018c60021c60018c60021c60021c60021c60021c60021c60021c60029c60091875d
-333631253021293129293129293129293129293129253021493e2891875da8997170b68c3da883
-18a27518a275239a3a8e8c16cfad02e4ab00e4ab00f2ad00000000
-00000023b50029bd0831bf0d29bd0829c60029bd0829c60021c60029c60021c60821c600278c56
-3163ad3163a53163a531629c3163ad29846d21c60021c60018bd0018c60018c60018bd0018c600
-18bd0018c60022a632239a3a239a3a23bf1118c60018bd0018c60018bd0018c60021bd00278c56
-287b71287b7123ad2321c60018c60021c60018c60021c60021c60018c60018bd0018c60018bd00
-18c60021bd0018c60021b518287b7b34738229846d23bf1118c60021c60018c60018c60018c600
-21c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60029c60091875d
-3336312530212931292931292931292530212931292229296a5922a58f558f8f7a88a87a3da883
-25a75825a7584096518e8c16c2920acfad02e4ab00e4ab00000000
-00000021bd0029bd0829bd0029c60021bd0029c60021bd0029c60021bd0021bd0821c600278c56
-315aad3163a53163a531629c3163a529846d18c60021bd0021c60018bd0021bd0018c60018bd00
-18c60018bd0018c60021ce0021ce0021c60021bd0018c60018bd0021c60018c60021c608287b7b
-3152ae315aad22a63221c60021c60021bd0018c60018bd0018bd0021c60018c60018bd0018c600
-18bd0018c60018c60023ad2331629c3152ae29659818bd0818c60021c60021c60021c60021c600
-18bd0018c60018bd0018c60021c60021c60021c60021c60021c60021c60021c60029bd00a47953
-3336312530212931292530212931292931292931292530216a5922a58f55a8997188a87a3fa46b
-3fa46b3fa46b617e3e637e24927820927820966b1d927820000000
-00000021bd0029bd0829bd0029bd0029c60029bd0021c60021bd0029c60021bd0021c600278c56
-3163ad3163a53163a531629c315aa529846d21c60021c60021bd0021c60021c60021c60018c600
-18bd0021c60021bd0021c60021bd0021c60021c60018c60018c60018bd0018c60018bd00287b7b
-315aa529659821a42721c60021c60018c60018bd0018c60018bd0018c60018bd0018c60018bd00
-18c60018bd0018c60025b521296598315aa5296e8721bd0818c60018c60018c60018c60021c600
-18c60018bd0018c60018bd0018c60021c60021c60021c60021c60021c60021c60021bd00b88d5b
-5c4c51222929253021293129253021253021213129493e2896733ab88d5ba899717d95783fa46b
-3fa46b6a92546a9254617e3e3b54533b5453244d50244d50000000
-00000021bd0829bd0029bd0829c60029bd0029c60029bd0021c60021bd0029c60021c600278c56
-3163ad3163a53163a53163a53163a529846d21c60021c60021c60021c60021c60018c60018bd00
-18c60021c60021c60021c60021c60021c60018bd0021c60018c60018c60018bd0021c608287b7b
-315aa5295aa522a63218c60018bd0018c60018c60018bd0018c60018bd0018c60018bd0018c600
-18bd0018c60018c60023ad23296598315aa5296e8721bd0818c60018bd0018c60021c60018c600
-18bd0018c60018bd0018c60021c60018c60021c60021c60021c60021c60021c60021bd00b88d5b
-7f5a582229292530212530212931292931292530216a5922a47953b88d5ba89971649e6a3fa46b
-649e6a6a925468725168725149765126642218605c244d50000000
-00000023b50029bd0829bd0021bd0021bd0029bd0821c60021bd0029c60021bd0018c600299452
-315aad31629c3163a531629c315aad29846d18c60021bd0018bd0021c60018c60021c60021c600
-18bd0018c60021c60018c60021c60021bd0021bd0018bd0018c60018bd0018c60018bd08287b7b
-315aa52963a622a63218c60018bd0018bd0018bd0018c60018bd0021c60018bd0018bd0018bd00
-18c60018bd0018c60023ad23296598315aa5296e8721b51818c60018bd0018bd0018bd0018bd00
-18c60018bd0018c60018bd0018c60021c60021bd0021c60021c60021c60021c60021bd00cbb062
-d890763336312530212639312530212931292530218c5e20a58f55b88d5ba58f55649e6a6a9254
-6a92547f8a516872516060423b545318605c244d500d5549000000
-00000023b50029bd0829bd0029bd0821bd0029c60821bd0021c60021bd0021c60021c600299452
-3163a53163a53163a531629c3163ad287b7121c60021bd0021c60018c60021c60021c60018c600
-18c60021c60021c60021c60021bd0021c60021c60018ce0018c60018c60018c60018c600287b71
-315aa5315aa522a63218ce0018c60018c60018c60018c60018c60021c60018c60018c60018c600
-18c60018c60018ce0021b518296e87315aa5296e8721bd0818c60021c60018c60018c60018c600
-18c60018c60018bd0018c60021c60018c60021c60021c60021c60021c60021c60021bd00b88d5b
-fab77b906a58333631253021253021213129493e2896733aa47953a58f5591875d649e6a6a9254
-8b873b8b873b687251497651244d503b54533b54533b5453000000
-00000029bd0029bd0829bd0021c60029bd0829c60021c60029bd0021c60029bd0021c600299452
-315aa531629c31629c3163a53163a529846d21c60021c60021bd0021bd0021c60021c60021c600
-18bd0021c60021c60021c60021c60023bf11299452299452299452299452299452299452296e87
-315aa531629c29846d299452278c56278c56278c56278c56239a3a18c60023ad23278263278263
-278c56278263278c5629846d296598315aa529659829846d27826329846d27826329846d29846d
-18b51818c60018bd0018c60018c60021c60021c60021c60021c60021c60021c60021c600cbb062
-d89076d89076906a58493e28493e28333631493e2896733aa4795391875d818c647f8a517f8a51
-7f8a517f8a516060424b572e9278208e8c16c2920ac2920a000000
-00000022b50b29bd0829bd0821bd0021bd0021bd0029c60021c60021bd0021bd0818c600299452
-3163ad3163a53163a53163a53163a5287b7121c60021bd0021c60018c60018bd0018c60018bd00
-18c60018bd0021bd0021c60018c60025b521296598315aad315aa5315aad315aad315aad315aa5
-3163a53163a5295aa5315aad315aad315aad3152a5315ab527826318ce00239a3a315ab5295aa5
-295aa5315aad3152ae315aad315aa531629c315aa53152a53152ae315aa53152a5315aa53152ae
-189d2e18c60018c60018bd0021c60018c60021c60021c60021c60021c60021c60021bd00afb869
-fab77bd9ac7bd89076a2826791875d816e5a8b873b91875d91875d7f8a516a92547f8a517f8a51
-7f8a517f8a514d5d57637e24c2920acfad02e4ab00e4ab00000000
-00000021bd0029bd0829bd0821bd0021bd0021bd0021bd0029bd0021bd0021c60021c600299452
-315aad3163a53163a53163a53163a5287b7b18c60021bd0018bd0018c60018c60018bd0018c600
-18bd0021c60021c60021bd0021c60025b52131629c315aa5315aa5315aa5315aa5315aad295aa5
-3163a5315aa5315aa5315aad315aad315aa5315aa53152ae27826318ce00239a3a315ab5315aad
-315aad295aa5315aa5315aad31629c31629c315aa5315aa5315aa5315aad315aa5315aad315aad
-22a63218c60021bd0018c60018bd0021c60021c60021c60021c60021c60021c60021bd00afb869
-fdca81d9ac7babb37ea899718f8f7a818c64818c64818c64818c647f8a516a92547f8a516a9254
-7f8a51816e5a497651927820cfad02e29602e4ab00f5b500000000
-00000021bd0029bd0829bd0821bd0021bd0021bd0029c60821bd0021bd0021bd0821c600299452
-315aa53163a53163a531629c315aa5287b7121c60018bd0021c60018bd0018c60018c60018bd00
-18c60021c60021c60021c60021c60021b518278263287b71287b71287b71287b71287b71296e87
-315aa52963a6287b7b278263278263278263278263278263239a3a18c60022a632278263278c56
-278263278c56278c56278263296598315aa5296598278263278c56278c56278c56278c56278c56
-18b51821c60018bd0018c60018c60018bd0021c60021c60021c60021c60021c60021bd00afb869
-ddc17eabb37eabb37e88a87a8f8f7a818c647d95786a92546a92546a92546a92546a9254687251
-687251576d67497651927820cfad02e4ab00f5b500f5b500000000
-00000022b50b29bd0821bd0021bd0021bd0021bd0021c60021c60821c60021bd0821c600299452
-315aad31629c3163a53163a53163a5287b7b18c60021bd0018bd0018c60018bd0018bd0018c600
-18bd0021c60021c60021c60021c60021c60018c60018c60018c60018c60018c60021c600287b71
-315aa5295aa522a63218ce0018c60018c60018c60018c60018c60018bd0018c60018c60018c600
-18c60018c60018ce0021b518296e87315aa5296e8718bd0818c60018c60018c60018c60018c600
-18bd0018bd0018c60018bd0018bd0018c60021c60021c60021c60018bd0021bd0021c6006ec368
-abb37eafb86985c17688a87a649e6a3fa46b278c56278c56278c5642863d3e8227617e3e497651
-49765127826318605c8e8c16c2920acfad02e4ab00f5b500000000
-00000022b50b29bd0829bd0821bd0029bd0029c60821bd0821bd0021bd0021c60821c600299452
-315aa53163a53163a53163a53163a5287b7b21c60018bd0021bd0018c60018bd0018c60018bd00
-18c60021bd0021c60021c60021c60021c60021c60018bd0018c60021bd0018c60021c600287b71
-315aa52963a6239a3a18c60018bd0018c60018bd0018bd0018bd0018c60018bd0018bd0018bd00
-18bd0018bd0018c60021b518296598315aa529659821b51818c60018bd0018c60018bd0018bd00
-18c60018bd0018c60018c60018c60018bd0021c60021c60021c60021c60018bd0021bd0043b66d
-06aa6d43b66d43b66d06aa6d06aa6d01877b02946f047870057756186d16186d163e8227497651
-2782632782630c5a6c637e24c2920ac2920ae4ab00e4ab00000000
-00000023b50029bd0829bd0029bd0029bd0021bd0021bd0021bd0021bd0021bd0021c600299452
-315aad31629c3163a53163a53163a5287b7b21c60021bd0018bd0018c60021c60018bd0018c600
-18bd0021c60021c60021c60021c60021c60021c60018c60018bd0018c60018bd0021c600287b71
-315aa52963a622a63218c60018c60018bd0018c60018bd0018c60018bd0018c60018bd0018c600
-18bd0018bd0018c60025b521296e87315aa5296e8718b51018c60018bd0018c60018c60018c600
-18bd0018c60018bd0018c60018bd0018c60021c60021bd0021c60021bd0021c60018bd0006aa47
-06aa6d06aa6d06aa6d06aa6d02946f02946f057756057756185d2825463b25463b185d28247952
-27826304787018605c4976518e8c168e8c16c2920ac2920a000000
-00000023b50029bd0021bd0021bd0021bd0029c60021bd0021c60021bd0021bd0021c600299452
-3163a53163a53163a53163a53163a5287b7121c60021c60821c60021bd0018bd0021c60018bd00
-18c60021c60021bd0021c60021bd0021c60018bd0021bd0018c60018bd0018bd0018c600287b71
-2963a62963a6239a3a18c60018bd0018c60018bd0018c60018bd0018c60018bd0018c60018bd00
-18bd0018bd0018c60021b518296598315aa5296e8718b51018c60018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018bd0018bd0018bd0021c60018c60018c60021c60021c60018ce0010c631
-25a75806aa6d06aa6d06aa6d06aa6d05974b05974b0d5549244d5025463b25463b0d5549057756
-04787004787004787004787018605c3b54533b54534a4e50000000
-00000021bd0029bd0829bd0029bd0029c60029bd0029c60021bd0021bd0021bd0021c600299452
-3163a53163a531629c31629c315aa5287b7b21c60021bd0018bd0018c60021c60018bd0018c600
-18bd0021c60021c60021c60021c60018c60021bd0018c60018bd0018c60018bd0018c600287b71
-315aad295aa5239a3a18c60018bd0018bd0018c60018bd0018c60018bd0018c60018bd0018c600
-18bd0018c60018c60021b518296598315aa529659818b51018c60018c60018bd0018bd0018bd00
-18bd0018c60018c60021c60021ce0018ce0018c60021c60021bd0018a80818a80818a80808911a
-08911a2479520577560d55490d5549104821266422263931213131213131213131183e33183e33
-0d55490d55490d55490d55490d554918605c0d5549244d50000000
-00000023b50029bd0029bd0829c60029bd0029c60021bd0829c60021bd0021c60821c600299452
-3163ad31629c3163a531629c3163ad287b7121c60018bd0021bd0018bd0018bd0018c60018bd00
-18c60018c60021b51821b51823ad2321bd0818c60018bd0018c60018bd0018c60018c600278263
-29659829659822a63218c60018bd0018c60018bd0018c60018bd0018c60018bd0018c60018bd00
-18c60018bd0018c60021b518287b71296e87287b7118b51018c60018bd0018c60018c60018ce00
-18c60021bd0018a80818a8080c7518186d16266422184418103521103521182121182121181821
-181821181c18181c18182121181c18181821101821181821102121102118102121182121182121
-182121182121182121182121182121182121182121182121000000
-00000023b50029bd0029bd0021bd0021bd0021bd0021bd0021bd0021bd0821bd0018c600299452
-3163a53163a53163a531629c295aa5287b7b18bd0021bd0018bd0018bd0018bd0018bd0018bd00
-18bd0021bd08287b7b3163ad29659822a63218c60018bd0018bd0018bd0018bd0021bd0018bd08
-18bd0818bd0818bd0818bd0018bd0018bd0018c60018bd0018c60018c60018c60018bd0018bd00
-18bd0018bd0018bd0018c60018bd0018bd0018bd0018c60018ce0018c60018b507188a0d0c7518
-185d28184418182921182129181821181821181821182129182121182121182121182121182121
-213129182921182921182921182929182921182121182921182929182121102121101821182921
-182929182921182121182121182121182921182921182921000000
-00000021bd0029bd0029bd0029bd0021bd0021bd0021bd0021bd0021bd0021bd0018c60022a632
-3163a531629c31629c2963a62963a6287b7b21c60018bd0018bd0018bd0018bd0018bd0018bd00
-18ce0022a63231629c3163a529659823ad2318c60018bd0018c60018bd0018c60018bd0018c600
-18c60018c60018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018c60018ce0018c60018a8080c7518185d28182921182121181821
-181821182121182129182921182921182121182921182921182121182921182121222929576d67
-6c76721829211821211821211821211821211829211021216c76727d81826c7672364742102118
-1821211829211829211021211018214d5d57707d7b101821000000
-00000023b50021bd0829bd0021bd0021bd0021bd0021bd0021bd0021bd0021bd0018c60021b518
-296e873163a52965983163a53163ad287b7b18bd0021bd0018bd0021bd0018bd0021bd0018bd08
-22a632296e872963a63163a5287b7b18bd0821bd0018bd0018bd0018bd0018bd0018c60018bd00
-18bd0018bd0018c60018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018c60018c60018b5070c7518184418182921181821181821182121182121182921
-182921182121182121182121182121182121182921182121182921182929081821707d7b4d5d57
-1018212131291821212131292131312131291829290c1716818c8c39494f7d81826c76720c1716
-2931311821211829293336311021216c7672576d67102118000000
-00000023b50021bd0029bd0021bd0021bd0029bd0821bd0021bd0021bd0018bd0021bd0018c600
-239a3a315aad3163a531629c3163a5296598296e87296e87296e87296e87296e87296e87296e87
-3163a5295aa53163a52963a6189d2e21c60018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018c60018b507186d16103521181821182129102121182921182921182121182121182121
-182121182121182121182921182121182921182121182921182121182121293131a3b8af5f6266
-636f6b6c76724a4e50839598707d7b4a4e50102121182121929b9c84948c636f6b222929576d67
-84948c333631576d67929b9c39494f818c8c263931182121000000
-00000023b50021bd0021bd0821bd0021bd0021bd0021bd0021bd0021bd0021bd0018bd0821bd00
-21c608278c562963a63163ad3163a53163a53163a5315aa53163a53163a53163a5315aa5315aa5
-2963a6315aa52963a6239a3a21c60018bd0021bd0018c60018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018c60010bd0018bd0018bd00
-18c600188a0d184418181821182121182921182921182121182921182121182921182121182121
-1821211821211829211821211821211821211829211821211829291821212639317d81824d5d57
-6c76726c76725f6266929b9c2131291821211821213336318c9794929b9c4d5d57263931929b9c
-333631636f6b6c7672818c8c39494f8c9794222929182921000000
-00000023b50021bd0829bd0021bd0021bd0021bd0021bd0021bd0021bd0018bd0021bd0018bd08
-18c60021c600239a3a296e872965982963a63163a52963a6295aa53163a5315aa52963a62963a6
-296598287b7123ad2321c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-188a0d182921182129182921182921102121182921102121182121182921182121182921182121
-1821211821211821211829211821211829211821211829291829211018214a4e50707d7b364742
-7d8182636f6b576d67636f6b1018211829291018215d727c84948c364742929b9c4a4e50929b9c
-22393e84948c818c8c707d7b576d6784948c182921222929000000
-00000022b50b21bd0029bd0821bd0021bd0021bd0021bd0021bd0021bd0021bd0018bd0021bd00
-21bd0018bd0021c60021c60025b52121a42722a63221a42721a42721a42721a42721a42723ad23
-18b51018c60018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0010bd0010bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010c60022b50b
-103521182121182921182121182921182121182921182121182921102118182121101821182121
-1829211821211829211821211821211821211829211829212229290c1716636f6b4d5d570c1716
-364742182921222929222929182121182921182921293131263931222929293131213129333631
-213129213129213129182929222929222929182921182929000000
-00000023b50021bd0829bd0821bd0021bd0021bd0021bd0021bd0021bd0018bd0018bd0018c600
-18bd0018c60018bd0021bd0018c60018c60018c60018c60018c60018c60018c60018c60018c600
-18c60018bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0010c60010bd0018c600188a0d
-182121182929182921182929182121182921182929182121333631839598636f6b5f6266102121
-1821211821211821211821211829211821211821211829211021184d5d57636f6b182921102121
-101821182121102121182121182921182121182121102118101821182121102118102121182121
-182121182121102121102118182121102121182121182121000000
-00000022b50b21bd0829bd0821bd0021bd0021bd0021bd0021bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018c60021bd0021bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0010bd0018bd0010c60018a808
-182921182121182921182121182929182121182921102121364742929b9c182121a3b8af293131
-182921213129182121213129102121182921213129222929222929263931293131102118293131
-293131213129293131293131222929293131182929263931293131213131213131293131102118
-29313122292926393133363122393e263931293131182121000000
-00000022b50b21bd0821bd0821bd0021bd0021bd0021bd0021bd0021bd0018bd0018bd0018bd00
-18bd0018c60018bd0021bd0021c60018c60018bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018c60018bd0018bd0018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd0010bd0018bd0018c608
-186d161818211829291829211821212229292229290818215f62668c9794576d67707d7b6c7672
-7d81825d727c636f6b707d7b3647425d727c707d7b6c7672738085818c8c636f6b39494f7d8182
-818c8c636f6b8c9794818c8c7d8182929b9c4d5d57929b9c7d81828c97948c9794576d674a4e50
-8c9794576d678c9794707d7b6c767273808539494f182121000000
-00000022b50b22b50b21bd0021bd0021bd0021bd0021bd0018bd0021bd0018bd0018bd0018bd00
-18c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd0018bd0018bd0010c600
-18bd00186d161821211821291829211829212131290c17167d8182576d6722292910182184948c
-4d5d57364742707d7b636f6b707d7b636f6b7d81823336318c97944a4e50293131707d7b818c8c
-3b5453707d7b707d7b818c8c707d7b7d81823647428c9794707d7b7d8182818c8c4a4e50929b9c
-36474239494f929b9c1021182639318c9794182121182921000000
-00000022b50b21bd0829bd0821bd0021bd0021bd0021bd0021bd0018bd0018c60018bd0018bd00
-18bd0018c60018bd0021c60821c60021c60818bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018bd0018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018c60018bd0018bd0018bd0018bd0018c60018bd0010bd0010bd0010bd0018bd00
-10c60018c600188a0d184418182129182129182121222929a3b8af3647421021182131298c9794
-102118364742707d7b6c7672293131929b9c4d5d5721312984948c0c1716636f6b818c8c929b9c
-3647427d81824d5d57636f6b6c76725f6266636f6b5f62666c76724d5d5784948c3647428c9794
-3647424d5d57576d671021215d727c636f6b222929182121000000
-00000023b50021bd0829bd0821bd0021bd0021bd0021bd0021bd0021bd0018bd0018c60018bd00
-18c60018bd0021c60021bd0021bd0821bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00
-18c60018bd0018bd0018bd0021bd0018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd00
-18bd0010bd0018c60018c608188a0d104e17182921212931364742293131182121222929213129
-1821211821213336311829294d5d57636f6b8c97943b5453182121182121222929293131222929
-182921222929182929182121213129182121182921182121182929182121182921101821293129
-222929182121182121182121293131182121182121182921000000
-00000023b50029bd0829bd0821bd0021bd0021bd0021bd0021bd0821bd0821c60018bd0018bd00
-18bd0021c60018c60021bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018c60018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-10bd0018bd0018bd0018bd0018c60018c60018a8080c7518104e17103521182121181821181821
-1821211829291821211829216c7672364742576d67333631102118182921182121182121182121
-182121182121102121182121102121182921182121182121182121102121182121182121102121
-182121182121182121182121102121182121182921182921000000
-00000022b50b21bd0829bd0821bd0021bd0021bd0021bd0021bd0021bd0021c60818c60018bd00
-18bd0018bd0018bd0021bd0021bd0021bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010c60018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018c60018ce0021c60018b507188a0d0c751810601b
-103521182921182129182129101821252f39182121101821182121182121182921182921182121
-182921182121182121182921182121182921182121182121182121182121182121182921182121
-182121182121182121182121182121182121182129182129000000
-00000022b50b21bd0821bd0821bd0021bd0021bd0821bd0021bd0821bd0821c60821bd0818bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-10bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018ce0021ce0021c600
-18bd0018a808188a0d0c7518186d16104e17184418103521182921182121182121181821081821
-081821081821081821081821081821101821102118102121182121101821081821101821101821
-102121182121182121102121102121182921222929253021000000
-00000022b50b21bd0821bd0821bd0021bd0821bd0021bd0821bd0821bd0821bd0821c60821bd08
-18c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd0018c60018bd0018bd00
-18bd0018bd0010bd0018c60010bd0010bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018c60018ce0021ce0018ce0021ce0021c60018bd0018a80818a80818a808188a0d637e24
-966b1d8c5e206a59226a59226a592234483325463b1829311829213448334b572e4b572e4b572e
-4b572e23395122393e6a59228e8c16c2920acfad02e4ab00000000
-00000022b50b22b50b21bd0821bd0818bd0021bd0821bd0021bd0821bd0018c60818bd0018bd00
-18bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018c60018bd0018c60018bd0018c60010bd0018c60010bd0018c60010bd00
-18bd0018bd0018bd0010c60018bd0018c60018bd0018bd0018bd0010bd0010bd0010bd0010bd00
-10bd0010bd0018bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018c60018c60021c60010c60090b112
-f2ad00f2ad00f2ad00d0780ac2920a88a87a29846d184d65263931266422637e2418a808637e24
-816e5a2345692345696a5922e4ab00e29423e4ab00f5b500000000
-00000022b50b21bd0821bd0821bd0021bd0821bd0021bd0821bd0018bd0818bd0018c60818bd00
-18c60018bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018c60010bd0018c60018bd0018c600
-18bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0010bd0010bd0010bd0018bd00
-10bd0018bd0010bd0018bd0010bd0018bd0010c60018bd0018bd0018bd0018c60018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0021bd0018bd0090b112
-e29602f5af30f5af30bf912e8b873b91875d649e6a18605c2339512931310c751808911a239a3a
-655d513b5453234569584b42927820c2920ac2920ac2920a000000
-00000022b50b22b50b29bd0821bd0821bd0021bd0821bd0021bd0821bd0018c60818bd0018c608
-18bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0018c60018bd0018c60018bd00
-18bd0018bd0018c60018bd0018bd0018bd0018bd0018c60010bd0018c60018bd0018bd0018bd00
-18c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0010c60010bd0018c60010bd00
-18bd0010bd0018bd0010bd0018bd0010bd0018bd0018bd0018c60018bd0018bd0018c60018bd00
-18bd0018bd0018bd0018bd0018bd0018c60018bd0018c60018bd0021bd0021bd0018bd0090b112
-f8af56f8af56f8af56f8af5689bc5a649e6a7d957818605c224255293129185d28059835239a3a
-4d5d573b54534e5c70184d6539494f3647425c4c514a4e50000000
-00000022b50b21bd0821bd0821bd0021bd0021bd0821bd0021bd0021bd0018bd0818c60818bd00
-18c60018bd0018c60018bd0021c60818bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600
-18bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018c60010bd0018c600
-10bd0018c60010bd0018c60018bd0018bd0018c60018bd0018bd0010bd0010c60010bd0018bd00
-10bd0018bd0010bd0018bd0010c60018bd0010c60018bd0018bd0018bd0018c60018bd0018bd00
-18bd0018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0021bd0018bd0091bf3b
-f8af56eab65ef8af56f9b4667d95783fa46b8f8f7a29846d184d65252f39185d28059835189d2e
-5f62665f6266687251655d513b5453244d50687251655d51000000
-00000022b50b21bd0829bd0821bd0021bd0821bd0018bd0021bd0018bd0818c60018bd0818bd00
-18bd0018c60018bd0018c60818bd0018bd0018c60018bd0018c60018bd0018bd0018bd0018bd00
-18c60018bd0018c60018bd0018bd0018c60018bd0018c60018bd0018bd0010bd0018c60010bd00
-18c60010bd0018c60018bd0018c60018bd0018bd0018c60010bd0018bd0010bd0018bd0010bd00
-10bd0010c60010bd0010c60018bd0010c60018bd0018bd0018bd0018bd0018bd0018c60018bd00
-18bd0018bd0018bd0018c60018bd0018c60018bd0018c60018bd0018bd0021c60010bd0091bf3b
-f9b466eab65eeab65ef9b466a899713fa46b649e6a576d67184d65252f39185d28059835239a3a
-576d67655d517f5a58816e5a816e5a4a4e50606042906a58000000
-00000022b50b21bd0821bd0821bd0018bd0021bd0818bd0818bd0821bd0818bd0818c60818bd08
-18c60018bd0018c60018bd0818bd0018bd0818bd0018c60018bd0018c60018bd0018bd0010c600
-18bd0018c60018bd0018c60018bd0018bd0018bd0018bd0010c60010bd0018c60010bd0018c600
-10bd0018c60010bd0018bd0018bd0018c60010bd0018c60010bd0010bd0018bd0010bd0010bd00
-10bd0018bd0010c60010bd0010c60010bd0010c60018bd0018bd0018bd0018c60018bd0018bd00
-18bd0018bd0018bd0018bd0018c60018bd0018c60018bd0018c60018bd0021bd0010bd0091bf3b
-fdca81f9b466fab77bfab77bd9ac7b88a87a818c64649e6a184d65252f39185d28059835189d2e
-5f6266655d51816e5a906a587f5a585c4c514a4e50606042000000
-00000018b51022b50b21bd0821bd0821bd0818bd0821bd0821bd0821c60823bf1118bd0818bd08
-18bd0818bd0018bd0818bd0018bd0818bd0018bd0018bd0018bd0018bd0018c60818c60018bd00
-10c60018bd0018c60018bd0018c60018bd0018bd0018bd0010bd0018bd0010bd0018c60010bd00
-18c60010bd0018c60010bd0018c60010bd0018c60010bd0018c60010bd0010bd0010bd0018bd00
-10bd0010bd0010bd0010bd0010bd0010c60010bd0010c60018bd0010c60018bd0018bd0018bd00
-18bd0018bd0018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018c60010bd0091bf3b
-fdca81ddc17efab77bfab77bd9ac7ba8997191875d649e6a234569293131185d28059835239a3a
-687251655d5184603a96733a9b643884603a84603a84603a000000
-00000018b51021bd0821bd0821bd0018bd0821bd0818bd0821bd0821bd0818bd1018bd1018bd08
-18c60818bd0818c60818bd0818c60018bd0818bd0018bd0018bd0018bd0018bd0018bd0818c600
-18bd0018bd0018bd0018c60018bd0018c60018bd0010bd0010bd0010bd0018c60010bd0018c600
-10bd0018c60010bd0018bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010c60010bd0010c60018bd0018bd0018bd0018bd0018c60018bd00
-18c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018c60021bd0010bd0091bf3b
-fdca81fdca81fab77bfab77bd9ac7ba89971a58f55818c643b5453252f39185d28059835239a3a
-687251816e5a5c4c519b6438c2920ae29602e29602e29602000000
-00000018b51022b50b21bd0821bd0818bd0821bd0821bd0818bd0821bd0818bd1018c60818bd08
-18bd0818c60818bd0818c60818bd0818c60818bd0018bd0018bd0018bd0018bd0818c60018bd08
-10c60018bd0018bd0018bd0018c60018bd0018bd0018bd0010bd0010bd0018bd0018c60010bd00
-18c60010bd0018bd0010bd0018bd0010bd0018c60010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010c60010bd0018bd0018bd0018bd0018c60018bd0018c600
-18bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0021bd0021c60010bd0089bc5a
-fdca81fdca81fab77bd9ac7beab65ecbb06296733a91875d385777212931185d28059835239a3a
-636f6b5f62665f6266966b1de29602cfad02f2ad00f2ad00000000
-00000022b50b21bd0821bd0821bd0818bd0821bd0818bd0821bd0818bd0818c60818bd0818bd08
-18bd0818bd0821c60818bd0818c60818bd0818c60810bd0818bd0010bd0018c60018bd0810c600
-18bd0010bd0018c60010bd0018bd0818bd0018bd0010c60010bd0010bd0010bd0010bd0018c600
-10bd0010bd0010bd0018bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018c60010bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018c60021bd0021bd0010bd0091bf3b
-fdca81ddc17efab77bfab77bcbb062d99755bf912e91875d4e5c70212931185d28059835239a3a
-816e5a6c767239494f966b1de4ab00e4ab00f5b500f5b500000000
-00000022b50b21bd0821bd0821bd0821bd0818bd0821bd0818bd0821bd0818bd0818bd0818bd08
-18c60818bd0818bd0818c60818bd0818bd0818bd0018c60010bd0018bd0010bd0010bd0018bd00
-10bd0018bd0010bd0018c60018bd0018bd0018bd0010bd0010bd0010bd0818c60018bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0018bd0018bd0018bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010c60010bd0010c60010bd0010bd0018bd0018c60018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018c60018bd0018c60018bd0021bd0021c60010bd0089bc5a
-fdca81fdca81fab77beab65ed99755e29423c2920aa58f55385777252f39185d28059835239a3a
-7f8a51818c644e5c70966b1de4ab00e4ab00f5b500f5bd00000000
-00000018b51021bd0821bd0821bd0818bd0821bd0818bd0821bd0818bd0818bd0818bd0818bd08
-18bd0818c60818bd0818bd0818bd0818bd0018c60010bd0018c60010bd0018bd0010bd0018c608
-10bd0010bd0018bd0010bd0018bd0018bd0018bd0010bd0010bd0010bd0010bd0010c60018bd00
-10bd0010bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010c60010bd0010c60018bd0010c60018bd0018bd0018bd0018bd00
-18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0021bd0010bd0091bf3b
-fdca81fab77bf9b466f9b466f8af56e29423c2920aa479534e5c70293131185d2805983521a427
-816e5a91875d4e5c708c5e20e29602e4ab00e4ab00f5b500000000
-00000018b51022b50b21bd0821bd0821bd0823bf1121bd0818bd0821bd0818bd0818bd0818bd08
-18bd0818bd0818bd0818c60818bd0818bd0818bd0018c60010bd0018bd0010bd0018bd0010bd08
-18bd0010bd0018c60018bd0010c60018bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd00
-18bd0010bd0018bd0010bd0818bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60018bd0010c60018bd0010c60018bd00
-18bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0021c60010bd0091bf3b
-fdca81ddc17ef9b466f8af56e29423d0780abf912ea58f554e5c70252f39266422059835617e3e
-816e5a6c76724e5c706a5922e29423e29423f2ad00f2ad00000000
-00000022b50b21b51818bd0821bd0818bd0821bd0818bd0821bd0818bd0818bd1018bd0818bd08
-18c60818bd0818c60818bd0818bd0818bd0818bd0810bd0818bd0010bd0018c60010bd0818c608
-10bd0818bd0818bd0818bd0818bd0818bd0818bd0818bd0810bd0818bd0818bd0818bd0018bd08
-10bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0010bd00
-18bd0010bd0018c60018bd0018bd0018bd0018bd0018c60018bd0018bd0021bd0010bd0091bf3b
-fab77bf9b466f9b466f8af56cc742dd0780abf912ea282673b545325463b637e248b873b8b873b
-8b873b7f5a584e5c705c4c51b0702eb0702eb16f14b16f14000000
-00000021b51821b51821bd0818bd0821bd0818bd0821bd0818bd0821bd0818bd1018bd1018bd08
-18bd0818c60818bd0818c60818bd0818bd0818bd0018bd0810bd0018bd0010bd0818c60810bd08
-18bd0810bd0818bd0018bd0818bd0018bd0018bd0010bd0818bd0810bd0810bd0810bd0810bd08
-18bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd00
-10bd0010bd0010bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0021c60010bd0091bf3b
-fab77beab65ef9b466e29423e29602e29423b88d5b91875d39494f4b572e927820b16f14b16f14
-bf912e906a587f5a585f62665f62664a4e502339515c4c51000000
-00000018b51021bd0818bd0823bf1118bd0821bd0818bd0821bd0818bd1018bd1018bd1018bd10
-18bd0818bd0818bd0818bd0818bd0818bd0818bd0810bd0018bd0810bd0818bd0010bd0818bd08
-10bd0818bd0810bd0818bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0810bd08
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0010bd0018bd0010bd00
-10bd0010bd0018bd0010bd0010bd0018c60010bd0010bd0018bd0018bd0018bd0010bd0091bf3b
-fab77beab65ef8af56e29423d0780ae29423b88d5b91875d39494f8b873b9b6438b0702eb0702e
-b16f14a479537f5a585c4c51655d517f5a585c4c515c4c51000000
-00000018b51022b50b23bf1118bd0818bd0818bd0821bd0818bd0821bd0818bd1018bd1018bd08
-10bd0810bd0810bd0818c60818bd0018bd0810bd0018bd0810bd0818bd0810bd0818bd0810c600
-10bd0010bd0818bd0010bd0818bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0018bd0010bd0010bd0018c60018bd0010bd0018bd0018c60008bd0091bf3b
-fab77beab65ef9b466e29423d0780abf912ea282676c7672244d5096733a9b64389b6438cc742d
-cc742da47953906a58655d515c4c51655d517f5a585c4c51000000
-00000018b51021bd0823bf1118bd0818bd0818bd0818bd0818bd0818bd0818bd1018bd0818bd10
-18bd0818bd1018bd0818bd0810bd0818bd0010bd0810bd0018bd0810bd0818bd0810bd0018bd08
-10bd0018bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0010bd0010bd00
-10bd0010bd0018bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0018bd0010bd0091bf3b
-fab77bf9b466d89076d99755d0780a8b873ba28267347382244d5084603a7f5a588c5e209b6438
-cc742da479537f5a587f5a5884603a7f5a587f5a585c4c51000000
-00000018b51021b51821bd0818bd0818bd0818bd0818bd0818bd0818bd0818bd1018bd1010bd08
-18bd1018bd0818bd1018c60818bd0010bd0818bd0010bd0810bd0018bd0810bd0018bd0810bd00
-10bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0818bd0010bd0010bd00
-10bd0010bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0018bd0018bd0008bd0091bf3b
-f9b466f9b466f8af56e29423966b1d6872518f8f7a287b71224255637e24906a5884603a8c5e20
-b0702e906a587f5a589b6438cc742dd0780ad0780ad0780a000000
-00000018b51022b50b18bd0818bd0818bd0818bd0818bd0818bd0818bd0818bd1010bd1018bd10
-18bd1018bd1018bd0818bd0810bd0818bd0810bd0018bd0010bd0810bd0010bd0810bd0010bd08
-10bd0810bd0010bd0010bd0810bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd00
-10bd0018bd0010bd0010bd0018bd0010bd0018c60010bd0018c60018bd0018bd0008bd0091bf3b
-fab77bd99755f8af56cc742d8b873b818c646c76720278812242553b545368725184603a96733a
-816e5a5c4c51655d51b0702ec2920ae4ab00e4ab00f5bd00000000
-00000018b51018b51018bd0818b51018bd0818bd0818bd0818bd0818bd1018bd0818bd1010bd08
-18bd1010bd1018bd1018bd1018bd0818bd0810bd0810bd0010bd0010bd0010bd0010bd0810bd00
-10bd0010bd0010bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0018bd0008bd0091bf3b
-f8af56f9b466d99755d9975591875d8f8f7a287b710c5a6c184d6518605c4976516872514d5d57
-4a4e503b54534a4e50966b1de4ab00e4ab00f5b500f5bd00000000
-00000018b51018b51018bd0818bd0818b51018bd0818bd0818bd1018bd0818bd1010bd1018bd10
-10bd1010bd1018bd1018bd1018bd1018bd0810bd0810bd0010bd0810bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0810bd0018bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd08
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0018bd0018bd0008bd0091bf3b
-f8af56f5af30e29423d99755a28267707d7b287b71184d6518605c244d50224255244d50244d50
-244d503b5453224255966b1de29602e4ab00f5bd00f5bd00000000
-00000018b51021b51818bd0818b51018bd0818bd0818bd0818bd0818bd1018bd1010bd1010bd10
-10bd0810bd0810bd1018bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0810bd08
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0018bd0008bd0090b112
-f5af30e29423d99755a899718f8f7a5d727c184d6523456922425523395125463b22393e25463b
-18605c244d50224255966b1dcfad02e4ab00f5b500f5bd00000000
-00000018b51018b51018b51018bd0818bd0818bd0818bd1018bd1018bd0818bd1010bd1018bd10
-18bd1018bd0818bd1018bd1018bd1018c60810bd0810bd0810bd0810bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd00
-10bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0010bd0018bd0018bd0000bd0090b112
-f5af30e29423bf912ea89971707d7b18605c234569234569244d5022425522393e21313125463b
-244d50244d502242556a5922c2920ae4ab00e4ab00f5b500000000
-00000018b51018b51018bd0818b51023bf1118bd1018bd1018bd1018bd1018bd0810bd1010bd08
-18bd1018bd1018bd1018bd1018c60818bd1010bd0818bd0810bd0810bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0810bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd00
-08bd0010bd0008bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0000bd0090b112
-f5af30e4ac2ca58f558f8f7a5d727c184d65184d6523456922425522425523395126393125463b
-3b54533b545339494f584b42b16f14d0780ae29602e29602000000
-00000018b51018bd0818b51018bd0821b51823bf1118bd1018bd1018bd1018bd1018bd0818bd10
-10bd0818bd1018bd1018c60810bd0818bd0818bd0810bd0810bd0810bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0810bd08
-10bd0010bd0010bd0010bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0018bd0008bd0090b112
-cfad02bf912ea89971649e6a184d6522425523456922425522425522425523395125463b244d50
-3b54534a4e506060424a4e505c4c5184603a8c5e209b6438000000
-00000018b51018b51018bd0818b51018bd1018bd1018bd1018bd1018bd1018bd1010bd0810bd08
-18bd0810bd0810bd0818bd1010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd08
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd08
-10bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd00
-08bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0000bd004cb50a
-e4b210a58f557d95784e5c70184d6518605c184d6523456922425523395122393e25463b25463b
-3647424d5d57606042655d5160604284603ab0702e9b6438000000
-00000018b51018b51021b51818bd1018bd1021b51818bd1018bd1018bd1018bd1010bd1018bd10
-10bd0810bd0810bd0818bd1010bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd0010bd08
-10bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd00
-10bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0008bd00
-10bd0008bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd004cb50a
-bf912e88a87a4096510b627c18605c18605c18605c184d6522425525463b22393e25463b25463b
-4b572e606042816e5a606042655d5184603ab16f14b0702e000000
-00000018b51021b51823bf1118b51018bd1821b51818bd1018bd1018bd1018bd1010bd1010bd10
-10bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd08
-10bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd00
-10bd0010bd0810bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd08
-08bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd004cb50a
-91875d3fa46b0b627c05775605775604787018605c18605c184d6525463b25463b183e33266422
-36474260604284603a60604284603a84603a8c5e209b6438000000
-00000018b51018b51018b51021b51818bd1021b51818bd1018bd1018bd1018bd1010bd1010bd10
-10bd0810bd1010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0818bd10
-10bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd00
-10bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0008b50810bd0008bd0010bd00
-10bd0008bd0010bd0808bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0048b334
-3da88302788104787005775605775618605c057756184d65244d5022425525463b263931344833
-4b572e60604296733a84603a966b1db16f14b16f14cc742d000000
-00000018b51018b51018bd1818bd1021b51818bd1018bd1018bd1018bd1018bd1010bd1010bd10
-10bd0810bd1010bd1018bd0810bd0810bd0810bd0810bd0818bd0818bd0818bd0810bd0810bd08
-10bd0810bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0810bd0810bd0010bd0010bd0010bd0010bd0008b50810bd0008bd00
-10bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c600239a3a
-0278810478700478700478700c5a6c18605c0c5a6c184d65184d6522393e22393e263931263931
-4b572e84603a96733a9b6438c2920ae4ab00f2ad00f2ad00000000
-00000018b51018b51018b51018bd1818bd1018bd1821b51821b51818bd1018bd1010bd1010bd10
-10bd0818bd1010bd0818bd0810bd0818bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd00
-10bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0008b50810bd0008bd0010bd00
-10bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018c60006aa47
-01877b00967b01877b01877b0478700478700b627c0c5a6c23456922425522393e22393e25463b
-4b572e84603a96733ab16f14e29602e4ab00f5b500f5bd00000000
-00000021b51821b51821b51818bd1818b51818bd1018bd1018bd1018bd1018bd1018bd1810bd10
-18bd1010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd0010bd08
-10bd0010bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0808bd0010bd0010bd0010bd0010bd0008bd0010bd0810bd0008bd00
-08bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00898800948400898801877b01877b0478700478700c5a6c23456923456923395122393e263931
-4b572e617e3e9b6438b16f14e4ab00f5b500f5bd00f5bd00000000
-00000021b51821b51821b51818bd1818b51018bd1818bd1818bd1018bd1818bd1010bd1018bd10
-10bd0818bd0810bd0818bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0810bd00
-10bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd00
-10bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47
-00948d00948400898801877b01877b0478700478700b627c184d6523456923395122393e25463b
-4b572e60604284603ab16f14e4ab00f5b500f5bd00f5bd00000000
-00000025b52121b51821b51818bd1018b51818bd1018b51821b51818bd1018bd1010bd1010bd10
-10bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd08
-10bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0008bd0010bd0008bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47
-00948d00948d00898800898801877b0478700478700b627c0c5a6c23456922425523395122393e
-3b545360604284603ab16f14cfad02f2ad00f5bd00f5bd00000000
-00000025b52125b52121b51818b51018b51018bd1821b51818bd1818bd1018bd1010bd1018bd08
-10bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd08
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd00
-08bd0010bd0010bd0010bd0008bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d00948d00948400898801877b0278810478700b627c0c5a6c23456923456922393e22393e
-3b545360604296733a966b1de29602e4ab00f2ad00f5b500000000
-00000021b51821b51821b51818b51818b51018b51018bd1818bd1818bd1018bd0810bd0810bd08
-10bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d0094840094840094840089880278810278810b627c0c5a6c23456923456922393e25463b
-364742655d5184603a96733a966b1dd0780ad0780ab16f14000000
-00000018b51021b51821b51821b51818bd1821b51818bd1018bd1018bd1010bd1010bd0810bd08
-10bd0810bd0810bd0810bd0810bd0810bd0818bd0810bd0810bd0810bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d00948d00948d00948401877b0278810478700b627c0c5a6c234569234569233951263931
-39494f655d5184603a96733a9b643896733ab0702eb0702e000000
-00000018b51018b51021b51821b51821b51821b51818bd1018bd1018bd1010bd0810bd0810bd08
-10bd0810bd0010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0008bd0010bd0010bd0010bd00
-10bd0010bd0010bd0008bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47
-00948d00948d0094840094840089880278810278810b627c0b627c184d65224255224255233951
-39494f655d51816e5a96733aa479539b64389b64389b6438000000
-00000021b51821b51821b51821b51818bd1018bd1818bd1018bd1018b51010bd1010bd0810bd08
-10bd0810bd0810bd0810bd0010bd0010bd0010bd0810bd0810bd0810bd0810bd0810bd0810bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd00
-10bd0010bd0010bd0010bd0808bd0010bd0010bd0010bd0010bd0008bd0008bd0008bd0010bd00
-08bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d00948d00948400948d0089880089880278810278810b627c234569224255233951224255
-3b54535f6266816e5a96733aa4795384603a9b643896733a000000
-00000018b51021b51821b51821b51818b51818b51818bd1018b51018bd1010bd1010bd0810bd08
-10bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd08
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0008bd0010bd00
-10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd00
-10bd0008bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47
-00948d00948d00948d00948d0094840089880278810278810b627c184d6523456922393e224255
-39494f655d51816e5a906a58906a5884603a9b64389b6438000000
-00000018b51018b51021b51818b51018b51018b51018b51018b51018b51810bd1010bd1010bd10
-10bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd00
-10bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd00
-10bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0008bd0010bd0008bd00
-10bd0008bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948400948400948d00948d0089880089880089880278810b627c23456922425522425525463b
-3b54535f6266816e5aa47953bf912ee29423e4ab00f3b50f000000
-00000018b51018b51025b52118b51018bd1018b51018bd0818b51018bd1010bd0810bd0810bd08
-10bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd0008bd00
-10bd0008bd0010bd0008bd0008bd0008bd0010bd0010bd0010bd0008bd0008bd0008bd0010bd00
-08bd0008bd0008bd0010bd0008bd0008bd0008bd0008bd0010bd0008bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d0094840094840094840094840089880278810278810b627c234569233951233951224255
-3b54536c7672816e5a96733acbab21e4b210f3b50ff5bd00000000
-00000018b51023ad2325b52121b51818b51018bd1018b51018bd1018b51010bd0810bd0810bd08
-10bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0008bd0010bd0008bd00
-08bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0008bd0008bd0010bd0008bd0010bd00
-08bd0010bd0008bd0008bd0008b50008bd0010bd0010bd0008bd0008b50008b50008bd0008bd00
-08bd0008bd0008bd0008bd0008bd0008bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d00948400948400948400948400948d0089880278810b627c23456923395126393125463b
-3b54535f6266816e5a96733ae4ac2ce4b210f5bd00f5bd00000000
-00000018b51021b51825b52118b51018bd1018b51018b51018b51010b50810bd0810bd0810bd08
-10bd0810bd0810bd0810bd0010bd0810bd0010bd0010bd0010bd0008b50808bd0008b50008bd00
-08b50010bd0010bd0010bd0010bd0010bd0008bd0008bd0008b50008bd0008bd0008bd0008bd00
-08bd0008b50008bd0008b50008bd0008b50010bd0008b50010bd0008b50008bd0008b50008b500
-08b50008bd0008bd0008bd0008bd0008bd0008bd0008bd0008b50010bd0008bd0010bd0008bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32
-00948d00948400948400948d00948d00948d00948d0089880b627c23456922393e22393e224255
-184d653857775f6266927820cbab21f3b50ff5bd00f9c800000000
-00000009a70818b51018b51018bd1018b51018bd1018b51010bd0810b50810bd0810bd0810bd00
-08bd0010bd0010bd0010bd0810bd0010bd000baf1407aa320aa92110bd0008bd0010bd0008b508
-08b50810bd0008bd0010bd0010b5080aa92110b50008a6290baf1408b5080aa9210aa92110bd00
-08b50808b50810bd0008bd0008b50008bd0008b50010bd0008b50008bd0008b50008bd0008bd00
-08bd0008b50008bd0008bd0008bd0008bd0008bd0008bd0008bd0010bd0010bd0008bd0010bd00
-10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47
-00948d00967b109c843da8833da88362a78800898800948d0278810b627c234569233951224255
-3857773857775f626696733acbab21e4ab00f5bd00f5bd00000000
-00000010b50810b50818b51018b51018bd0810b50810bd0818b51010bd0810bd0810bd0810bd08
-08bd0008bd0010bd0010bd0810bd0010bd000baf1405974b08a6290baf140aa9210aa9210aa921
-0aa9210aa9210aa9210aa9210aa92108a62910b50005974b0baf140baf1408a62908a62908a629
-0aa9210aa9210aa9210aa92108a6290aa92110bd0008b50008bd0008b50008bd0008b50008bd00
-08b50008bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0010bd0010bd0008bd00
-10bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32
-00948d109c8462a78888ad9784948c8c9794839598287b7b008988296598234569184d65385777
-4e5c705d727c385777606042cbab21cbab21f3b50ff6cb11000000
-00000009a70818b51018b51018b51010b50818b51010b50810bd0818b51010bd0010bd0810bd00
-08bd0008bd0010bd0010bd0010bd0810bd000baf14059835189d2e07aa3208a62908a6290aa921
-07aa3205983522a63208a62907aa320aa92110b5080598350baf1407aa3208a629189d2e07aa32
-08a629189d2e08a629189d2e0598350aa92108bd0008b50008bd0008bd0008b50008bd0008b500
-08bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0010bd0010bd00
-08bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32
-109c844eb58870b68ca1ad9eabb37ea899717d81825d727c0b627c0c5a6c234569184d65184d65
-4e5c705d727c3857773b545384603abf912ec2920ac2920a000000
-00000010b50818b51018b50710b50818b51010b50818b51010b50818b51010bd0810b50810b508
-10b50010b50008b50010bd0810b50010bd0010b5080baf140baf140baf1410b50810b50810b508
-09a70818b51010b50810b50810b50808b50810b50808b50808b50810b50810b50808b50808b508
-08b50808b50808b50008b50008b50008b50010b50008b50008b50008b50008b50008b50008bd00
-08b50008bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0010b50008bd0010bd00
-08bd0008bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32
-23a57970b68c88a87aabb37eddc17e91875d4b572e4096516a925442863d42863d49765142863d
-4d5d575d727c5d727c4e5c703857774a4e507f5a5884603a000000
-00000010bd0018bd0018bd0010bd0010bd0010bd0010c60018bd0810c60010c60010c60010c600
-10c60008bd0010c60010bd0010c60010c60010c60010c60010c60010c60008bd0010c60010bd00
-10c60008bd0010c60010bd0010c60010bd0008bd0010c60008bd0008bd0008bd0008bd0010bd00
-10bd0010bd0008bd0010bd0010bd0010bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd00
-08bd0008bd0008bd0008bd0008bd0008bd0008bd0008b50008bd0008b50010bd0010b50008b500
-10b50010b50010b50008b50010b50010bd0008bd0010bd0010bd0010bd0010bd0010bd0007aa32
-3da88385c176afb869eab65efab77ba58f5540965163c74d70d7566cc95150bf4f42863d63c74d
-4976515d727c5d727c5d727c4e5c706c7672816e5a96733a000000
-000000186d16186d16186d16186d16186d16186d16186d16186d16186d16186d1610601b10601b
-186d16186d16186d1610601b10601b10601b185d2810601b10601b10601b10601b10601b185d28
-10601b10601b185d2810601b104e1710601b104e17104e17104e17104e17104821104e17104e17
-104821104821104821104821104e17104821185d28104e17104821104821104821104e17104821
-104821104821104821104821104821104821104821104821104821104821104821104821104821
-103521183e33103521188a0d08bd0008b50008b50008b50008b50008b50010b50010bd0007aa32
-3da88388a87aafb869eab65ef9b466a8997142863d63c74d70d7566cc95148b33442863d50bf4f
-4976515d727c5d727c5d727c347382385777584b42606042000000
-000000182131182131182131182131182131182131182131182131182131182131182131182931
-182131182131182131182131182131182131101829102129102129101829182131182131182129
-101829182131101829102129182131182129182129182129182129102129102129182131182129
-182129102929101821102129101821101821101829182129182129101821101821182129102129
-182129102129102121102129102129182129182129102121101821102129102129102129182129
-1829291829291018290c751808bd0008b50008bd0008b50008b50008b50008b50010bd0007aa32
-3da88385c176cbb062eab65ef9b466a58f5542863d42863d617e3e42863d42863d42863d48b334
-687251738085738085385777707d7b4e5c7039494f4d5d57000000
-000000182929182929213131364742182929102929102929102929102929213131102929102929
-18292910292921313126393110292118292939494f36474222393e25463b213131102121102929
-25463b18292936474221313110212110292918292910292910212121313125463b102929182929
-1029291829293b545321313136474239494f10292118292910212136474239494f102921182929
-10292121313122393e29313122393e18292910292925463b364742182929213131263931213131
-1029291829291021290c751808bd0008b50008b50008b50008b50008b50010b50008bd0007aa32
-23a57985c176afb869eab65efab77ba58f5563c74d6cc95150bf4f63c74d63c74d63c74d6cc951
-497651738085818c8c7d8182b88d5bb88d5bbf912ebf912e000000
-00000021313118292939494fa3b8af707d7b636f6b7380855d727c6c7672738085738085707d7b
-707d7b707d7b738085839598707d7b364742707d7b84948c818c8c839598818c8c818c8c707d7b
-929b9c18292983959873808584948c6c76726c7672707d7b839598738085818c8c818c8c213131
-818c8c818c8c818c8c22393e929b9c929b9c818c8c929b9c3647427d81823b5453576d67576d67
-3b5453364742a3b8af929b9c929b9c839598818c8c7d8182839598929b9c818c8c738085818c8c
-1021211829291821290c751808bd0008b50008b50008b50008b50008b50008b50010bd0007aa32
-18a27588a87aafb869cbb062f9b466a58f5548b3346cc9516cc9516cc9516cc9516cc9516cc951
-4976517d8182a28267d89076cbab21e4b210f5bd00f5bd00000000
-00000021313118292939494f636f6b576d67636f6b8c9794818c8c818c8c7380858c97947d8182
-8c9794707d7b818c8c707d7ba3b8af4a4e503b54536c7672636f6b6c76727d8182738085707d7b
-707d7b222929576d67707d7b6c7672636f6b5f62664d5d57707d7b4d5d57576d676c7672213131
-707d7b5f6266364742293131636f6b576d67636f6b636f6b222929576d67364742293131213131
-2131293336313336314d5d576c7672636f6b5f62663b54535f62665f62663b54533647424d5d57
-1021212131291021290c751808bd0008b50008b50008b50008b50008b50008b50008b50007aa32
-00967b649e6a88a87aafb869cbb06291875d40965142863d70d75670d75670d75670d75670d756
-617e3e7d8182a28267d89076e4ac2cf6c329f6c329f6cb11000000
-000000182929182929212931182929182929182929182929182931182929182929182929182929
-1829291829291021291829294d5d57213131182929102929102129182929102121102129102121
-182929182929102121102121102121102121102121102121102121102121102121102121102929
-102121102121102121102129102121101821081821102121102121101821102121102121102121
-102129102129102121101821081821101821101821102121101821102121101821102121101821
-1821291021291018210c751808bd0008b50008b50008b50008b50008b50008b50008b50007aa32
-00967b25a758649e6a88a87aabb37e7f8a5142863d42863d42863d42863d42863d42863d42863d
-4d5d57a28267a28267d99755f5af30f6c329f6cb11f6cb11000000
-000000182129182931182929182931182931182931182129182929182129182931182929182929
-102129182929182929182929102121102129182929182929182929102929182929182929182929
-102929182929182929102929102929103521182929103521102929213129103521103521103521
-213129103521213129103521103521103521213129103521103521103521103521213129183e33
-103521103521103521183e33103521103521104821103521103521104821103521104821104821
-103521104821103521188a0d08bd0008b50008b50008b50008b50008b50008b50008b50007aa32
-00948402946f299452649e6a88a87a7d9578707d7b29846d027881296e8723456918605c497651
-818c64a89971d89076bf912ef5af30f6c329f6cb11f6cb11000000
-000000188a0d188a0d08911a188a0d08911a0a980808911a0a980808911a0a980808911a0a9808
-08911a0a980808911a0a98080a98080a98080a98080a98080a98080a98080a980809a70809a708
-09a70809a70809a70809a70809a70809a70809a70809a70809a70809a70809a70809a70809a708
-00b50009a70800b50009a70809a70809a70800b50009a7080aad000aad000aad000aad000aad00
-0aad000aad000aad000aad0008b50008b50008b50008b50008b50008b50808b50008b50008b508
-08b50008b50008b50008b50008b50008b50008bd0008b50008b50008b50008b50008bd0007aa32
-00948400948402946f18a27570b68c62a7888bc1a33da8837380858395988395983da883839598
-a1ad9ea1ad9ed9ac7ba47953e4ac2cf6c329f6c329f6c329000000
-00000008b50808b50010bd0010bd0010b50010bd0010bd0010bd0008bd0008bd0008bd0008bd00
-08bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd00
-00b50008bd0008bd0008bd0008bd0008bd0008b50008bd0008bd0008b50008bd0008bd0008b500
-08b50008bd0008b50008bd0008b50008b50008b50008bd0008b50008b50008b50008b50000b500
-08b50000b50008b50008bd0008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32
-00948400967b00967b01877b00948d0089880278810278810b627c0c5a6c0c5a6c0c5a6c3e8227
-816e5a91875db88d5bb0702ec2920ae29423e4b210e4b210000000
-0000000aad0009a7080aad0010b50010b50009a70810b50008b50010b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008bd0008b50008b50008b50008b50008bd0007aa32
-00948400948400948401877b01877b01877b0278810b627c4976518b873b8b873b2479523b5453
-687251906a58a47953a4795384603a966b1db16f146a5922000000
-0000000aad0010b50010b50010b50010b50010b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32
-00948400967b00898800948401877b01877b047870cbab21f9c800f9c800f9c800e4b2108b873b
-816e5a816e5a816e5a816e5a906a589b6438b0702e606042000000
-0000000aad000aad000aad0008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50000b50008b50000b50008b500
-08b50008b50008b50008b50000b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32
-00948400967b01877b01877b01877b04787090b112f9c800f5bd00c2920a927820cfad02c2920a
-8b873b6c7672816e5a816e5aa28267906a5884603a655d51000000
-0000000aad000aad0010b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50000b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50000b50008b50008b50008b50008b50000b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32
-00948400967b01877b02946f01877b278263e4b210f5bd00cfad029278206a5922cfad028e8c16
-bf912e816e5a816e5aa28267816e5a5c4c516060424a4e50000000
-0000000aad000aad000aad0010b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50000b50008b50008b50008b50008b500
-08b50008b50008b50008b50000b50008b50008b50008b50008b50008b50008b50000b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32
-02946f00967b01877b01877b01877b278c56f9c800cfad02c2920a8e8c168c5e20c2920acfad02
-cbab21816e5aa28267906a58a47953b88d5b9b6438bf912e000000
-0000000aad000aad0010b50010b50010b50010b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50000b50008b50000b50008b50008b50008b500
-08b50008b50008b50000b50008b50000b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50000b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b50023ad23
-109c8401877b00967b01877b01877b278c56cbab21c2920af9c800c2920a6a5922e4b210f9c800
-cbab21816e5a816e5a906a58cbab21e4ac2cf3b50ff6c329000000
-0000000aad000aad0010b50010b50010b50010b50010b50010b50010b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-00b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b50025b521
-649e6a02946f01877b02946f00955f00955f8e8c16f5bd00f9c800cfad02cfad02f5bd00f6cb11
-b0702e906a58655d5196733ae4ac2cf6c329f6c329f6c329000000
-0000000aad0010b5000aad0010b50010b50010b50010b50010b50010b50808b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50000b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b50031bf0d
-91bf3ba58f553fa46b3fa46b409651649e6a6a9254cfad02f5bd00f5bd00f9c800f5bd00c2920a
-cc742da4795384603a8c5e20e4b210e4b210f6cb11f6cb11000000
-0000000aad000aad0018b50710b50010b50010b50010b50010b50010b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50000b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b5004cb50a
-cfad02cbab21cbb062bf912ecbab21cbab21cbb062cbab21cfad02cfad02e29602d0780abf912e
-e29423cc742d84603a8c5e20e4b210e4b210f6cb11f6cb11000000
-0000000aad0018a80810b50010b50010b50010b50010b50010b50010b50008b50010b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50010b50000b5004cb50a
-f5bd00f6cb11f5af30e4ac2ce4ab00cfad02e4b210f6c329e4ac2ce4ac2ce4ac2ce29423e29423
-d0780ad0780ab16f14966b1de29423e4b210e4b210f6cb11000000
-0000000aad0010b50018a80810b50010b50010b50010b50010b50010b50008b50008b50010b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500
-08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b5004cb50a
-f5bd00f6cb11f6c329f3b50ff5b500f5b500f5b500e4ab00f3b50ff3b50fe29423e29602d0780a
-d0780ad0780ad0780a8c5e20b16f14c2920abf912ec2920a000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/realmen.gif b/Docs/Books/realmen.gif
deleted file mode 100644
index 41cb7d0e5ae..00000000000
Binary files a/Docs/Books/realmen.gif and /dev/null differ
diff --git a/Docs/Books/realmen.txt b/Docs/Books/realmen.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Books/sql-99.eps b/Docs/Books/sql-99.eps
deleted file mode 100644
index df55f1ad06b..00000000000
--- a/Docs/Books/sql-99.eps
+++ /dev/null
@@ -1,1248 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner
-%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/sql-99.eps
-%%CreationDate: Sun Dec 31 14:31:42 2000
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 288 383
-%%EndComments
-%%BeginPreview: 100 135 1 135
-% fffffffffffffffffffffffff0
-% ffffffbddb55b6db5555aad6d0
-% d555556b6efb6db6fbbb775b50
-% efffffdedbaedb6dad6dad6df0
-% daaaaab5b6f5b6db56d6dbb6b0
-% ef7fffeeedaf6db6fb6db56dd0
-% b1a2aabb5b7adb6b555b6edb70
-% c0419f60e1d06dadad2d556db0
-% a48895a040a25b76f71b4bb6d0
-% c78c9b664ce7e6894934c65b70
-% a1188ec648a2810041100016d0
-% e08c9b644ca6992248a244cdb0
-% b8540c1040e389264c104c0b50
-% d60c9a1060a5182248a0440ef0
-% ac488bfe596391264897ccfb50
-% 60c08140c1b0412241104002d0
-% a160a5b1a6d046664188421370
-% bfbefeef7b6ffbbd8ef7bde5b0
-% 6ad5ab5ad6daad6acb556b56d0
-% b77b75af6db76b5756ddb6bb70
-% 60d6dc4adb6dbdedbab76dd6d0
-% a03db49db6db6b5ad76ddb7bb0
-% a6634c8b6db6d6b76db6b6ad70
-% 622104929b6dbb6d5adbdb6bd0
-% a04ca49136db6ddbb76d6ddeb0
-% 60c0a4892db6d6b56dbbb6b5d0
-% a44104993b6dbb6edad6db6f70
-% 624f30886ddb6db5b77db6dad0
-% a600044c5b6edadb6dab6db7b0
-% e561924476db6db6db7edb6d70
-% 5fbf7fbedbb6db6db6d5b6dfd0
-% 756ad5606d6db6db6dbf6db570
-% dedfbfd9dbdb6db6db6adb7fd0
-% 6bb56ab776b6db6db6ddb6d570
-% b557feeadb6dbdb6dbb76dbfd0
-% 6aec95bab5db76edb6dadb6ab0
-% d6ab6b55556eedbf6db777ffd0
-% 75dadd5b6adbdefadb6ddd5570
-% aaaaab7556bdb5ef6edb37ffd0
-% bf6efaab55eb7ffdddb66d5550
-% 6abbabfeff5fdffffbedbbfff0
-% ab6efe95aab57bb7ff76eeaab0
-% 7555abad6d6efeed5feab5ffd0
-% aaaaaab5b6bbfdbbb5fddf5570
-% 6ddddbab54eafbd6eeb575ffd0
-% b5555ad6a9bbf6bfbbefdf5570
-% 6dddabb5abeffdeffeabfdffd0
-% b6b77eff76b5eb5fdfbdf75570
-% 6dadabaacbaff6ffff5f7effd0
-% d56dbeffae1bdbbfffbfafaab0
-% 6baad2aa9a97f57ffebf7ffff0
-% b575aeff6c3fedfffeffd5d550
-% 6badd5555957f57ffdffbfffd0
-% d6db7bfe747feb7ffaffd57b70
-% 7dbed6aad1d5fd7ff5fff7afd0
-% 57ebfff9a57df5ffebffeb7ff0
-% e95aaaab69d6f57fefffffd5d0
-% 5756afeac379aabfdffffff770
-% faed75578fd1777fafffffdad0
-% 5555afd52ab2debf7fffc16dd0
-% ed7aeaae97e06b5ebfff3f5af0
-% 5bd7bf5a2e84bfaeffff45aff0
-% 777d6ab55da1edbd7ffebef5f0
-% ddd7deda7b0abfa2fffd255ad0
-% 6abab574deb3ef5dfffa955550
-% d54feda9b52abd6bfffaaaaab0
-% 6add5ad2fc4ffed5fffa8d5550
-% 6db7f3a5a9957b5bfffaa35550
-% d7faaea7fa26f5557ffd4aaab0
-% 6debd54d52e9f73efffca19550
-% d7faaf57e5036dd75ffa955550
-% 6eabb51eaad6dabffffea8aab0
-% dad55d75c90b557fdfff285550
-% 7cd5b45f16adbbdfafff552950
-% 76aaf576b51b6f6f4bff2a1550
-% ffc9a8de4276dabee7ffd50d50
-% b77eebbaa8adb7ff52ffe28b50
-% 7ef3a2f48a76debdb9ffea52b0
-% ffeaabd952db7bfb6d7ff52150
-% 6dd7a77335b6d6f6d75fe888b0
-% 7fdd4ee4c2dbbfedbbbffe5250
-% ff569dcd576d75fb2feffb0810
-% 6dad77a94adbefd65bebff5350
-% ff5bff5597b77fbd06f7ff8950
-% 7e7bff122d6dd7ea6bfaff5550
-% aad75feebbbf7f58b1f57eb550
-% 556ebfc456d5dff34bfbbd7a90
-% 8aab5fd57b7f7ea4a7eebbfd50
-% b0556398d6d6ffea8fdb57fa90
-% 7f895d32bdfdfd415fb6eff5b0
-% ff7a9265eb5bff961fefb9efd0
-% 6eaf7d535efffaaa7fbafeebd0
-% fe1ddb4bf5d7ff14bfeffeb7d0
-% 797bff57dbbff45a7fdaafbfd0
-% 6c5f579fef77fd28fffcff6fd0
-% fdf6bdebfbeff463ffd52fb7f0
-% 7cbe577feebff9aafff25adbd0
-% effcaefdfdffe2a7ffe907b550
-% 7efa55d7efbfea8bffd257fed0
-% f7f8a97fbbffc557ffa49fab50
-% 7ff355ddff7fab1fff8f2fffd0
-% 6fe57377f7ff8c7fff285f7dd0
-% fdcbeaddbfff32bffd557fefd0
-% dfa6dfb7fffe48fffe54bfffd0
-% 7bcfb57eeffcaafff8b2fedab0
-% 7faaefd7fffd51fff525fffad0
-% edffbabf6ff8a7fff293fdb450
-% 7fed6ffbfff2cbffe8a7fff290
-% fbbefab7ffe557ffc32fbec930
-% 6fb5d7ff7fca8fffad4fffd250
-% 7ebfbd6fffd6bfff551eff9490
-% ed6aebfdff8a2fff0abffd4230
-% 7fbbbfdfff257ffeb47fff2950
-% d5576b7bfe58bffc297ffccad0
-% 7feddffffd557ffd52fefaa150
-% f6bfbbdffcd1fff8a9fff9aad0
-% 5ff7fffff96bfff2a5fff54bd0
-% ff6ffffff2c5ffe993ffe297d0
-% 6dffbffff557ffd2a7ffd74dd0
-% d55fffffe50fffc68fffaa2fd0
-% 557f7fffd55fff955fff955fd0
-% 557fffffacbfff363ffd34bfd0
-% d77bfffbeabffaa977df527f50
-% c97d6db75abb7a556ed5557fd0
-% 537b6b7d6aeefaaadbead57df0
-% 557b6ff5aadab65575dd55ffd0
-% d57ffdfd77fff9abdff557ffd0
-% ddfffffdcbfff287fbe997ffd0
-% 7beffff757ffe5afffd64effb0
-% 7fbdfffdcfffca9fffd52fff90
-% edfffeffdfff952fff9a5fff30
-% 7bb6ffffffff4a5fff353ffe50
-% efffffbf5ffe9abffea8bffc90
-% 7ffffffffffffffffffffffff0
-% fffffffffffffffffffffffff0
-%%EndPreview
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-5 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.400000 14.400000 translate
-% Translate to begin of first scanline
-0.000000 368.503937 translate
-272.965879 -368.503937 scale
-% Variable to keep one line of raster data
-/scanline 100 3 mul string def
-% Image geometry
-100 135 8
-% Transformation matrix
-[ 100 0 0 135 0 0 ]
-{ currentfile scanline readhexstring pop } false 3
-colorimage
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-00000052526b4a526b4a526b4a526b4a526b4a526b4a526b4a526b4a526b464a604a52634a526b
-52526b4a526b4a526b4a526b4a526b52526b52526b52526b525a6b52526b525a6b525a6b525a6b
-525a6b525a6b525a6b4a5a6b5a5a6b525a6b525a6b5b5a735a636b5a636b5a636b636373626b73
-5a636b626b6b626b6b6b737a74767882858c7476786b737a6b6b725a63735a636b63636b63636b
-626b7363637363636b6b6b726b6b72626b6b626b736b6b72626b6b626b6b626b73626b6b747678
-6b6b727476786b6b727476787476787476787476787476787476787476787476787476786b6b72
-6b6b726b6b726b6b72747678626b6b747678626b6b7476786b6b726b6b72747678626b6b6b6b72
-626b6b6b6b726b6b7263636b626b6b63635f5a5a5a626b6b000000
-0000004a526b52526b4a526b4a4a6b424a6b464a60464a60464a60464a604a4a6b4a526b4a526b
-4a526b4a526b4a526b4a4a6b4a4a6b4a4a6b4a4a6b4a526b464a604a526b4a526b4a52634a5263
-52526b525a6b525a6b4a526b525a6b52526b525a6b525a6b525a6b5a636b525a6b5a636b525a6b
-525a63525a6b525a6b5a636b5a636b5a636b5a63735a636b52636b525a63525a63525a6b5a5a63
-525a635a5a6b5a5a635a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b
-63636b5a636b5a636b63636b63636b63637363636b63636b63636b63636b63636b63636b636373
-63637363637363636b6363736363736363736c6373636373636373626b73626b6b6b6b72626b73
-63637363637363637363637363636b5a63735a5a6b767984000000
-000000525b735b5a735b5a73525a6b52526b52526b52526b525a6b52526b525a6b525b7352526b
-4a526b4a526b4a526b4a526b4a4a6b424a6b4a526b4a4a6b4a4a6b4a52634a526b4a526b52526b
-525a6b52526b525a6b525a6b525a6b525a6b525a6b525a6b525a63525a6b525a63525a63525a63
-525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63
-525a6b5a5a6b5a636b5a5a6b5a636b5a5a6b5a636b5a63605a636b5a636b63636b5a636b5a636b
-5a636b5a636b5a636b63636b635a6b63636b63636b5a636b5a636b63637363636b5a636b5a636b
-63636b63636b5a6373636373636373636373636373636373636373636373636373636373636373
-5a636b5a636b5a63735a636b5a63735b5a7352526b686b7d000000
-0000005b5a73525b735b5a73525b735b5a735a63735a63735a6373525b735a5a6b525a6b525273
-4a526b52526b4a526b4a4a6b4a4a6b4a4a6b4a52634a526b4a526b4a526b52526b525a6b4a526b
-52526b4a526b525a6b525a6b5a636b525a6b52636b525a6b525a63525a6b525a6b525a63525a63
-525a6b525a63525a63525a63525a63525a63525a63525a6b525a63525a6b525a6b525a63525a63
-5a5a635a636b5a5a6b5a636b5a636b5a636b5a636b5a636b5a636b5a636b63636b5a636b5a636b
-5a636b5a636b5a636b63636b63636b63636b63636b63637363636b636373635a6b63636b5a6373
-5b5a735b5a735a637363637363636b63637363636b6363736363736363736363736363735a636b
-6363735a636b5a636b5a636b5b5a735a5a6b525a6b686b7d000000
-000000525b73525b735a63735a6373525a6b525a6b525b735a6373525a6b5b5a73525b734a4a6b
-4a526b4953744953744a4a6b4a4a6b424a6b4a4a6b4a4a6b4a52634a526b4a526b52526b52526b
-525a6b525a6b5a5a6b5a636b5a636b5a636b5a636b5a636b525a6b5a636b5a5a6b5263635a636b
-525a6b525a6b525a63525a63525a63525a6b525a634a5263525a63525a6b525a6b525a6b5a5a63
-5a5a6b5a636b5a636b5a636b5a636b5a636b5a636b63636b63636b63636b5a636b636373636373
-63636b5a636b63636b63636b6363736363736363736363735a5a6b6363736363735b5a735a636b
-63636b6363735b5a7363637363637363637363637363637363637363636b63637363636b636373
-63636b5a636b5a63735b5a73525a6b5b5a7352526b686b7d000000
-000000525b735a63735a63736b737a8789958789956b737a52636b5a6373525a6b686b7d82858c
-7679844a526b4a526b4a526b5252735b5a734a526b4a526b4a4a6b4a526b52526b525a6b525a6b
-525a6b525a6b525a63525a6b5a636b525a63525a6b5a636b5a636b4a5263525a63525a6b4a5263
-525a6b525a63525a6b525a63525a6b4a5263525a6b686b7d5a636b4a525a5a5a6b5a5a6b5a5a6b
-5a5a6b5a636b5a636b63636b63636b63636b63636b6363735a636b63636b6363735a636b63636b
-63636b63636b63637363637363636b63637363636b6b6b7282858c686b7d63636b636373636373
-63637363637363636b63637363636b5a5a6b6363736363736363736363736363736363735a6373
-5a5a6b5a63735a636b5b5a735b5a735b5a734a526b65637f000000
-000000686b7d5a6373949d9eeae9ecffffffffffffffffffa4a8ae525a6b949d9ef6f5f8ffffff
-ffffffcacad15a6373464a60b7bdbceae9ec686b7d4a526b52526b525a6b525a6b5a5a6b5a636b
-5a636b525a6b9ca0a3eae9ecf6f5f8b7bdbc626b6b52636b525a639ca0a3eae9eceae9ecb1b2b4
-52636b5a636b525a6b5a636b525a63878995eae9ecfffffff6f5f8a4a8ae5a5a6b5a636b636373
-6363736363735a636b636373636373626b73636373626b73626b73636373636373626b73636373
-6363736c6373626b736b6b726b6b72686b7d5a52619ca0a3ffffff87899563636b636373636373
-6b6b726b6b7263637363637376798482858c686b7d6c6373626b736363736b6b72626b73636373
-5a5a6b5a637363637363636b5b5a735b5a7352526b686b7d000000
-000000686b7d686b7ddedfe2f6f5f88a9e9c82858cb7bdbc878995686b7df6f5f8f6f5f882858c
-a4a8aeffffffb1b2b43e525acacad1ffffff6b737a4a526b525a6b525a6b525a6b5a5a6b5a636b
-525a6b878995ffffffd4d7d5b7bdbcffffffb7bdbc4a525a949d9effffffd4d7d5b6c8c1ffffff
-a4a8ae525a635a636b525a6b6b737affffffeae9ec878995b7bdbccacad1525a635a636b525a63
-525a635a636b6363735a636b5a5a6363636b5a636b525a635a636b6363735a5a6b5a5a6b636373
-63636b5a5a6b63636b63636b5a5a6b6b6b725a5a639ca0a3ffffff82858c635a6b65637f635a6b
-5a5a6b5a5a6b6b6b7252525fb1b2b4ffffff76798463636b6b6b726363735a636b5a636b636373
-6363735a63736363735a5a6b5b5a735b5a73525273686b7d000000
-0000006363736b737affffffd4d7d55a5a6b5a63735a6373525a6b9ca0a3ffffffa4a8ae4a5263
-52636beae9eceae9ec4a526bcacad1ffffff6b737a4a526b5a5a6b525a6b525a6b5a636b5a6373
-4a525acacad1ffffff626b6b393f41d4d7d5ffffff525a63cacad1f6f5f85a636b464a48dedfe2
-eae9ec5a636b5a63734a525aa4a8aeffffff8789953e525a4a525a5a5a63525a63626b739ca0a3
-a4a8ae7679845a5a6b626b73949d9e747678767984a4a8ae76798463636b949d9e9ca0a36b6b72
-626b6b8789957476788789959ca0a376798452525f9ca0a3ffffff8789955a5a6b5a5a6b82858c
-9ca0a382858c636373626b73b6c8c1ffffff8789957679846363736b6b72949d9e8789956c6373
-5a636b6363735b5a735b5a73525b735a5a6b52526b686b7d000000
-000000686b7d5a6373dedfe2ffffffcacad182858c626b735a636bb7bdbcffffff949d9e525b73
-525a6bdedfe2ffffff686b7dcacad1ffffff6b737a525a6b525a6b525a6b5a636b5a636b5a6373
-4a525ad4d7d5eae9ec626b73525a63b6c8c1ffffff626b73dedfe2dedfe25a636b5a636bd4d7d5
-ffffff6b6b725a6373525a63cacad1ffffff7476785a636b6363735a636b6b6b72eae9ecffffff
-f6f5f8fff7ff8789956b6b72ffffffdedfe2eae9ecffffffeae9ecdedfe2ffffffffffffb1b2b4
-6b6b72ffffffeae9ecf6f5f8fffffff6f5f86b6b729ca0a3ffffff878995525a6bb1b2b4ffffff
-f6f5f8ffffff949d9ecacad1fffffffffff7ffffffdedfe2747678eae9ecffffffffffffdedfe2
-6b6b726363735b5a735b5a735b5a735b5a7352526b686b7d000000
-000000686b7d5a636b767984dedfe2ffffffffffffb7bdbc525a6bcacad1ffffff878995525b73
-525a6bd4d7d5ffffff6b737acacad1ffffff6b737a525a6b5a63735a636b5a63735a636b5a6373
-4a525acacad1ffffff6b737a525a63dedfe2ffffff626b73d4d7d5f6f5f85a636b5a636beae9ec
-fff7ff62736c5a6373525a63dedfe2f6f5f87476785a5a6b626b73525a63a4a8aeffffff878995
-5a5a63f6f5f8dedfe263636bf6f5f8eae9ec6b6b72b1b2b4ffffffb1b2b4626b73ffffffdedfe2
-5a5a6bf6f5f8eae9ec626b6b82858cffffffa4a8ae949d9effffff82858c747678ffffffa4a8ae
-393f41d4d7d5fff7ff6b6b72b6c8c1ffffff949d9e626b73cacad1f6f5f85a6360767984ffffff
-a4a8ae5a5a6b6363735b5a735b5a735b5a7352526b686b7d000000
-000000626b73686b7d5a63735a636b878995dedfe2ffffff949d9eb1b2b4ffffff878995525a6b
-525a6bd4d7d5ffffff6b737acacad1ffffff7679845a6373525a6b878995eae9eceae9eceae9ec
-a4a8ae767984ffffffeae9eceae9ecfffffff6f5f85a636b878995ffffffdedfe2dedfe2ffffff
-eae9ec626b73626b73525a63dedfe2ffffff7679845a636b626b73525a63d4d7d5f6f5f8747678
-52525fcacad1ffffff747678f6f5f8cacad1464a609ca0a3ffffff82858c5a5a5aeae9ecdedfe2
-5a6360f6f5f8d4d7d55a5a6b626b6bffffffb7bdbc9ca0a3ffffff767984949d9effffffcacad1
-b1b2b4dedfe2ffffff747678b1b2b4ffffff7679845a5a63eae9eceae9ecb1b2b4b1b2b4ffffff
-cacad15a5a6b6363735b5a735b5a735b5a735a526b747678000000
-000000626b73626b73626b6b626b73525a6b6b737affffffb6c8c1a4a8aeffffff949d9e525a6b
-5a6373eae9ecfff7ff5a636bcacad1ffffff6b737a525a6b525a63747678dedfe2d4d7d5dedfe2
-a4a8ae4a525a878995d4d7d5b1b2b4dedfe2dedfe2626b6b525a63949d9ededfe2b1b2b4eae9ec
-d4d7d55a5a6b626b7352525fcacad1ffffff7679845a636b626b7352525fdedfe2f6f5f8747678
-5a5a63cacad1ffffff767984f6f5f8d4d7d552525fa4a8aeffffff8789955a5a63f6f5f8dedfe2
-5a6360fff7ffd4d7d56363736b6b72ffffffb7bdbc9ca0a3ffffff767984a4a8aeffffffdedfe2
-dedfe2dedfe2dedfe2747678b1b2b4ffffff82858c63636bf6f5f8f6f5f8dedfe2eae9ecdedfe2
-b1b2b45b5a735a63735b5a735b5a735b5a735b5a73686b7d000000
-000000626b73626b738a9e9c7679845a636b82858cffffffb7bdbc6b737affffffcacad14a526b
-82858cffffffcacad14a5263d4d7d5ffffff82858c767984767984686b7d4a52634a5b62525a63
-525a6b5a636b525f5a3e525a878995ffffffa4a8ae525a636363734a525a3e525a949d9effffff
-949d9e525a63626b734a525aa4a8aeffffffa4a8ae4a525a686b7d5a5a63b7bdbcffffff747678
-4a525adedfe2f6f5f86b6b72f6f5f8d4d7d54a525aa4a8aeffffff8789955a5a63eae9ecdedfe2
-5a636bffffffcacad152525f747678ffffffb1b2b49ca0a3ffffff767984878995ffffff878995
-464a605a636b63637352525fb7bdbcffffff7679844a525af6f5f8d4d7d552525f52525f525a63
-63637363637365637f65637f5b5a735b5a735a526b686b7d000000
-000000626b73626b73f6f5f8ffffffeae9ecfffffffff7ff82858c4a5263cacad1ffffffeae9ec
-f6f5f8ffffff9ca0a33e525ad4d7d5ffffffffffffffffffffffffb1b2b4525a63636373626b73
-5a636b767984eae9ecdedfe2ffffffd4d7d563636b525a6b82858cdedfe2dedfe2ffffffcacad1
-5a63605a636b6363735a636b5a636beae9ecffffffcacad1eae9eccacad1747678ffffffdedfe2
-cacad1ffffffb1b2b463635fffffffd4d7d54a525a9ca0a3ffffff8789955a5a63f6f5f8dedfe2
-5a636bf6f5f8f6f5f8b1b2b4d4d7d5ffffff82858c949a91ffffffdedfe2878995eae9ecf6f5f8
-b7bdbcd4d7d5dedfe25a5261a4a8aeffffffdedfe2b7bdbcb7bdbcffffffcacad1b1b2b4eae9ec
-82858cb7bdbceae9ec7679845b5a735b5a735a5a6b747678000000
-000000626b735a636b767984a4a8aeb6c8c1b7bdbc767984525b735a63734a5263949d9ecacad1
-b1b2b4eae9ecffffff76798482858ca4a8ae9ca0a39ca0a3a4a8ae767984525a6b5a636b5a636b
-525a6b626b73cacad1d4d7d5a4a8ae5a636b5a636b525a6b747678dedfe2d4d7d5a4a8ae5a6360
-5a636b5a636b5a636b63636b525a636b6b72b7bdbcdedfe2d4d7d59ca0a352525f82858cd4d7d5
-dedfe2a4a8ae6b6b725a6360b7bdbca4a8ae5a52617b8a84cacad17679845a5a63b7bdbcb1b2b4
-63635ff6f5f8eae9ecdedfe2eae9ecb1b2b463637363636bcacad1fff7ff949d9e6b737adedfe2
-f6f5f8eae9ecb1b2b46363736b6b72dedfe2f6f5f8d4d7d5636373b7bdbcf6f5f8f6f5f8dedfe2
-82858cf6f5f8cacad15a5a6b6363735b5a735b5a73747678000000
-000000626b735a63735a636b525a6b4a52634a5b62525a6b525b73525a6b5a63734a52634a5263
-3e525a6b6b72a4a8ae686b7d4a52634a52634a52634a52634a525a525a6b5a636b525a6b5a636b
-5a636b525a6b4a525a4a5b62525a635a636b5a636b5a636b525a6b4a525a525a63525a635a636b
-5a636b5a5a6b5a636b5a636b5a636b5a5a6b52525f525a63525a6352525f63636b525a6352525f
-5a5a635a5a6363636b63636b52525f5a636b63636b635a6b525a6363636b6363735a5a6363636b
-63636bf6f5f8cacad152525f626b6b63636b63637363636b5a5a6363636b636373635a6b525a63
-63636b5a636b5a5a6b6363735a5a6b5a5a6363636b5a636b6363735a5a635a636b626b7352525f
-878995ffffff686b7d5a5a6b635a6b5b5a735b5a73747678000000
-0000005a63735a63735a63735a63735a63735a63735a63735b5a73525a6b525a6b5b5a735a6373
-5a6373525a6b4a5263525a6b5a5a6b5a636b52636b5a636b5a636b525a6b525a635a5a6b525a63
-525a63525a6b5a63735a636b5a636b5a5a6b525a6b5a5a6b5a636b5a636b5a636b5a636b5a5a6b
-525a6b5a636b5a636b5a5a6b5a5a6b5a636b63636b5a636b5a636b5a636b5a5a6b5a636b63636b
-63637363636b5a636b63636b63637363636b63636b626b736b6b726363736363736b6b726b6b72
-63635fffffffd4d7d5635a6b6b6b726c637363636b6363736b6b726c63736363736c63736c6373
-63637363637363637363637363637363637363636b6363736363736363736c63736b6b725a5a63
-7b8a849ca0a35a5a6b5b5a735b5a735b5a735a526b686b7d000000
-0000005a63735a63735a63735a636b525a6b525a6b4a5263525a6b5b5a73525a6b525a6b5a636b
-5a5a6b5a636b5a6373525a6b525a6b5a5a6b525a6b525a6b525a6b626b737679845a63735a636b
-7679846b737a52636b5a636b5a5a6b5263635a5a6b5a636b525a6b5a5a6b5a636b525a6b5a636b
-5a636b5a5a6b5a636b5a5a6b5a636b5a5a6b5a636b5a5a6b5a5a6b5a636b63636b5a636b5a636b
-63636b63636b63636b63636b63636b63636b63636b63636b63637363636b63637363636b6c6373
-63636ba4a8ae82858c6363736c63736363736363736c63736363736363736c6373636373636373
-6363735b5a73636373635a6b635a6b63636b6363735b5a7363636b636373636373636373636373
-5a5a635a5a6b6363735a5a6b5b5a735a63735a5a6b686b7d000000
-000000626b73525a6b8a9e9cdedfe2dedfe2eae9eccacad1767984525a6b525b735a63735a6373
-525b73525a6b5a5a6b525a6b5a5a6b5a636b5a636b5a636b4a525acacad1ffffff5a636b82858c
-ffffff949d9e52525f5a636b5a636b5a5a6b5a636b5a636b5a636b5a636b5a636b5a5a6b525a6b
-5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a63605a636b5a5a6b635a6b5a636b5a636b
-63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b
-63636b5a5a63635a6b63637363637363636b63637363636b63636b63636b635a6b5a5a6b5b5a73
-5b5a735b5a735a5a6b5a5a6b5a5a6b635a6b6363735b5a7363637363636b63637363636b63636b
-6363735a636b5a5a6b5a5a6b5b5a735b5a735a526b686b7d000000
-000000626b734a5263949d9effffffd4d7d5cacad1ffffffeae9ec686b7d525a6b525a6b4a5263
-4a5263525a6b5a636b525a6b525a6b4a52634a52635a636b4a525acacad1ffffff5a6360878995
-ffffff8789954a525a5a5a6b5a636b5a636b525a6b525a635a5a6b5a636b5a5a6b525a6b5a636b
-5a5a635a5a6b525a6b5a5a635a5a6b5a5a6b5a5a6b5a636b5a5a6b5a5a635a636b5a5a6b5a636b
-63636b63636b5a5a6b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b
-63636b63636b63637363636b63637363636b63636b63637363636b5a5a6b635a6b635a6b5a5a6b
-5a526b5b5a735a5a6b5a526b5a5a6b635a6b5a5a6b635a6b63636b5a5a6b63636b63636b635a6b
-5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a526b52526b686b7d000000
-000000686b7d525a63949d9effffff949d9e2b423ab7bdbcffffff8789954a5263686b7d949d9e
-8a9e9c5a6373525a6b626b7382858c8a9e9c878995626b734a525acacad1ffffff5a636b878995
-ffffff949d9e6363737679845a636b525a6b626b737679845a63735a5a6b5a636b5a636b5a636b
-5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b
-63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63637363637363636b
-63636b63636b63637363637363636b63636b63636b63636b636373635a6b635a6b63636b5a5a6b
-5a5a6b5a5a6b5a5a6b5b5a735b5a73635a6b635a6b63636b63636b63636b63636b63637363636b
-63636b635a6b5a5a6b5a5a6b52526b5a526b52526b686b7d000000
-000000686b7d4a5b62949d9effffff949d9e464a60cacad1ffffff82858c6b737aeae9ecf6f5f8
-ffffffdedfe25a6360949d9efffffffff7ffffffffdedfe24a525acacad1ffffff5a636b878995
-ffffff767984b1b2b4ffffff7476784a525a949d9effffff82858c4a525a5a636b525a6b5a636b
-5a5a6b5a636b5a5a6b5a636b5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a636b5a5a6b655a605a636b
-63636b63636b63636b63636b63636b63636b63636b63636b63637363636b63636b636373636373
-63636b63637363636b63637363637363636b63636b6363736363736363735a636b5a5a6b5b5a73
-5b5a735a5a6b635a6b635a6b5a5a6b636373635a6b5a5a6b63637363637363637363636b636373
-5a5a6b5a5a6b5a5a6b5a526b5a5a6b52526b524a6b686b7d000000
-000000686b7d525a639ca0a3ffffffdedfe2d4d7d5ffffffdedfe24a5b62cacad1f6f5f84a525a
-767984ffffff9ca0a3525a638789953e525aa4a8aeffffff6b737acacad1ffffff5a636b878995
-ffffff82858c767984ffffff9ca0a3464a48b7bdbcffffff626b73525a6b5a5a6b5a5a6b5a636b
-5a636b5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a636b5a5a6b5a5a6b5a636b
-63636b63636b635a6b63636b5a5a6b5a5a6b63636b63636b635a6b5a636b635a6b63636b63636b
-63636b63636b63636b63636b63636b63636b63636b63636b63636b635a6b5a5a6b5a5a6b5a5a6b
-5b5a73635a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b635a6b63637363636b63636b5a5a6b5a5a6b
-5a5a6b5a5a6b52526b5a5a6b5a526b52526b524a6b686b7d000000
-000000626b734a5b629ca0a3ffffffdedfe2ffffffeae9ec626b735a636bf6f5f8eae9ecb1b2b4
-b7bdbcffffffcacad14a5b6282858ca4a8aecacad1ffffff747678cacad1ffffff5a6360878995
-ffffff8a9e9c464a60ffffffcacad13e525aeae9ecd4d7d5525a635a636b5a636b5a636b5a636b
-5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a635a636b5a636b5a5a6b5a636b5a636b5a636b5a636b
-63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b
-63636b63636b63636b63636b63636b63636b635a6b63636b635a6b5a5a6b5a526b5a5a6b5a526b
-5a5a6b5b5a735a5a6b5a5a6b5a5a6b5a5a6b5a5a6b635a6b63636b63636b5a5a6b635a6b635a6b
-5a5a6b5a5a6b5a526b5a526b52526b525273524a6b686b7d000000
-000000626b734a5263949d9effffff82858c9ca0a3ffffff82858c5a636bfff7ffeae9ecd4d7d5
-dedfe2d4d7d5a4a8aeb1b2b4ffffffd4d7d5d4d7d5ffffff6b737acacad1ffffff5a636b878995
-ffffff949d9e393f41cacad1eae9ec63636bffffffa4a8ae4a52635a636b5a5a6b5a636b5a636b
-5a636b5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a635a5a6b
-5a5a6b5a5a6b5a636b63636b63636b63636b5a5a6b635a6b635a6b63636b63636b635a6b63636b
-63636b63636b63636b63636b63636b635a6b5a5a6b5a5a6b5a5a6b5a526b52526b52526b52526b
-5a526b5a526b5a526b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b635a6b5a5a6b5a5a6b
-5a5a6b5a5a6b52526b52526b52526b525273524a6b686b7d000000
-0000005a63734a52639ca0a3ffffff8a9e9c4a5263ffffffdedfe24a5263f6f5f8d4d7d53e525a
-3e525a464a60525a63fff7ffcacad1393f41878995ffffff6b737acacad1f6f5f8525f5a878995
-ffffff8789953e525a878995ffffff949d9effffff7b8a8452525f5a5a6b5a636b5a5a6b5a5a6b
-5a636b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a636b5a636b5a5a6b63636b5a636b5a636b
-5a636b63636b63636b63636b5a5a6b63636b63636b5a5a6b63636b635a6b63636b63636b63636b
-63637363636b635a6b63636b5b5a7363636b635a6b5a5a6b5a526b5a526b52526b52526b5a526b
-5a526b5a526b5a5a6b5a5a6b5a526b5a5a6b5a5a6b5a5a6b5a5a6b635a6b5a5a6b5a5a6b635a6b
-5a5a6b5a526b524a6b52526b524a6b525273524a6b686b7d000000
-00000065637f4a52639ca0a3ffffff9ca0a33e525aa4a8aeffffff878995a4a8aeffffffcacad1
-b1b2b4eae9ec82858cdedfe2eae9ec949d9ededfe2ffffff7b8a84b1b2b4ffffffb7bdbc949d9e
-ffffffdedfe282858c52525feae9ecdedfe2eae9ec5a636b525a6b5a5a6b5a5a6b5a5a6b5a5a6b
-5a5a6b5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a636b5a5a6b5a5a6b5a636b
-5a5a6b635a6b63636b63636b63636b63636b63636b5a5a6b635a6b63636b635a6b63636b636373
-63636b63636b636373635a6b63636b63636b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a526b
-5a526b52526b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5b5a735a5a6b5a5a6b5a5a6b5a5a6b
-5a527352526b52526b524a6b52526b52526b4a4a6b686b7d000000
-0000005a63734a526b767984cacad17679844a526b5a636bd4d7d5a4a8ae4a525aa4a8aeeae9ec
-eae9ecd4d7d56b737a767984eae9eceae9eca4a8aed4d7d57679846b737aeae9eceae9ec767984
-cacad1ffffffa4a8ae3e525a9ca0a3ffffffb7bdbc52525f525a6b5a5a6b5a636b525a635a5a6b
-5a5a6b5a5a635a5a6b5a636b5a5a635a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a635a636b5a5a6b
-63636b63636b63636b63636b63636b63636b635a6b63636b635a6b63636b63636b63636b63636b
-63636b63636b635a6b63636b63636b635a6b5a5a6b5a5a6b5a5a6b5a526b5a526b5a5a6b52526b
-5252735252735a5a6b635a6b5a526b5a5a6b5a5a6b5a5a6b5b5a735a5a6b5a526b5a5a6b5a5a6b
-52526b525273524a6b52526b524a6b525273524a6b65637f000000
-000000525a6b5b5a734a526b464a604a526b525a6b4a526b4a5263525a6b525a6b4a525a525a63
-525a63464a604a5a6b3e525a4a526352526b3e525a464a604a5263464a604a5263525a634a5263
-464a60525a6b5a5a6b52525f5a636bffffff949d9e4a525a5a5a6b5a5a6b5a5a63525a6b5a5a6b
-5a636b5a5a635a636b5a5a6b5a5a6b5a636b5a5a6b5a63605a5a6b5a5a6b5a5a6b635a6b63636b
-5a5a6363636b63636b63636b63636b63636b63636b635a6b63636b635a6b63636b63636b63636b
-63636b635a6b63636b635a6b63636b5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b52526b52526b
-5252735a526b5a5a6b5a5a6b5a526b5a5a6b5a526b5a5a6b5a526b5a5a6b5a5a6b52527352526b
-524a6b524a6b524a6b524a6b524a6b5252734a4a6b686b7d000000
-000000525b73525b73525a6b525b73525a6b525a6b525a6b5a6373525a6b525a6b5a636b525a6b
-525a6b525a6b525a6b52526b525a6b4a526b52526b52525f4a526352526b52526b4a526352525f
-5a636b464a60b7bdbceae9eceae9eceae9ec63636b525a6b525a6b5a5a6b5a5a6b5a5a6b5a5a6b
-5a5a635a5a6b5a5a6b5a5a6b5a5a635a5a6b5a636b5a5a6b5a5a63635a6b5a5a6b63635f5a5a6b
-655a605a5a6b63636b5a5a6b5a5a6b63636b5a5a6b63636b63636b63636b635a6b63636b635a6b
-63636b635a6b63636b635a6b5a5a6b635a6b635a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b5a526b
-5a526b52526b5a5a6b5a526b5a5a6b5a5a6b5a526b5a5a6b5a5a6b5a5a6b5a5a6b524a6b52526b
-52526b524a6b4a4a6b524a6b524a6b524a6b4a4a6b686b7d000000
-000000525b73525a6b525a6b5a5a6b525a6b525a6b5a636b525a6b525a6b525a6b4a5a6b525a6b
-525a63525a6b525a6b525a6b4a52634a52634a526b52526b4a52634a52634a526b52526b52526b
-5a5a6b4a525a82858cb7bdbccacad174767852525f5a5a63525a6b525a6b5a5a635a5a6b5a5a63
-525a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a636b5a63735a6373
-5a6373635a6b635a6b63636b63636b635a6b63636b63636b63636b635a6b63636b63636b63636b
-63636b63636b635a6b63636b635a6b5a636b635a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b
-5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b52526b52526b52526b
-524a6b524a6b494a73524a6b524a6b52526b4a4a6b686b7d000000
-000000525a6b5a636b52636b5a636b525a6b5a636b525a6b525a6b5a636b52636b646b635a5a63
-525a6b4a526b52526b525a6b4a526352525f4a52634a5263464a604a52635a52614a526352525f
-525a6b52526b4a52634a525a3e525a52525f5a5a6b525a63525a63525a635a5a63525a635a5a6b
-63635f5a5a6b5a5a635a5a6b5a5a635a5a6b5a636b5a636b655a605a636b5a5261794e457c4626
-794e45655a605a636b63636b63636b63636b5a63735a637363636b63636b635a6b63636b635a6b
-5a5a6b635a6b63636b635a6b635a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b
-5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b52526b524a6b525273524a6b
-524a6b4a4a6b525273524a6b524a6b524a6b464a60686b7d000000
-0000005a5a6b5a63734a52639c7e3c62736c525b734953745a5a6b4a5a6b7274429b9218646b63
-4a526b4a526b494a734a52634a4a6b424a6b424a6b464a60494a733e525a7b7a314a526b4a4a6b
-525a634a526b5c63509b9218807c45525b73525a6b525a6b52526b525a6b4a526b5a636b464a60
-727442635a6b5a5a6b5a5a6b5a5a6b5a5a6b655a60655a605a636b5a5a63a92b0cd31f00b11700
-b11700a6342163636b5a5a6b635a6b63636b794e45794e455a526163636b5a6373635a6b63636b
-635a6b635a6b635a6b5a5a6b63636b635a6b5a5a6b5a5a6b635a6b5a5a6b5a5a6b5a5a6b5a5a6b
-5a5a6b635a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b5a5a6b5a5a6b52526b52526b525273524a6b
-524a6b525273524a6b524a6b4a4a6b52526b4a4a6b686b7d000000
-0000005a636b5a6373525f5a9b921862736c5f735a807c455a636b49537476612c646b63525a63
-646b635a6360807c455a63605b6b51807c45646b5a52525f807c454c524d7b7a31525a63807c45
-525a6b52526b52634a7b7a317b7a316b7366807c455a5a6b807c455a5a6b807c455a5a6b727442
-8c86225a5a6b5a5a6b635a6b5a5a6ba63421d31f00c630115a6373a63421c21e00b11700d31f00
-b224009f1a00655a6063636b5a6373794e45b11700b117009f1a0081250c794e455a5a6b63636b
-63636b635a6b63636b635a6b63636b63636b635a6b5a5a6b5a5a6b5a5a6b635a6b635a6b5a5a6b
-5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a526b5a5a6b5a526b52526b52526b52526b524a6b524a6b
-5252734a4a6b524a6b524a6b524a6b52526b4a4a6b686b7d000000
-0000005a636b5a63735c63508c8622646b5a7d7a249b9218626b6b4953747b7a319b92185a5a5a
-9b921872694676612c7b7a317d7a249b92188c86225b633a9b92187274425d6b3f7269469b9218
-646b5a525273555a429b9218807c45535a4c8c86227b7a31807c455c63509b92187274428c8622
-8c86225b5a73655a605a6373794e45e22300d31f00c63011a63421ca2a009f1a00b22400d31f00
-b224009f1a00794e455a6373794e459f1a00b117009f1a009f1a007d15009f1a00794e4563636b
-635a6b63636b635a6b5a5a6b635a6b63636b635a6b5a5a6b635a6b5a5a6b5a5a6b5a5a6b5a5a6b
-635a6b5a5a6b5a5a6b5b5a735a5a6b5a526b5a526b525273524a6b52526b524a6b494a73524a6b
-524a6b524a6b4a4a6b524a6b5252735252734a4a6b686b7d000000
-0000005a636b525b735d6b3f9b9218807c455d6b3f727442646b5a4953745d6b3f807c45424a6b
-9b92185a636b8c8622807c455b633a76612c5d6b3f5b633a5b633a7b7a315d6b3f7d7a249b9218
-7274429c7e3c5d6b3f8c8622807c45646b5a9b9218575a33807c4576612c9b92187b7a315d6b3f
-7b7a31635a6b5a5a6b5a5a5ae62f10e22300d31f00e22300d31f00a92b0cb11700d31f00c21e00
-9f1a00794e456363735a5a5a9f1a00b11700b117009f1a009f1a009f1a00b11700794e455b5a73
-635a6b635a6b635a6b63636b5a63735a6373636373635a6b5a5a6b635a6b635a6b5a5a6b635a6b
-5a5a6b5a5a6b5a5a6b5a5a635a527352526b5a526b52526b52526b524a6b525273524a6b4a4a6b
-525273494a73524a6b524a6b524a6b5252734a4a6b686b7d000000
-00000063636b525b737b7a317b7a317b7a3176612c7b7a316b73664953747b7a31778469535a4c
-9b92187274428c862272744276612c7d7a247b7a315b633a7d7a247b7a3176612c7d7a24727442
-4a525a525f5a5b633a7b7a317d7a247b7a318c862263635f76612c7d7a24807c45555a427d7a24
-7b7a31635a6b5a636bc63011e223009f1a00e22300e22300a92b0c9f1a00d31f00ca2a009f1a00
-a634215a637363636b81250c4c1b0d4c1b0d4c1b0d9f1a009f1a00b11700a92b0c6b5a6b63636b
-6c637363636b6363735a52617732237732235a52616363735a6373635a6b63636b5a5a6b63636b
-63636b525a6b7b8a846273634a525a5b5a735a526b5a526b524a6b52526b525273524a6b524a6b
-524a6b524a6b525273494a73524a6b52526b4a4a6b686b7d000000
-000000626b73525a6b726946525a635d6b3f5c63505b6b515a6b5c495374575a339b9218726946
-555a42575a338c8622726946555a425b633a555a425b633a9b92185a5a5a7b7a31575a339b9218
-63636b525b734c524d9b92187d7765575a339b92185d6b3f9c7e3c4b52429b92185a5a5a8c8622
-9c7e3c525b73a63421ef1800c21e00c21e00f422009f1a009f1a00d31f00d31f0081250c50451e
-4a3e40525a6b7732234c1b0d060f10060f1025161881250c5b341b81250c4c524d393f412b2821
-393f414a525a5a526b773223b11700b117007d1500773223655a6063637363636b635a6b63636b
-5a5a6b74767894a5926380665263525a526b5a5a6b52526b524a6b525273525273524a6b524a6b
-525273524a6b4a4a6b524a6b4a526b5252734a4a6b686b7d000000
-0000005a636b5a63735a6373626b6b4953745a6373525b73626b6b6b7b6252526b42526b525a6b
-4a526b4a526b424a6b4a526b4a4a6b424a6b494a73575a33726946424a6b464a604a526b424a6b
-525a6b525a63525a6b52526b52526b52525f4953744a5263525a6b525a6b4a4a6b5a5a6352525f
-495374794e45a63421ef1800e22300e22300a92b0c9f1a00d31f00d31f00a92b0c7c46262b2821
-1821184a3e404c1b0d0d16182a31292c39292a33202a31292129212129212b28212b2821212118
-1821101821102d2718b11700b1170081250c81250c7d15007d1500773223655a60636373635a6b
-63636b94a5926b89665b6b515b5a735a526b5a526b524a6b52526b52526b524a6b4a4a6b524a6b
-494a734a4a6b4a4a6b4a4a6b524a6b52526b4a4a6b686b7d000000
-0000005a636b525b737274429b92187d7765495374495374727442807c45495374525a6b4a526b
-4a526b4a4a6b4a526b424a6b424a6b52525f494a734a525a4a4a6b4a4a6b4a526b535a4c807c45
-7b7a31646b5a494a73525a6b525a6b495374525a6b52526b52526b5252734a4a6b7b7a31626b6b
-794e459d7a66a5523aef1800f42200ef18007c46267c4626d31f00c21e0050451e3940311a1610
-555a4250451e212118394031394031394031394031394031394031394031394a3a3940312e3734
-2c39292b28212121182d27184c1b0d7d1500a92b0cc21e009f1a00c21e00794e455a637363636b
-525f5a5a6b5c5f735a5a636b5a52735a5a6b5a526b52526b52526b52526b524a6b525273524a6b
-524a6b524a6b524a6b524a6b52526b4a4a6b464a60686b7d000000
-0000005a636b525b735d6b3f7b7a31807c456b7b62646b5a8c86227d77656b7b62646b5a646b5a
-646b5a807c455a5a635c6350807c45494a73807c4552525f7274425a52614953744b52429b9218
-9b9218646b5a807c4563636b646b5a807c455a5a6363635f5a5a63807c4563635f5d6b3f726946
-84635f949d9ecd4825ef1800e22300f42200794e455b6b5176612c7c4626394031251618100810
-3940312b2821394031415240394a3a3940314152404b52424b5242535a4c4c524d535a4c4c524d
-4b5242464a4841524039403121372e1826222b282177322381250c5b341b5b5a73636373626b6b
-6b80755b6b515a636b5a5a6b5a5a6b5a526b5a5a6b52526b52526b524a6b525273524a6b52526b
-4953744a4a6b524a6b52526b52526b4a4a6b464a60686b7d000000
-00000052636b4953747b7a31c0852f5f735a8c86227b7a317b7a31807c458c86227b7a318c8622
-807c458c86227b7a317d7a248c86227269467b7a317269468c8622807c45494a73464a489b9218
-9b92185c63507b7a317274427d7a249b92187269467b7a317269465b633a8c86225d6b3fa5523a
-94a592bc7a65f42200ca2a00e22300c630115b6b517269465d6b3f555a42212118101010181818
-1008102e37344c524d4152404152404c524d535a4c535a4c52634a5c63505c63505c63505c6350
-5c63505c63505a63605c6350535a4c4152402e37341826221826220d16182129215a6360646b63
-5f735a5a6b5c5a5a6b5a5a6b525b7352526b52526b52526b52526b4a526b52526b524a6b4a4a6b
-52526b4a4a6b4a4a6b4a526b4a526b4a526b424a6b686b7d000000
-0000005a636b525b737b7a319b92185b6b519b9218807c457274425d6b3f9b9218807c45727442
-5b633a9b92187b7a315b633a5b633a7d7a2452526b555a429b9218807c45494a734b52429b9218
-8c862263635f8c86227b7a315b633a5d6b3f72744276612c727442807c45807c457d7a249a9680
-9a9680f42200d31f00a92b0cc630117269465b6b515b633a5c635041311d100810181818212118
-212921535a4c555a424b5242535a4c52635252634a535a4c5b6b514b52424152404c524d495a4b
-535a4c535a4c525f5a535a4c5263525c63505c6350485a424152402a3320394a3a495a4b627363
-6273635b5a735a637352525f7732235a5261525b7352526b52526b52526b5252734a4a6b524a6b
-4a526b524a6b4a4a6b4a4a6b4a526b4a526b464a60686b7d000000
-0000005a636b525b735d6b3f7d7a247b7a317b7a315a636b7b7a315d6b3f8c8622525a637b7a31
-5b633a807c454a525a7b7a315d6b3f7d7a24646b5a575a337b7a314a4a6b494a73555a4276612c
-5b633a7b7a317d7a247b7a3176612c7b7a317b7a317b7a317b7a317b7a318c86228c8622a5ae97
-e62f10e22300a92b0cb2240077322352634a7269467269463949291008102121211818182b2821
-495a4b5c6350535a4c535a4c52634a535a4c535a4c52634a495a4b182118181818394a3a394a3a
-4152404152404b52424152404c524d4b5242535a4c5263525c63505263528789956380664f6b50
-2e37344a525a5a52619f1a00c21e0081250c5b341b5a5273525b7352526b52526b4a4a6b4a526b
-525273524a6b4a4a6b4a526b4a4a6b4a4a6b464a6065637f000000
-0000005a6373525b735c63505d6b3f52634a7b7a31807c455c635052525f7b7a31807c455c6350
-4a525a8c86227274424b52425d6b3f474a369b9218464a488c8622646b5a494a734b524263635f
-464a48555a428c862272744252634a555a424b52429b92187269468c86229c7e3c807c45cd4825
-f42200b22400b22400e22300c63011555a42726946474a36100810212118182118212118415240
-5c6350526352535a4c52634a526352535a4c52634a4152402c3929212118060f102b2821394031
-394a3a464a483940312e37344152404b52424b5242415240495a4b5a63605a6b5c6b8966535a4c
-2a31291821182d271881250cb117007d15007d15007d15004c524d494a735252734a4a6b52526b
-4a526b4a4a6b4a4a6b4a4a6b4a4a6b4a4a6b424a6b636373000000
-0000005a6373525b73525a6b525b73525b73646b5a5a636b525b73525b7342526b525a634a526b
-52526b464a604a4a6b4a526b4a4a6b494a73424a6b4a4a6b424a6b4a4a6b464a604a4a6b4a4a6b
-4a4a6b4a4a6b464a6049537452526b5252734a4a6b4a4a6b464a60a5523a8cb0a1bd734ff42200
-ca2a00b11700bd734fc63011f42200a64b235f735a474a36181818212118101010181818394a3a
-5a6b5c5c635052634a526352535a4c52634a535a4c3940312c3929212118101010101010212921
-3940313940311010100808081010102c3929495a4b495a4b62736c525f5a5f735a495a4b5c6350
-5a6b5c4b52422a31292121182d27187d1500b117009f1a007d1500773223524a6b4a4a6b52526b
-4a4a6b4a4a6b4a526b4a4a6b4a4a6b4a4a6b464a6065637f000000
-000000525b73525a6b525b73525b73525a638c8622626b6b525b73646b5a525f5a727442495374
-4a526b494a7352525f424a6b727442726946726946424a6b424a6b424a6b4a4a6b4a4a6b4a526b
-4a4a6b52526b52526b52526b5b5a7352526b52526b525273794e459ca28fb7937bf42200d31f00
-9f1a00a5523aa1c1b7cb543bef1800f42200c63011485a422121211818182121212129214b5242
-5a6b5c5a6b5c5c63505c6350535a4c535a4c2c39292121183940311818181818180d1618101010
-2121212c39290811081010101010100718102a31295a6b5c8aa0946273635f735a181818101810
-4152405c63505263524b52422a31292b28214c1b0d25161881250cd31f00794e4549537452526b
-4a4a6b4a4a6b4a526b4a4a6b4a4a6b4a526b464a60686b7d000000
-000000525a6b4953745a636b7784695b6b519b9218525b734a526b9b92185b6b518c86226b7366
-52525f807c454a526b424a6b7d7a248c86225d6b3f5a5a6363635f52525f52526b5a5a634a526b
-4a4a6b524a6b524a6b4a526b52526b52526b495374794e459d7a66a5ae97e62f10e22300b22400
-c63011b1b2b4a1c1b7b7937bf42200e22300f422004c1b0d0d16182121182121214152405c6350
-5b6b51646b635b6b515a6b5c485a424b524227272c1018101818181826221818181818181a1610
-1010101010100808081010101010100008052e37345a6360627363587b4e4b5242071810000000
-0808082a3129535a4c5c63505c63504152402129210d16180d161841311d464a6052527352526b
-4a526b4a4a6b4a4a6b4a4a6b4a4a6b4a4a6b464a6065637f000000
-0000005a63734953747b7a318c86227274429c7e3c5a6373464a608c86227269468c86227b7a31
-7274429b921863635f424a6b5b633a9b92187274427b7a318c86225b633a8c86227b7a315a5a63
-4a4a6b52526b524a6b52526b52526b495374655a609d7a669cada5cd4825ef1800b22400b22400
-b09f93a1c1b7b1b2b4b6c8c1cd4825f42200f4220081250c0d16182b28212d27182b2821526352
-646b5a627363646b635f735a535a4c485a422c3929212121181818181818181818181818101010
-1018101010101010101010101010101821185a63606b7b6b587b4e4c524d2e3734101010001008
-0808082e37344c524d4b5242535a4c5c6350535a4c3940312129180d1618181818393f41524a6b
-52526b4a4a6b4a4a6b4a4a6b4a4a6b4a4a6b464a6065637f000000
-0000005a63734a526b7274425d6b3f7b7a31587b4e52527342526b7274424a525a5d6b3f5b633a
-8c86229b921863635f463d7b575a339b92187b7a318c86228c8622575a339b92187d7a24494a73
-4a4a6b4a4a6b4a526b52526b4a526b524a6ba5523a94b3a5cb543bf42200c63011b11700bc7a65
-a1c1b7a5b4a5b6c8c1bc7a65f42200e22300c21e002121182121212b28212b28212b28214b5242
-5f735a6273636273636b736652634a212921212118182118181818181818181818181818101010
-1818181010101010101010101018104a525a62736c5f735a2f4231394a3a212121081108101010
-0808082129215263524b5242415240495a4b5263525c63504b52422c392918181827272c525b73
-4a4a6b4a4a6b4a4a6b4a4a6b494a734a4a6b464a60686b7d000000
-0000005a63734a526b7b7a317b7a317b7a31807c45495374464a607b7a315c63507b7a315b633a
-7d7a24646b5a4a4a6b424a6b5b633a7d7a248c86227b7a31524a6b575a339b92187b7a31494a73
-4a4a6b4a4a6b52526b4a4a6b495374a5523a8a9e9cbc7a65f42200c63011b11700bc633ca1c1b7
-a5b4a5b6c8c1b09f93f42200d31f009f1a002d27180d16182a31292d27182b28212b2821415240
-6273636b73666b73666273635a6b5c212118181818181818181818181818181818101010101010
-0d1618181818181818001008525f5a9ca0a35f735a485a42080808101010101010101010081108
-101010080808394a3a5a6b5c5263524b5242415240535a4c526352535a4c394a3a21291827272c
-3e525a494a734a4a6b424a6b4a3e40524a6b424a6b686b7d000000
-000000525a6b525b734b52429c7e3c525f5a5c6350495374494a735d6b3f807c45555a42535a4c
-4b52429b9218525273424a6b535a4c555a42535a4c76612c807c45464a48575a335c6350525273
-52526b4a4a6b524a6b495374794e459d7a669ca28ff42200e22300b11700a64b23a5b4a5b1b2b4
-a1c1b7b1b4a2e62f10d31f00b224005b341b39492939403125161825161841311d2b2821394a3a
-5f735a6b73666b73666b73665f735a2e37340d1618181818181818101810181818181818101810
-1010101018100808084152409cada56b896652634a071810101010080808071810101010101010
-1010100718101010104b5242646b5a6b7b6b525f5a415240555a4252635252634a4b52422c3929
-1821182e37344a4a6b4a3e40b117009f1a004a3e4065637f000000
-000000525b73525b734953745a6b5c495374494a734a526b52526b424a6b4a4a6b4a4a6b494a73
-524a6b424a6b4a4a6b4a4a6b4a4a6b424a6b494a73464a60424a6b4a4a6b4a4a6b494a734a4a6b
-4a4a6b524a6b495374794e4584635f9cad9ce62f10e22300b22400c63011a5ae97b1b2b4a1c1b7
-b6c8c1cd4825e22300c21e007732234e52345b633a587b4e4f6b502a33202b2821182118182622
-646b5a6b73666b7b6b6b73665f735a415240181818212118101810181818101810101810181818
-1818181010102129215a6360788c7b5f735a182118080808101010071810100810101010101010
-0718101010100808081821184152405a6b5c8aa094646b63415240495a4b525f5a52634a535a4c
-41524021291818262281250cb2240081250c7d1500794e45000000
-000000525a6b494a73807c459b92185a63605a5a63494a73424a6b494a73494a73424a6b424a6b
-5b633a63635f463d7b424a6b424a6b463d7b464a48646b5a463d7b4a4a6b4a4a6b4a4a6b525273
-4a4a6b4953745a5261a5523a8cb0a1cb543bf42200b22400b11700b7937ba1c1b7a5b4a5b6c8c1
-cb543be62f10c21e0081250c4e52344e5234516b3d76612ca64b232c39292b2821181818182110
-646b5a62736c6b7b6b6b73666273634b5242182118212118182622181818181818101810101010
-1818181010106b737a7384765f735a21372e080808101010080808080808071810101010101010
-0808080718100718100808082a3129394a3a535a4c6273630d16182a332041524048634d526352
-535a4c4b52422e37341821184c1b0d531100531100a5523a000000
-0000005a6373424a6b8c86224953745d6b3f9b92185b5a73807c45494a73807c4563635f52525f
-9b921863635f807c454a526b646b5a5a5a638c8622726946494a734a4a6b4a4a6b5252734a4a6b
-4a4a6b5252737c4626879488bc7a65f42200c630119f1a00bd734fa1c1b7a5b4a5b6c8c1b7937b
-ef1800ca2a00a92b0c474c294e52344e52345d6b3fcd4825f422005b341b0d1618081108415240
-6b73666b73666b7b6b6b73666273635c6350212118181818181818182118181818181818181818
-080808525f5a7384766b8966394031081108101010101010081108080808080808101010101010
-081108100810080808060f101010104152404152402c3929101010081108101810394031485a42
-5a6b5c526352495a4b41524021372e1818180010084c524d000000
-000000525a6b494a73575a339c7e3c535a4c9c7e3c3e525a8c86225c63508c86227b7a31727442
-9b921852525f7d7a245d6b3f8c86227274429b9218646b5a494a734a4a6b4a4a6b524a6b524a6b
-495374a5523a7d8476b7937bef1800d31f009f1a00a5523a9bb5ada5b4a5b6c8c1b09f93e22300
-d31f00a92b0c5b341b4e52344e5234474c29b09f93b7937bf42200f42200a92b0c4a3e405a6b5c
-5f735a6b736662736c6b7b6b6b73665a6b5c2a3320101010181818181818212118182622101010
-393f4162736c778469485a42071810101010101010101010101010101010080808071810100810
-0718100808081010100808080000001818182f42310808080808081010100808082a312962736c
-4152405b6b51525f5a52634a495a4b4152401818184c524d000000
-0000004a526b5252733f33657d7a247274425a636052525f9b92185c63505b633a76612c5d6b3f
-5d6b3f63635f9b9218726946555a427274425b633a646b5a494a734a4a6b4a4a6b524a6b495374
-794e4584635f94a592e62f10e22300a92b0cc63011a5b4a5a5b4a5a1c1b7b7c7b2e62f10d31f00
-b224007732233e52314e52343e52319d7a66b6c8c1b6c8c1cb543bf42200f42200cd48254f6b50
-6273634c524d4b52426b80756b7b6b6273634152401818181818181818181818181818182e3734
-646b636b7b6b4f6b50181818101010101010101010101010101010071810101010060f10071810
-10081010101008080808080827272c2e3734394a3a2c39292121211018100808080010086b8075
-6b7b6b495a4b5a6b5c5b6b51526352495a4b415240646b63000000
-0000005252734a526b5a63607b7a317b7a317274425d6b3f8c862272694676612c5d6b3f7b7a31
-7b7a317b7a318c86225d6b3f7269465b633a8c8622646b5a494a73494a734a4a6b495374655a60
-9d7a66949d9ecd4825f42200b22400b22400b09f939bb5ada5b4a5a1c1b7cb543be22300ca2a00
-81250c3e52314e52343e5231726946b7bdbcb6c8c1b6c8c1b1b2b4e62f10f42200f42200a5523a
-48634d4a3e403940315c63506b807562736c646b5a2a31291818181818181018102121215a6b5c
-6273635f735a2129210718101a1610101810101010101010101010101010101010101010071810
-1010100811080d16185c63507a8c7284947b8c947b8c947b7d84766b73665c63502a31292b2821
-5a6b5c5a6b5c5263526273635a6b5c526352394a3a6b8075000000
-000000525273424a6b76612c9c7e3c3e525a7b7a315b633a9c7e3c535a4c555a42535a4c575a33
-9b92184b52429b92185c63505a5a5a464a489b9218646b5a494a73524a6b494a735a526ba5523a
-8a9e9cbd734ff42200c63011b224009d7a667b8a84a5b4a5b6c8c1bc7a65f42200ca2a00a92b0c
-474c294e52343e52315b633ab1b2b4b6c8c1b7c7b2b7c7b2b6c8c1b09f93f42200f42200a63421
-495a4b394a3a464a48394a3a62736c6b7b6b6b7b6b4b52421821181821180d16185a636062736c
-6b89662f4231181818181818101010101010101010101010101010101010101010101010101010
-1010100718106b736684947b788c7b858c757784697d84765b6b515b6b517784697a8c726b7b6b
-5c63504b5242495a4b5a6b5c6b7b6b2e37340000005a5a5a000000
-000000494a73495374424a6b494a73494a73494a73494a73424a6b494a73494a73494a73494a73
-463d7b424a6b494a73424a6b494a734a4a6b424a6b494a734a4a6b4a4a6b495374a5523a879488
-bc7a65f42200ca2a009f1a00bc633c7679849cad9ca1c1b7b7937bf42200ca2a00a92b0c50451e
-474a363e5231474c29b09f93b6c8c1b7c7b2b6c8c1b6c8c1b6c8c1b7937bf42200cd4825464a48
-2c3929464a48464a48394a3a4c524d7384766b7b6b5f735a2e37341821184c524d7476786b8966
-415240101010181818212118181818101010101010101810101010101010101010101810181818
-0718104b52428c947b858c758c947b8c947b6b7b62525f5a535a4c535a4c535a4c5b6b515b6b51
-7784697784695b6b51495a4b394a3a0718100000004a525a000000
-0000004953744953744953744a526b494a73494a73495374495374494a734a526b4a526b4a526b
-52526b52526b4a526b4a4a6b495374494a734953744a4a6b4a4a6b495374794e457d7765949a91
-e22300e22300a92b0ccd48257b8a848aa094a1c1b7b1b4a2e62f10d31f00b224005b341b474a36
-4e5234474c299d7a66b6c8c1b1b2b4b6c8c1b7c7b2b6c8c1b1b4a2f42200d31f004e5234394a3a
-1008102c3929474a362c39292e37346b7b6b6b7b6b6b7b6b485a422b423a949d9e6b7b624f6b50
-1821181818181818181818181018101018101010101010101018101818180d1618101810071810
-3940316b89668c9c7b8794888c947b7d8476646b5a5a636052634a5a6b5c6b7b62535a4c5b6b51
-5c63505263526b7b626b8966555a421818180000004c524d000000
-0000004953744a4a6b494a73494a73525273494a734a4a6b4a4a6b424a6b494a7349537442526b
-4953744a526b4a4a6b4a4a6b494a734a526b4a526b4a4a6b494a73655a60a5523a8a9e9ce62f10
-e22300b22400c630117d77657b8a84a5b4a5b6c8c1cd4825e22300b224007732234e52344e5234
-39492984635fb7c7b2a1c1b7b6c8c1b6c8c1b6c8c1b1b2b4e62f10f422007c4626394929476336
-5c63502b28212c39292121184c524d6b7b6b6b7b6b62736c6b7b6b8789955a6b5c5f735a2a3320
-18262221212118181810181010101010101010101010101010101010101010181010101027272c
-6b7b626b7b6b9ca28f9ca28f84947b94a59284947b646b5a646b5a849473646b5a5f735a6b7366
-646b5a495a4b5b6b517784695f735a6b73662c39295a5a5a000000
-000000495374494a733ba1683ba1683ba1683ba1683ba1683ba1686b7b6276612c7c4626a5523a
-655a60524a6b4a526b4953744a4a6b49537452526b4953745a5261a5523a8a9e9ccb543bf42200
-b22400b2240084635f6b80759cada5b6c8c1bd734fef1800c21e0081250c474c294e5234474a36
-5b633ab1b4a2b6c8c1b7937be62f10b1b4a2b6c8c1cb543bf422007c4626394929474c293e5231
-516b3d2a33201818184152406b7b6b62736c6b7b6b6b7b6b7b8a847384766b7b622c3929101010
-1818181821182121211818181818180d16181a16101018100d16181818181010101821185f735a
-7d847677846984947ba5b4a5889e8a8c9c7b84947b6b7b6b778469646b5a6b7b6b788c7b858c75
-7784697784695f735a6b7b626b73666b7b626b7b62879488000000
-000000495374494a733ba1683ba1683ba1683ba1688cb0a1526363738476b09f93cb543b794e45
-5a2586524a6b52526b525273494a73524a6b4a526b525273a5523a7b8a84bc7a65ef1800c63011
-9f1a00a5523a6b8075949d9ea1c1b7b7937bef1800ca2a009f1a00474c294e52343e52314e5234
-b09f93b6c8c1b1b4a2cb543be62f10e62f10bd734ff42200a92b0c394929474c293949293e5231
-212918181818394a3a5f735a646b636b73666b7b6b6b8075646b636b7b6252634a181818181818
-1018101818181818181818181821181818181010101818181818181018101010102a3320738476
-7d84767a8c727a8c72a5b4a5a5ae978c9c7b7d84765b6b517d84766b73668c947b8c947b849473
-858c757a8c727d84766b7b6b6b73666b7b626b7b62949a91000000
-0000004953745252733ba1683ba1683ba1687a9487686b7d393f415a52618789957476785a2586
-4b188a5a5273525273495374494a73525273495374794e457d77659a9680ef1800e223009f1a00
-cb543b8aa0948aa094a1c1b7b09f93e62f10d31f00a92b0c5b341b4e52344e5234474c299a9680
-b6c8c1a1c1b7cb543bb1b4a2b1b2b4e62f10f42200e62f104e5234474c29474c293e52312a3320
-1818183940316273635a6b5c646b5a5f735a646b635a63606b89665f735a62736c4152400d1618
-2121210d16181010101010101818181821181818181818181818181818181010102e37347a8c72
-858c7584947b788c7b8c9c7bb7c7b29ca28f8c947b646b635f735a6b7b6b84947b8c947b84947b
-858c757a8c727a8c727a8c727784696b7b62646b5a879488000000
-000000495374494a733ba1683ba168626b735a63737679844c524d6b6b726b6b72393f41767984
-733f73524a6b5252734a4a6b525273495374794e459d7a6694a592e62f10e22300a92b0ca92b0c
-8794889bb5ada5b4a5b1b2b4cd4825e22300b224007732233e52314e52343e52319d7a66b6c8c1
-8a9e9ca5523abc7a65a1c1b7a1c1b7b7937bd31f00f42200c63011394a203e52312a3320101810
-2a31295a6b5c5b6b515a6b5c5c63506b80756b737a6273635f735a6b7b6b6b7b6b6273632a3129
-1818182121181818181818181018101010100d1618181818182118212118181818394a3a858c75
-7a8c728494738c947b858c75a5ae97b7c7b2a5ae978c947b646b5a6b7b627a8c728c9c7b84947b
-84947b858c75858c757a8c727a8c727a8c726b7b62949a91000000
-000000495374494a733ba1683ba1683f33654c524d5a5a6327272c393f41393f41393f41464a60
-cb543b733f734953745252734953745a526ba5523a8a9e9ccd4825ef1800b22400b117009a9680
-8794889cada5a1c1b7cb543be22300c21e0081250c4e52344e52343e5231794e45b1b4a294b3a5
-84635fbd734fa1c1b76b8075a5b4a5a1c1b7bc7a65d31f00f42200a634212f4231101010182118
-5c63505a6b5c5a6b5c5a6b5c6273638794889cad9c5f735a5263524152406b7b6b6b7b6b5c6350
-2121211821181821181818181818181818181818181010101818181821182121211818185b6b51
-889e8a84947b8c947b84947b8c947bb1b4a2b7c7b29cad946b7366646b5a77846984947b8c947b
-788c7b858c757a8c727a8c727a8c727a8c726b8966949a91000000
-0000005252734953746b89666b7b62393f41464a4818262241311d2624102e37344a3e403e525a
-bd734f794e45495374495374525273a5523a8a9e9cbd734fef1800ca2a00b11700bd734f8cb0a1
-9cad9ca1c1b7bc7a65f42200ca2a00a92b0c474c294e5234415a31575a33b1b4a2a1c1b77d7765
-cb543b9ca0a36b736663635f738476a5b4a5a1c1b7bd734fe22300a92b0c101810101010415240
-646b5a5b6b515a6b5c5263527384769bb5ad587b4e5b6b51394a3a3940314152406b807562736c
-4b52421818181818181821181821181818181818181821181818181818180d1618182118394031
-8c9c7b8794888c9c7b8794888c947b889e8ab7c7b2b1b4a29cad946b73665a6b5c7a8c72889e8a
-8c947b84947b858c75858c757a8c727a8c72778469949a91000000
-0000005252734953749c7e3c84635f393f41464a48393f412b282127272c393f413f3365464a48
-bc7a656b5a6b494a73495374794e457d77659a9680ef1800ca2a009f1a00a5523a6b8075889e8a
-a1c1b7b09f93e22300ca2a009f1a0050451e4e5234476336474c299a9680a1c1b77b8a84cb543b
-b09f938aa094747678949d9e9bb5ada5b4a59dbdad9d7a66e2230077322310251b2c39295a6b5c
-5b6b515a6b5c5b6b516273635a6b5c6b7b625f735a415240394a3a394a3a3940314c524d6b7b62
-627363394a3a0808081818181818181821181818182121212121182121212129211821184b5242
-8c9c7b8794888c947b8c947b8c947b84947b9cad94b7c7b2b1b4a26b73667d8476778469858c75
-889e8a8c947b84947b849473858c757a8c727a8c72949a91000000
-0000005a5273495374a64b23bc7a653e525a393f4182858c6b6b725263525c63502f4231526352
-9d7a664b5242495374794e4584635f949a91e62f10e22300a92b0cc630116b80757384769cada5
-b1b4a2e62f10ca2a00b224005b341b474a364e5234474c299d7a66b6c8c17b8a84a5523abc7a65
-7a94877476787384769cada5a5b4a59dbdad9a9680d31f00a634216b7b625f735a6b7b625f735a
-5a6b5c5b6b5162736c5a63606b7b6b587b4e415240394a3a394a3a394a3a2c39292129212a3129
-4b52425c63502a31290010080811081010101010101818181818181821181826222b28212c3929
-4b52428c947b8794888c947b8c947b8c947b84947ba5ae97b6c8c1b1b4a27d84766b7366646b5a
-84947b8c9c7b84947b84947b7a8c72858c757a8c72949a91000000
-0000003e525a424a6b733f73733f737679846b6b72a4a8ae6b7b622b50203ba168587b4e3ba168
-6b89666b89662b5020516b3d94ad9ccd4825ef1800b22400a92b0c84635f7a94879cada5a1c1b7
-cb543bd31f00b2240081250c3e52314e52343e5231726946b6c8c18cb0a1794e45bd734f9bb5ad
-7b8a84738476878995a5b4a59bb5ad94a592c63011e62f105d6b3f5d6b3f587b4e587b4e5f735a
-5f735a587b4e7d8476738476587b4e5c63504152401818181018102c39292a31292a3320182118
-3940314152403940311818180811080718100808080010080811081010100d1618182118212921
-1829185c63509ca28f889e8a8c947b889e8a8c947b8c9c7bb7c7b2b6c8c1a5ae978c947b858c75
-7a8c7284947b8c9c7b84947b849473788c7b7a8c7294a592000000
-000000214231214231463d7b4b188a5a2586a4a8aeb7bdbc4f6b5b2b50203ba1688494736b8966
-94af9494af942b50203ba168cb543bf42200b22400b2240084635f7a948794a592a1c1b7bd734f
-e22300c21e0081250c474c294e52343e52315b633ab1b4a28cb0a17d7765cb543b949a91738476
-7b8a847a94879cb5a59bb5ad94ad9ca64b23e2230076612c516b3d5d6b3f5d6b3f5d6b3f5d6b3f
-5d6b3f5d6b3f476336485a42395229516b3d5f735a5b6b512f4231212918212918182118212918
-627363949d9e6273634152401821181818180d1618101010101010071810081108071810101810
-2129212a33207784698c9c7b8c9c7b8794888794888494738c947bb7c7b2d4d7d59cad9494a592
-8c9c7b77846984947b8c9c7b84947b84947b7a8c7294a592000000
-0000002b423a214231463d7b5a2586733f73e62f10cb543b9d7a662b50203ba1683ba1683ba168
-3ba1686b89663ba1687d7a24f42200ca2a009f1a00bc633c7b8a84879488a1c1b7b7937be22300
-ca2a009f1a00474c293e52313e52314e5234b09f93a1c1b7738476cd4825b1b2b47a9487738476
-6b8075a5b4a5a5b4a59dbdada5523aef18007c46264f6b505d6b3f516b3d5d6b3f5d6b3f516b3d
-4f6b50476336394929394929516b3d516b3d516b3d516b3d5d6b3f213218101810182118535a4c
-5f735a7b8a84b1b2b47384765263522b2821212118212121212121212121182118182118181818
-2129182c3929788c7b9ca28f8c947b8c947b84947384947b8c947b8c9c7bd4d7d5b7c7b29cad94
-8c9c7b788c7b5f735a84947b8c947b84947b858c75949a91000000
-0000002b423a2f4231393f414a3e407732234a3e404a3e40415a292b502094af9494af948c9c7b
-94af9494af943ba168a92b0ce223009f1a00a634218aa094a5b4a5a1c1b7b09f93e62f10ca2a00
-a92b0c50451e3949293e5231394a209d7a66b6c8c17a9487bc633cbc7a659bb5adb1b4a27b8a84
-94a592a5b4a59dbdad9d7a66d31f00a64b23516b3d5b633a516b3d5d6b3f5d6b3f516b3d587b4e
-4763363e52313949294763365d6b3f5d6b3f476336474c292129181018101821184b52425f735a
-646b5a5f735a889e8ab1b2b47784695c635018211818181818211821212127272c2a33202a3320
-27272c2c3929535a4c646b5a8c947b84947b84947b8c947b8c9c7b8c9c7b9cad94d4d7d5cacad1
-9cad946b7b625c63507784697a8c728c9c7b858c75949a91000000
-0000002b423a2142392142392142311742362142311742361a42241a42241a42241a42242b5020
-5d6b3f587b4ea64b23ca2a00a92b0ca92b0c9ca28f7b8a849bb5ad9bb5adcd4825d31f00b22400
-5b341b3949293e523139492984635fb7c7b28cb0a19d7a66bc633ca1c1b77384769bb5ad9bb5ad
-a5b4a59bb5ad949a91ca2a00c630115b633a516b3d5d6b3f5d6b3f516b3d516b3d5d6b3f476336
-395229394929415a31516b3d516b3d52634a3e52312942180718101018104152405b6b51526352
-5a6b5c5f735a646b5a8aa094b1b2b46b7b6b495a4b101810101010182118182622182118212121
-2129212a312921292121292152635294a5928c9c7b949a919ca28f9ca28f8c9c7b9ca28fd4d7d5
-d4d7d59ca28f8c947b525f5a646b5a7d847684947b949a91000000
-0000002142392142392b423a2142392b423a2142312b423a214239214231174236314222a5523a
-8aa094cb543bf42200b22400b2240084635f94ad9c9cad9c9dbdadcb543bd31f00b2240081250c
-394929474c293949295b633ab1b2b49dbdad7d7765cb543ba1c1b79bb5ad9cada57384769cada5
-9cb5a594ad9ca63421e223005b633a5d6b3f5d6b3f516b3d516b3d516b3d5d6b3f4763363e5231
-394a3a395229415a31415a313e52313e52313142220811081018103940315b6b5152635252634a
-5c63505a6b5c5f735a5f735a889e8a8cb0a16b7b6b4c524d071810080808080808101010101010
-1018101818182b28212a31292a3320646b5a9ca28f889e8a9ca28f889e8a8c9c7b8c9c7b9ca28f
-b7c7b2d4d7d59cad947784697d84766b7b626b8966949a91000000
-0000002142392142392142312142392142312142392142312142312142312142317c4626879488
-bd734fef1800b224009f1a00bc633c52636b94a592a1c1b7bc7a65d31f00c21e0081250c394929
-394929394929474c29b09f939dbdad6b7b6bcd4825b1b4a287948862736ca5b4a59cad9c949d9e
-9dbdada5523ae223007c4626516b3d5b633a516b3d5d6b3f516b3d5d6b3f516b3d415a31394929
-395229415a31415a313e52313e5231394a201018100811082a31295c635052634a52634a52634a
-52635252634a5a6b5c646b5a646b5a788c7b8794886b7b6b4c524d081108080808080808080808
-0808080811081010101821182a33202a33208c947b889e8a8c9c7b8c9c7b9ca28f9ca28f9ca28f
-9cad94b7c7b2d4d7d5a5ae97858c755c6350646b5a949a91000000
-0000002b423a2f42312142392142312142392142312142312142311742367c46267d84769d7a66
-e22300ca2a009f1a00a5523a788c7b7a9487a1c1b7b7937bd31f00ca2a009f1a00474c29394929
-394929394a209a9680a1c1b7879488a64b23b7937b94b3a563635f62736c94ad9ca5b4a59dbdad
-9d7a66d31f00a64b2348634d5b633a516b3d516b3d516b3d516b3d516b3d476336395229394929
-415a31415a31415a313952293e52311821180808082129215c635052634a52634a5c635048634d
-7c4626e62f107269464f6b5b6273634c524d394a3a7384766b7b6b535a4c181818080808080808
-0010080811080d16182129181018105c63509ca28f8c9c7b9ca28f94a5929ca28f9cad94a5ae97
-9cad949cad94b7c7b2d4d7d5b1b4a28c947b7a8c72738476000000
-0000002b423a2142312b423a2142392142392142312e37341742364a3e409d7a66889e8ae62f10
-e223009f1a00c630117476787b8a849dbdada5ae97c63011d31f009f1a005b341b314222394929
-3142227d7765b6c8c17a9487a5523abc7a6594b3a562736c646b63889e8a9cada59cb5a58c947b
-d31f00c63011476336516b3d516b3d5d6b3f516b3d516b3d5d6b3f485a423e5231394929415a31
-415a313e52313e52313e523121321808080818211852634a52634a52634a52634a48634d794e45
-cb543bef1800d31f00a63421794e452a31292121182c39296b7b6b6b7b6b525f5a101810080808
-0811081010102121182121182a33204b52424b5242394a3a778469a5ae97a5ae97a5ae97a5ae97
-9cad949ca28f9cad94b7c7b2d4d7d5b7c7b28c947b949a91000000
-000000214239214239214239214231214231214231174236394031a5523a8cb0a1cd4825f42200
-a92b0ca92b0c9d7a666b80759cb5a5a5b4a5cd4825d31f00b11700773223314222394a20314222
-794e45a5b4a56b8075726946bc633c9bb5ad6b80756b7b6b949d9ea5b4a59cada594a592c63011
-d31f005b633a516b3d5b633a516b3d516b3d52634a516b3d4763363952293949293e5231415a31
-415a313e5231415a293142220808081018104b524252634a555a42535a4c52634a555a42cb543b
-b6c8c1bc7a65d31f00f42200e223004c1b0d1818182516182b28216273636b7b6b5c6350212921
-1821182129211821182121182129212129212c39292c39292942216b7b6ba5ae979cad94a5ae97
-9cad94a5ae979cad949cad94b1b4a2b7c7b2b1b4a2a5b4a5000000
-0000002142312b423a2142312142312142312142392c3929a5523a8cb0a1bc633cef1800b22400
-9f1a009d7a666b737a767984878995733f73c63011a92b0c81250c3142223949292b5020575a33
-b09f937a9487949d9ea63421b1b4a287948862736c889e8a9cada59cad9c8cb0a1a5523ad31f00
-7c4626516b3d516b3d516b3d516b3d516b3d516b3d4763363e5231394929395229415a31415a31
-3952293e5231394929081108081108415240535a4c485a42555a42535a4c485a42a64b23b1b4a2
-9bb5ada1c1b7bc7a65c21e00e22300e62f105311001a16101a16102b28215a6b5c6b7b6b5c6350
-2a33201826222b28212129212121182129212a33202c39292e37342a33206b7b6ba5ae979cad94
-a5ae979cad949cad94a5ae97858c75849473a5b4a5b7c7b2000000
-0000002b423a2142392142392f42312142311742365b341b949a919d7a66f42200ca2a009f1a00
-a5523a686b7d4b188a4b188a4b188a4b188a4b188a4b188a3f3365393f412b5020474c299a9680
-a1c1b77b8a84bc633cb7937b8cb0a1525f5a646b639cada59cad9c94b3a59d7a66d31f00a64b23
-4763365b633a516b3d516b3d516b3d516b3d516b3d3e52313e5231395229415a313e52313e5231
-3e52313949291021100000002e373452634a555a42555a42535a4c48634da64b23b7937ba1c1b7
-a5b4a594a5929dbdadbc7a65d31f00f42200c630111010102121181008102e37346380666b7b6b
-5a6b5c27272c0d16182129181826221821181818182129182129211821185b6b519cad949cad94
-9cad94a5ae97a5ae978c9c7b7a8c727a8c72849473a5b4a5000000
-0000002f42312142312142311742362142392e37346b8075949a91e22300e223009f1a00a63421
-7d84763f33654b188a4b188a4b188a4b188a1906351906351906351906353f336584635f9cada5
-94b3a5bc7a65bd734f8cb0a16b807562736c7a9487a5b4a58cb0a1858c75d31f00c63011476336
-52634a5d6b3f516b3d516b3d516b3d516b3d3e52314763363e52313e52313e52313e5231395229
-395229182918000805101810485a42555a42495a4b535a4c48634d7c4626bc7a65b6c8c1a5b4a5
-9cada5738476879488a1c1b7b7937bd31f00d31f004c1b0d101010251618394031627363627363
-6b7b6b5a6b5c2a3129071810101010181818101810181818101810394031778469889e8a8c947b
-9cad94a5b4a5889e8a7a8c72858c757a8c727a8c72949a91000000
-0000006273634f6b5b495a4b4152402b423a4f6b5b949a91cd4825ef1800a92b0ca92b0c7d7765
-494a735a25865a2586767984733f733f33651906351906351906351906351906354b188a767984
-84635fbd734f7b8a8462736c525f5a7b8a84a5b4a594ad9c949a91c63011ca2a00555a42516b3d
-516b3d516b3d516b3d516b3d516b3d415a313e52313e52313952293e52313e5231395229395229
-2a33200008050811082c392952634a495a4b555a4248634d575a33cb543bb6c8c1a5b4a57a9487
-646b637476785a6b5ca5b4a59dbdadb7937bef180081250c060f102b2821294221535a4c627363
-6273636273635f735a2a31290811081010101818181010102c39295f735a778469858c752a3320
-41524084947b84947b858c757a8c72858c75858c75949d9e000000
-0000007a94877a9487788c7b7384766b7b6b6b80756b7b62a5523a7c4626a92b0c84635f5a636b
-5a2586463d7b4f6b5b6b7b6b7d7765646b63393f41190635100810190635190635190635190635
-cb543ba5b4a58aa094646b6394a5929cad9c9cad9c8cb0a1a64b23d31f0076612c476336476336
-516b3d516b3d516b3d52634a485a423952293e52313e52313e52313952293952293e5231314222
-081108080808182110415240485a42555a42495a4b4b5242cb543bb1b2b49cb5a56b8075646b63
-6b8075879488788c7b949d9ea1c1b7cd482581250c0010082121182a33202f42315263525b6b51
-5f735a5f735a627363627363394a3a1018101010102129185b6b515f735a5f735a3940312a3129
-2129212132185f735a7a8c727a8c72858c7584947b9cad9c000000
-000000a1c1b7b1b2b49dbdad9cad9c949d9e7a94877b8a846b80756b80756b89666b7b6b5a6b5c
-5b5a73495a4b5b6b516273636b73666b73666b7b6b415240190635190635190635190635a63421
-9a96806b8075a5b4a58aa094949d9e9cad9c8cb0a19c7e3cd31f007c4626516b3d516b3d516b3d
-4763364763364763364763363949293e5231395229395229395229395229394929394929071810
-001008101810213121485a42485a42485a42485a42a63421b1b4a2a1c1b77384768aa0949cada5
-5a636094a5929bb5ad9dbdadcb543bb117000800081818182a33202c392952634a52634a495a4b
-52634a5a6b5c627363627363627363495a4b182118555a426b7b625c63502a31292a31292a3129
-2c392921291839403184947b84947384947b889e8aa5b4a5000000
-0000006273636b80757a94878aa0949cb5a59dbdad9dbdada5b4a59cad9c8aa0947a9487788c7b
-7384767384766b80756b7b6b6b73666b73666b7b6b6b7b62858c7574767819063581250cbc7a65
-94b3a562736c6b7b6b9cb5a594ad9c94ad9c9d7a66c21e00a63421516b3d575a33476336516b3d
-476336516b3d476336395229415a313e52313e52313e5231395229394929395229102110000805
-101810182110394031485a424b5242495a4b7c4626b7937ba1c1b7b1b2b4889e8a6b80757a9487
-646b63a5b4a5a1c1b7bc7a65c21e001810070808082a33202c3929535a4c52634a495a4b4b5242
-495a4b48634d4f6b505f735a627363627363526352394a3a4b52422a33202129212131212a3129
-2b28212c39295f735a6b7b626b8966858c75a5b4a5a5b4a5000000
-0000002e37342c39292f4231394a3a495a4b4f6b5b6b7b6b788c7b889e8a94ad9c9cad9c9cad9c
-949d9e94a592889e8a7b8a84889e8a788c7b6273636b7b6b7384768aa09484635fa5523aa1c1b7
-62736c6273637a94879cad9c94ad9c879488c63011c63011575a33476336476336476336476336
-4763364763363952293e52313952293952293e5231395229394a3a395229182918001008101010
-1821181829184b5242485a42495a4b7c4626bc7a65b1b2b4a5b4a594a5929bb5ad879488738476
-a5b4a5a1c1b79a9680e223004c1b0d0000082b28212c3929485a4252634a535a4c485a42415240
-4b5242485a42485a425263525a6b5c6273636273635b6b512e373418211821292127272c213121
-2129215c63505f735a6b7b623940312c3929849473a5b4a5000000
-000000274a3721423921423921372e1826221531212a3129394a3a394a3a41524048634d4f6b5b
-6b89667384767a9487949d9e9cb5a57a94877b8a847384766b7b6b6b7b6bbd734fa5ae97738476
-62736c6b7b6b9cad9c949d9e8aa094a64b23d31f005b633a516b3d52634a516b3d516b3d516b3d
-516b3d3e52313e52313e5231394929395229394929394929395229294221001008080808182918
-1821102f4231535a4c495a4b4e5234cb543ba1c1b7a5b4a59dbdad6b7b6b879488a1c1b7a5b4a5
-a1c1b7a5b4a5e62f105311000000081821182129212f423152635248634d495a4b4b52424b5242
-415240415240485a42495a4b4b52422a31295263526380665f735a415240212921182622182118
-4b52426b7b625f735a555a421818182a31292a3320738476000000
-00000021423921423921423917372b071810071810526352949d9e889e8a7b8a84794e455b341b
-394031394031394a3a4f6b5b62736341524052634a5a63606b7b6b5f735a788c7b9cad9c5a6360
-5c63509cada594a5928cb0a184635fe223007c4626516b3d516b3d516b3d476336476336476336
-415a31394a3a3e52313949293e52313949293952293952292b5020081108001008102110182118
-182118415240485a42415240a64b23b1b2b4a5b4a5a5b4a57384766b7b6b738476a5b4a59bb5ad
-a1c1b7cb543b9f1a000000001a16102129211829181821102f4231485a424b5242415240415240
-4152407c4626794e45274a371821181a16102121184c524d627363627363495a4b212921394031
-6b89665f735a5b6b511818181018102c39292a31296b8075000000
-000000214239214239274a372b423a153121415240949d9e94ad9c9dbdadb7937bca2a00ca2a00
-9f1a0039492921321821372e485a42485a42393f414b188a463d7b6c6373626b7394ad9c6b8075
-7a948794ad9c8cb0a19d7a66d31f00a92b0c393f4147633647633647633648634d516b3d476336
-395229485a423e52313e52313e5231395229394929394929101810001008101810212118102108
-2a3320535a4c415240a63421b09f93a5b4a594a592738476646b6362736c94a592a5b4a5a1c1b7
-bd734fb11700000008101010212918212918212918212921213121415240415240415240415240
-4e5234c21e00c21e0081250c7d15000d16181a1610181818415240627363627363526352394a3a
-555a426b7b622121180718101018102a3129213121747678000000
-0000002b423a2142392b423a214231394a3a889e8a94af9494ad9c9ca0a3c63011ca2a009f1a00
-50451e394929394929213218394a3a394a3a3f3365463d7b463d7b4b188a4b188a767984889e8a
-949d9e8aa0948c947ba92b0cc21e001906351906353f3365476336476336476336516b3d3e5231
-3e52313952293e5231395229395229394929395229182910000805071810182110182110182118
-415240495a4b7c4626bc7a65a1c1b7a5b4a5889e8a646b635a6b5c7b8a849cada5a1c1b7b7937b
-d31f001810070808082129182129182129182129211829182a33204152404b52424152404e5234
-a634219d7a66b22400e22300f4220081250c1a16101a16101a16102e37345a6b5c6273635a6b5c
-394a3a2b282107181018181810181021372e2a33206b8075000000
-0000002142312142392142392142317c462694a59294ad9c9cb5a5cb543bd31f00b224005b341b
-214231394929294221646b5a6b7b6b3f3365463d7b463d7b463d7b5a25864b188a4b188a82858c
-8cb0a1889e8aa63421d31f0027272c1906351008101906354c524d516b3d516b3d415a31395229
-3e52313952293952293952293949293e5231294221000008081108182110182118182110212921
-41524050451ebd734fa1c1b7a5b4a594af9462736c7a948762736ca5b4a59dbdadb09f93e62f10
-5311000000002121182131212129182129182129211829182a31294b5242415240415240a63421
-9d7a668cb0a1949a91c63011ca2a00f42200b117002d2718212118251618485a425f735a5a6b5c
-5f735a415240182118071810101810212921212921747678000000
-0000002142392142392b423a1742367c4626b7937b9dbdadbd734fd31f00b2240081250c394929
-3e5231395229575a33b09f93788c7b767984463d7b463d7b463d7b463d7b463d7b4b188a4b188a
-65637f84635fb117007c4626190635100810060f101906353f3365516b3d415a313e52313e5231
-3949293952293952293949293e52313142220010080008051821101821181821101018102f4231
-474a36cb543ba5b4a5a5b4a5a5b4a57384766b8075788c7b94a5929bb5ada5b4a5cd48257d1500
-0000001818182129182129182129182129182129181829182a332041524041524081250c9d7a66
-8cb0a194a5928cb0a1949a91a64b23c21e00f4220081250c060f10394a3a5a6b5c4f6b505b6b51
-5a6b5c5f735a535a4c213121071810212921182918747678000000
-000000274a37214239274a371742364c1b0dbc7a659a9680d31f00b2240081250c2f4231153121
-21372e3949299a96809bb5ad62736ca5523a9d7a66463d7b463d7b463d7b463d7b463d7b5a2586
-4b188a4b188a7732233e525a3949290000081008101906354b188a4a525a3952293e5231394929
-3952293952293e52313949292b5020071810000805101810182118182110182110182918394a3a
-a64b23b09f939bb5ada5b4a5788c7b6b80756b80759cad9c9bb5ad9dbdadcb543b9f1a00000000
-1010102129182129182129181829182129182129182129182b28212b543e773223bc633c8cb0a1
-949d9e9cad9c949d9e9cad9c9cada5bc633cc21e00c21e005b341b495a4b48634d52634a526352
-5b6b515b6b515a6b5c4f6b502e3734182118182118738476000000
-000000214239214239214239214231181818c63011e62f10ca2a00a92b0c2a332017372b174236
-1010107d7765a5b4a59dbdad9a9680a5523aa1c1b76b737a463d7b463d7b463d7b463d7b463d7b
-463d7b5a25864b188a4b188a5a25863f33654b188a4b188a4b188a3f3365395229394929395229
-3952293949293952293e523118211000000010181018211818211018211818211021372e7c4626
-b7937b9dbdad9cada5889e8a62736c788c7b879488a5b4a59dbdadbc7a65c21e00080008080808
-21291818291821291821291821291818291818291821291818262241311da64b23949d9e94ad9c
-94ad9c94ad9c9cad9c9cad9c94ad9c94b3a59d7a66c6301181250c2b543e535a4c48634d495a4b
-485a4252634a5a6b5c5a6b5c5b6b51394a3a10251b7b8a84000000
-0000002142392142392142392b423a10251b4c1b0da92b0c81250c2d2718072219182622071810
-794e45a5b4a59dbdad9ca28fa5523a9cada5738476495a4b6b7b6b686b7d463d7b463d7b463d7b
-463d7b5a2586463d7b5a25864b188a4b188a4b188a4b188a4b188a2b50203949293e5231395229
-3949292b50203952292129180008050811081821181821101821101821100722195b341bbc7a65
-a1c1b79cad9c889e8a5a6b5c6273637b8a849cad9c9dbdadb7937bd31f00251618000000212118
-2129182129182129212129181829182129182129181826222d2718a92b0c9ca28f94ad9c9cad9c
-9cad9c9cad9c9cada594ad9c9cad9c8cb0a1b09f93a634211531212a3320394031495a4b394a3a
-394a3a415240495a4b4f6b504f6b5b5a6b5c4152407b8a84000000
-000000214231214231214239274a3717372b0722190722190722190722190d1618060f104a3e40
-a5ae979cb5a59cb5a5bc633c9a96807a9487646b636b80758aa09494af9482858c733f735a2586
-463d7b5a2586463d7b463d7b4b188a1906354b188a3f33652a3320394a202b5020394a20314222
-3142222b50202a332000100800100818211010251b18211018181810251b2d2718cb543ba1c1b7
-94a592646b636b80755a6b5c6b7b6ba5b4a59dbdad9ca28fe62f10531100000000181818212918
-2129181829181829181829181821181829182129211829189f1a00b7937b8cb0a19cad9c5a6b5c
-8aa09494ad9c8aa0949cad9c8cb0a19ca28fa634212a33202131212131212131212f42312f4231
-394a3a394a3a394a3a41524048634d587b4e4f6b5b949a91000000
-00000021423121423121423921423121423110251b1018100d1618072219060f102d27189ca28f
-9cb5a5a1c1b7794e459d7a668cb0a1525f5a6273638aa094889e8a8a9e9c7d7765d31f007c4626
-495374463d7b5a25864b188a3f33654b188a4b188a2b28212b50202f4231314222294218294221
-2942182942210811080008051018101021101018101821101021101a1610a63421a5b4a59cb5a5
-646b63788c7b5a63606b7b6b949d9e9cb5a59bb5adcd48257d1500000000182108212918182918
-21291821291821291821291818291821291810251b81250cbc7a658cb0a19cada5889e8a627363
-62736c73847694ad9c9cada59cb5a5bc633c41311d2131212a33202129212c39292131212c3929
-2f42312f4231394031394a3a394a3a2a3129485a42949a91000000
-0000002142392142392142312142392142312142311531211531210722191818188c947b9bb5ad
-9dbdad858c755b341b788c7b4152402c392948634d7a94878aa0947d8476c21e00c63011415a29
-415a29476336485a42393f41393f413f336527272c2b5020314222294218294221314222294221
-314222101810000805101810182110102110182110182110071810a63421b09f9394b3a59cb5a5
-889e8a4c524d94ad9c949d9ea5b4a59dbdadcb543b9f1a00000008101010212918182918212918
-182918212918182918182918212918153121531100bc633c8cb0a19cad9c94a5925263527b8a84
-738476949d9e94ad9c94b3a5bd734f4c1b0d1531212a33202131212a31292c39292129182e3734
-2f42312f42312f4231394a3a2129211a161018181882858c000000
-00000021423921423121423921423921423121423921423121423917372b7d7765a5b4a59cb5a5
-94a59277322348634d485a4221372e394a3a5263525f735a889e8aa63421ca2a00575a33415a31
-476336476336476336415a29415a31394a202b5020314222294221314222294221294221314222
-18211000080508110818211010181018211818211008211081250cb7937b9dbdad889e8a738476
-9dbdad889e8a7b8a849cb5a59dbdadbc7a65b11700080500080808212918182918212918212921
-21291821291821291821292115312141311dcd48258cb0a19cada59dbdad62736c738476788c7b
-94ad9c94ad9c94b3a5bc7a6581250c17372b2a33202131212131212a33202131212c39292f4231
-3940312f42312b423a2b28211010100d16181018107b8a84000000
-000000214231274a372142392f423121423921423921423117372b794e459cb5a594b3a59cb5a5
-7c46264b52424152402c3929394a3a48634d4f6b504f6b507c4626d31f0076612c415a31415a29
-415a29415a29476336415a313949292b5020394929314222294218294221294218294221213218
-00100800100818211018211810251b1818180722194c1b0dbc7a659dbdad8aa0949cb5a57b8a84
-7384769dbdada5b4a59dbdadb7937bd31f00181007080500182118212918212918182918212918
-2129181829182129181829182b2821a92b0c949a919dbdad6b736662736c7384766b7b6b8aa094
-9cad9c94b3a59a9680a634211531212131212131212a33202131212131212c39292f42312f4231
-2f42312f42313940319f1a0081250c81250c2d271882858c000000
-000000274a37214231274a3721423921423121423121423121372ea64b239cad9c9dbdad794e45
-555a42394a3a2a31292f423148634d4f6b504f6b50474c29c21e007c4626476336415a31415a31
-415a29415a314763363952293142222b5020314222294221314222294221314222213921001008
-001008101810102110102110181818082110251618bc633c9bb5ad94ad9c646b636b8075a1c1b7
-7b8a84788c7b9bb5ad9cad94e62f10531100000008181818212918182918212918182918182918
-212918212918212918182622a92b0cb7937b94b3a59cb5a5879488495a4b5a6b5c788c7b9cad9c
-94b3a5a5ae97a634212d271821312121292121321821372e2131212c39292f42312f42312f4231
-2f42312c392981250ca5523ac63011ca2a00ca2a009a9680000000
-0000002142392142392142312142312b543e2b423a21423117423681250cbc7a65858c755b341b
-4f6b504f6b50394a3a4f6b504f6b504f6b504b52429f1a00c63011476336485a42476336415a31
-415a31415a29415a293142222b5020314222294221314222294221294218294221101010000805
-071810102110182110101810102110101810a63421a5b4a594b3a594a592627363627363889e8a
-9dbdad949d9e9cb5a5cd48257d1500000008101010212918182918182918212918182918212918
-21292121312115312181250cbc7a658cb0a1889e8a9cb5a59dbdad646b5a8aa0949bb5ad9cada5
-9cb5a5a64b2341311d1531212a33202131212131212129182a31292f42312b423a3940312f4231
-2f42317d150084635f8cb0a1879488a64b23ca2a00b7937b000000
-0000002142392142392142392142312b543e214239214231174236213121a634217732234f6b50
-2e3734485a424f6b5048634d4f6b5048634d81250cc63011575a33415a31476336415a31415a31
-415a29415a292b50202b5020314222294218314222294221314222314222102110000805071810
-10211010181010211018211807181081250cb09f9394b3a59cad9c788c7b6273636b7b6b889e8a
-9cada59dbdadbc633c9f1a00000008080808182918182910182918182918182918212918182918
-2129181531214c1b0dbc633c94b3a59cb5a5889e8a6b80759cb5a59cad9c8aa0949cad9c94b3a5
-bd734f5b341b1531212a33202131212131212129212131212f42312f42312f42312f42312b423a
-4c1b0da5523a8aa0948aa09494ad9c949d9ea5523ab09f93000000
-000000274a37274a37274a372142312142312142312142391742360722194c1b0d5c6350485a42
-394a3a2b423a4f6b505263524f6b505b341bca2a0076612c415a31415a31415a31415a29415a29
-415a312b5020314222314222294221314222294221294221294221213218001008001008101810
-101810102110182110072219531100b7937b94b3a59cad9c94a5925a63605a6b5c8794889cb5a5
-94b3a5bc7a65ca2a001008100808081821101829182129181829182129182129182129182b2821
-1531212d2718cd48259cada594b3a594ad9c9cada594a5926b80758aa0949cb5a594b3a5bc7a65
-81250c1531212131212a31292131212131212129212e37342f42312f42312f42312f423141311d
-a634218aa0948aa09494a592949d9e8cb0a19bb5ada4a8ae000000
-000000214239274a3721423921423921423921423121423917423681250c794e4548634d2c3929
-2c39294f6b505263524f6b5050451eb117007c4626415a31415a31476336415a29415a31476336
-3952292942212b5020314222294221294221294221294221213921001008001008101810102110
-0d16181821100722194c1b0dbd734f9dbdad94ad9c6b8075638066646b636b8075949d9e9dbdad
-9a9680e22300181007080500181818182918182918182918212918182918212918212918153121
-2b2821c630119ca28f9bb5ada5b4a5889e8a6b80759dbdad949d9e788c7b94b3a59a9680a63421
-1531212131212a33202a31292129212129212131212131212c39293940312f42312c3929a92b0c
-8794888a9e9c94a59294ad9c94ad9c94af9494ad9ca4a8ae000000
-000000274a37214239274a372142312142392f42311742365b341ba5523a4f6b5b2f4231415240
-495a4b4f6b504f6b504b52429f1a00a63421476336415a31476336415a31415a314763363e5231
-2b50202f4231314222294221314222294221294221294218081108001008101810101810102110
-18211010251b1a1610a5523a9bb5ad94a5926b807562736373847687948894ad9c9cb5a59cad9c
-e62f10531100080500101810182910182110182918212918182918212918182918212918153121
-a92b0cb7937b94b3a5788c7b6b8075788c7b495a4b7a94879dbdad9cb5a59cad9ca64b232d2718
-21372e2a33202a31292a31292131212131212131212129212131212c39292e37347d15009d7a66
-8cb0a194a59294ad9c94ad9c94ad9c949d9e9cb5a5b1b2b4000000
-000000274a37274a37274a37274a372b423a174236394031a5523a788c7b48634d2f4231415240
-4f6b504f6b50495a4b7d1500c63011415a29415a29415a31415a31415a31415a31415a292b5020
-314222314222314222294218294221294218294221101810000805101810102110101810182118
-182118071810a63421b09f9394b3a562736c6b7b6b62736c62736c8aa09494ad9c94b3a5cb543b
-7d150000000010101018291818211818211021291818291818291818291821291815312181250c
-bd734f9bb5ad7b8a8462736c62736362736c889e8a62736c9cb5a594b3a5bc633c4c1b0d17372b
-2a332021372e2c39292131212129212131212129212131212a33201531217d15009d7a668cb0a1
-94a59294ad9c949d9e94ad9c94ad9c94ad9c9cb5a5a4a8ae000000
-0000002b543e2b543e2b543e274a37274a37274a37a92b0c9a96804f6b5b495a4b48634d526352
-48634d48634d5b341bca2a00575a33415a29415a31415a31415a31415a31415a292b5020314222
-314222294221294218294221294221314222182910000805081108102110181818102110182110
-08211081250cb7937b8cb0a194ad9c788c7b62736c6b7b6b7b8a849cb5a594b3a5bd734fb11700
-0000000808081821181829181821101829182129181829182129182129181531214c1b0dcb543b
-94b3a59cb5a59cad9c5a6360788c7b6b807594a5929cad9c94b3a5bd734f4c1b0d17372b213121
-2131212131212a312921372e21292121312121292121312117372b4c1b0da5523a8a9e9c94a592
-94ad9c94ad9c94ad9c94ad9c94ad9c94ad9c9cb5a5a4a8ae000000
-000000274a372b543e2b543e2b543e2b543e773223ca2a00a5523a6b80754152404f6b50526352
-4f6b5050451eb117007c4626415a294763363e5231415a31415a31415a292b5020314222314222
-294221294218294218294221294221213218001008001008101810182110101810181818082110
-4c1b0dbc7a6594b3a594ad9c889e8a9cada58794886b80759cad9c94b3a5bc7a65c21e00181007
-0000081821101821101821181829181821181829182129182129181826222d2718cd48259cad9c
-9cb5a5788c7b889e8a9dbdad62736c788c7b9bb5ad94b3a5b7937b81250c1531212b2821213121
-21312121312121312121292121312121312121312117372b4c1b0da6342194ad9c9cb5a594a592
-94ad9c94ad9c94ad9c94ad9c94ad9c94b3a5bc7a65b7937b000000
-000000274a37274a372b543e2b543e50451eca2a00a92b0cb224009d7a6663806648634d4f6b50
-474a369f1a00a63421476336415a31415a29415a31415a29476336395229314222314222294221
-314222294221294221294221294218080808000805101810102110101810182110072219262410
-bc633c9bb5ad94ad9c8794885a6b5c6b80759cad9c9cb5a594b3a59ca28fc63011531100000000
-101810182118182110182918182118212918212918212918182918182918a92b0cb09f9394b3a5
-a5b4a57384765a63607a94879dbdada5b4a594b3a59a9680a92b0c182918213121213121212921
-2131212a31292131212129182129212129212131212d2718a92b0c9ca28f788c7b6273639cb5a5
-94ad9c94ad9c94ad9c94ad9c8cb0a19a9680a634217b8a84000000
-000000274a37274a372b543e2b543e773223b22400a92b0cb22400b224005b633a4f6b50485a42
-81250cc63011415a29476336415a29476336415a29415a313e52312b5020294221314222294218
-29421829421829421829422107181000080508110810211010181010211010251b1a1610a63421
-9cad9c8aa0947a94876273636b80757a94878aa0949cb5a594ad9ccd4825531100000000101010
-18291818211018291818211018291821291821292121291810251b81250cbc7a6594b3a5a5b4a5
-94a59262736c7b8a84646b639cb5a594b3a59cad9ca64b232d27181531212a332021372e213121
-2129212a312921292121312121292121312118262281250c9d7a6694b3a56b8075525f5a62736c
-8aa09494ad9c94ad9c94ad9c9ca28fa64b23294221878995000000
-000000274a372b423a2f42312b543e2b543e81250cb22400b22400b2240081250c4b52425b341b
-c21e0050451e174236274a372b50203e5231415a29415a312b5020294221294221294221294221
-29421829421829422110210800080508110810181010181010211018181807181081250cb09f93
-9bb5ad788c7b4152406b80755a6b5c94a5929cb5a594b3a5cb543b9f1a00000000080808182110
-18211818211018211818211018291818291826241010251b7d1500bd734f94b3a59cad9c94ad9c
-7384766b7b6b788c7b94ad9c9cada594b3a5bc633c4c1b0d182622212921213121213218213121
-2a31292131212131212129212132181826227d15009d7a6694b3a57384765a6b5c6b8075738476
-8aa09494ad9c94ad9c8cb0a1a64b2341311d21372e879488000000
-0000002b543e2b543e274a37274a37214239415240a92b0ca92b0ca92b0c81250c531100c21e00
-5b341b17423621372e17372b17372b17372b17372b1a422410251b0d1618153121213218294218
-294218294218212918000805080808101810102110101810182110082110531100b7937b8cb0a1
-7384767a948762736c5a63607a94879cad9c94b3a5bd734fb11700000008000805182110102110
-1821101821181821181829181829102129181531214c1b0dcb543b8cb0a19cada5a5b4a5627363
-7b8a845a6b5c9cb5a59cada594b3a5bd734f4c1b0d182622212918212918212918212918212918
-21312121372e2a3320213121153121531100a5523a94ad9c8aa09462736362736c7a948794ad9c
-94ad9c94ad9c94b3a5bc633c5b341b17372b2c3929879488000000
-000000274a372142311742362142391531210718102624109f1a00a92b0c7d1500a92b0c81250c
-07221910211010251b21372e17372b17372b17372b17372b10251b060f10001008081108060f10
-1021102a33200010080010081018101018101021101818180821104c1b0dbd734f8cb0a19cad9c
-6273634152405a6b5c6b80759cad9c94b3a5b7937bca2a00181007000000181818182110182118
-1821101821101821101829182129181826222d2718a634219ca28f9cada59cada57384765a6b5c
-889e8a9bb5ad9cad9c94b3a5b7937b81250c182918212918182918182918212918182918212921
-1531212129182a33201531212d2718a634219cad9c94ad9c7b8a846b80755a6b5c8aa0949cad9c
-94a5928cb0a1bc7a657732231531212a33202c3929878995000000
-000000153121464a485a52611818180d16184c524d4a525a21211881250cb22400b22400182118
-0722190811080d16182f4231394a3a21423117372b17372b17372b072219071810080808001008
-0808080718100808081018101018101018101018101021101010107c46269cada5879488738476
-9cada56b807562736c94a59294b3a59ca28fc63011531100000000101010182110182110182110
-182110182110182118182118212918182918a92b0c9a968094b3a59bb5ad788c7b738476738476
-7b8a849cad9c9cb5a5b09f93a92b0c182918182918212918182918212918212921212921213121
-2129212131212131212d2718a92b0c949a9194ad9c7384765a6b5c5a6b5c7384769cb5a594af94
-8cb0a19a968081250c2139212131212a31292c3929879488000000
-000000153121a4a8ae82858c8794882e3734a4a8ae7d847682858c4c1b0da92b0c2d2718072219
-10251b10251b3f33653f33653142223940312e373418262215312117372b071810081108081108
-0718100811081010101021101018101818181021101018104c1b0d7d847694ad9c8aa0946b8075
-7384769cad9c94a5929cada594ad9ccd48257d150000000010101018211018211010251b182110
-1821181821101821102129181531217d1500bc7a6594b3a59cad9c889e8a646b63646b6362736c
-9cada59cada59cad9ca64b23262410153121212918182918212921182918212918212918213121
-21292121312118262281250c9d7a669dbdad7384766b807562736c8794889cb5a594ad9c94ad9c
-9ca28fa634212a33202131212131212131212c3929878995000000
-0000001531219ca0a34a525a949a91393f41878995393f41949a9100100818262208211010251b
-07221910251b27272c3f336510081018291821291818211807181008211010251b060f10071810
-0808080808081018101018101018101018101021104c1b0d555a4273847694a5927b8a8494ad9c
-7384767384769cad9c94b3a5bc633c9f1a00000000080808182110182118182110182110182110
-182110182118262410072219531100bd734f8cb0a19cad9c9cb5a5646b638794886b7b6b738476
-949d9e9cb5a5bc633c4c1b0d182918212918212918212918212918212921212918212918213121
-2131211531217d1500bd734f9bb5ad7a94875a63605a6b5c6b7b6b94ad9c94ad9c94ad9c94ad9c
-a64b2341311d1531212a33202131212129182c3929879488000000
-0000001826229ca0a34a525a949a912e3734949a914a525a8794880010081531210d1618072219
-0722190722190d1618190635190635190635182622182110182918071810060f10071810071810
-0010080808080010081018101018100718102624107c462648634d788c7b7384765263526b8075
-9cad9c7a94878cb0a1bc7a65b11700080500080500182118182118212918212921182118182118
-1821181821100722194c1b0dcd48258cb0a19bb5ad4f6b5b6b7b6b6b8075525f5a7b8a84a5b4a5
-94b3a5bd734f5311001531212b282121292121291818291821291810251b10251b1829182a3320
-17372b4c1b0dbc633c94b3a58794884c524d7384766b80759cad9c94ad9c949d9e8cb0a1bc633c
-5b341b1531212a33202131212131212131212c3929878995000000
-000000072219a4a8ae747678879488393f41949a91464a48878995072219182622072219212918
-a5523aa5523a2a33200718100d1618190635733f73190635071810071810001008001008001008
-0811080010085b341bbc633c5b341b1a16105b341b4f6b5b5b633a9d7a66525f5a6b7b6b7b8a84
-889e8a9ca28fb7937bb11700181007000000101010102110102110101810102110182110182110
-2b28217c4626a64b23a6342194a592949a91bd734fbd734f72694662736c7a9487889e8a94b3a5
-b7937b7d15003949297c462607221921291810251b2129181829187c4626a5523a41311d153121
-4c1b0da92b0cb7937b9cb5a54f6b5b7384766b807594b3a594ad9c94ad9c8cb0a1bc7a655b341b
-1826222132182131212131212131212a332018211882858c000000
-000000072219b1b2b4b6c8c182858cb1b2b48794884a525a87948807181018262207221941311d
-a5523aa5523a7c46267c46267c462650451ec0852f41311d5b341b7c46262d27187c46267c4626
-001008181818bc633c2624101a1610a634217269467269467c46269c7e3c7269469d7a669d7a66
-9d7a66c0852fcd4825a64b237732232d271876612c5b341b50451e7c46267c462610251b102110
-41311dbc633cbc633c9a96809cb5a56b80759c7e3cbd734f646b5ab7937bb7937b9ca28f9ca28f
-a6342150451ebc633c7c462650451e41311d50451e1829182b2821bc633c7c4626a5523a41311d
-bc633c84635fbc633c858c759d7a6684635f9ca28fbc7a659cad949a9680b7937b81250c213121
-213121213121213218213121213121101810071810949a91000000
-00000010251b9ca0a37b8a84b7bdbcd4d7d57476784a525a8794880010081826220722192b2821
-c0852f7c46267c4626bc633ca5523a5b341ba64b2341311dbc633ca5523a7c4626a5523a262410
-060f10262410a5523a41311dbc633ca5523a727442a5523a76612c84635f794e459d7a66bd734f
-7d7765cd48255311005b341b7c4626262410a5523a7c4626a64b237c4626a5523a212918102110
-41311dbc633cbd734fb7937b9cada58aa094794e45b7937b9d7a66bd734f9d7a66bc633cbc633c
-7c4626a64b237c46267c4626a64b237c46267c46261021102d2718bc633ca5523a76612cbc633c
-bc633c9d7a669c7e3c464a48bc633c9d7a66bd734fbc633cbd734fbd734fa64b232132182a3320
-2131212131212131212a3320182118000000101810878995000000
-0000001826229ca0a3626b6b82858c4a525a82858c464a4887899500080510251b07181041311d
-a5523a060f1050451ebc633c5b341b41311dbc633c5b341bbc633c7c46262d2718a5523a071810
-071810081108a5523a7c4626bd734f9c7e3ca5523a9c7e3c773223bd734f76612cbd734fbd734f
-9c7e3ccd48255b341bbc633c41311da5523abc633c76612ca5523a50451ea5523a2a3320082110
-7c4626bc633ca64b23b7937b94a5928cb0a19d7a66bd734f7d7765bc7a65889e8acd4825bc633c
-7c4626a64b237c462676612c5b341bbc633c3142221821182b2821bc633c2129184c1b0dbc633c
-9d7a669d7a66bc633c726946bc7a658c9c7bbc633cbd734f778469bc633c50451e1826222a3320
-2a3320212921213121212918001008000000181818879488000000
-000000182622a4a8ae4c524d949a912e3734949d9e5a636087948807221921372e153121182918
-41311d1826220722195b341b5b341b0718105b341b41311d2d27185b341b2624102d2718081108
-0718100010084c1b0da64b239a9680646b5a7c4626575a3339403184635f7d77659d7a66a64b23
-9f1a005b341b5b341b5b341b5b341b41311d7c462641311d41311d41311d50451e10251b4c1b0d
-7c46269d7a669d7a66b7937b6b7b6b7b8a84858c759a96806b7b629ca28f9d7a667732237c4626
-2a33205b341b7c462641311d41311dbc633c18211021291821291850451e7d1500a5523a726946
-bd734f646b5a9c7e3c9d7a66bd734f9a96807269469c7e3ca64b23773223314222213121213121
-213121213121212918081108080808000000212918949a91000000
-00000015312174767827272c6b6b72393f41879488767984393f4117372b2b543e274a37274a37
-174236153121071810071810072219102110071810072219072219001008001008001008081108
-001008262410b22400b11700a5523a6b807548634d415240535a4c889e8a8aa0949a9680c63011
-181007080500001008071810071810071810071810102110102110182118102110262410a92b0c
-949a9194ad9c9cada56b807562736c6b7b6b8aa0949cb5a59dbdadbc7a6581250c102108102110
-18291010211010251b1821107c46265b341b10251b21291810251b262410a634219cad9c8cb0a1
-94ad9c7b8a8462736c8aa0948a9e9c94a5928cb0a1bd734f4c1b0d153121212918213121213218
-213121213218071810000000080808001008773223b09f93000000
-0000001826225a5a635a5261464a485a5a5a464a48393f41464a481a4224274a37214231214231
-274a3721423115312107181010251b07221910211007221921372e213921072219081108071810
-060f107d1500ca2a00b22400b117007732234f6b505b6b516b7b6b94a592889e8ac63011531100
-08050010101018210818181818211018211018211018211026241018211010251b81250cb7937b
-8cb0a19cad9c889e8a5a63605a6b5c7b8a849cad9c94ad9c9a9680a92b0c102110212918212918
-212918212918212918212118182110182110212918182918262410a92b0cb09f9394ad9c62736c
-788c7ba5b4a5889e8a7b8a849cad9c8cb0a19d7a6681250c1531212a3320213121212918212921
-2132181018100000000808080010084c1b0da64b23b09f93000000
-000000274a372f42312142312142312142312f4231214231214231214231214231214231214231
-214231274a37274a3710251b07181007221907181007181010251b274a37214231153121102110
-060f100010087d1500b22400a92b0c7d15005b341b5b6b51788c7b8cb0a1cd48257d1500000000
-08080810181010181018210810181018211018211018211018211010251b7d1500bd734f8cb0a1
-94a5926b7b6b6b7b6b6273636b807594a5929cad9c9cad94a63421262410182918182110182110
-1821101821181821182129181821102129181829181018109f1a009d7a668aa0947384764c524d
-5a6b5c7a94879cada59cad9c8cb0a19a9680a63421182918212921213218212921213218213121
-1821180000000805000008052d2718b224009a9680a4a8ae000000
-0000002b543e2b543e2b543e274a37274a37274a37274a37274a37274a37274a37214239274a37
-274a37274a37274a37274a3710251b07181010251b10181007221921423121423121423121372e
-15312110211010181081250cb117007d15007d15005b341b889e8abd734f9f1a00080500000000
-10181018181818181818211018211018211018211018211010251b4c1b0da5523a8cb0a19cad9c
-8aa0945a6360738476889e8a94a5929cad9c94b3a5a5523a4c1b0d10251b212918212918212918
-21291821291821291818211021291821291810251b7d1500bc7a659dbdad646b63525f5a5a6b5c
-62736c94a59294ad9c94a59294a592a64b232d27181531212a3320213218213121213121212918
-0010080808080000002624109f1a009d7a669dbdad9ca0a3000000
-0000002b543e2b543e2b543e2b543e2b543e2b543e2b543e2b543e274a372b543e274a37274a37
-274a37274a37274a37274a37274a371531210718100718100718101531212f42312142312f4231
-21423110251b0718101818187d15007d15007d15007d1500a63421b11700181007000000000805
-081108101810101810101810101810101810182110102110262410a634219cad9c9cad9c9cada5
-6b7b6b889e8a62736c94a5929cad9c94b3a5bd734f81250c1531212a33202129182129182a3320
-212918182110182918182110212918102910531100bc633c9cb5a5788c7b525f5a62736362736c
-94a59294a59294a5928cb0a1a5523a4c1b0d153121212918212921212921213121213121081108
-08050000000808211081250ca5523a94ad9ca5b4a59ca0a3000000
-0000002b423a2e37342c39292e37342e373421372e21372e2e373421372e2e37342e37342f4231
-2142312142312142312b423a21423121372e21312118262218262227272c2b423a2f42312f4231
-2e373421372e10251b0d16181826224c1b0d7d150081250ca92b0c4c1b0d060f10101010101010
-101810181818101810182118212118212118212918212918a634219a968094a5929cad9c879488
-62736c627363788c7ba5b4a59cb5a5b7937b81250c1531212a33202131212131212a3320212921
-2129182129182129212129181829184c1b0dcd48258a9e9c889e8a738476525f5a5263529cad9c
-94ad9c9cad9c94b3a5bd734f4c1b0d2131212b28212129182129182a3320213121101010000000
-08080807181081250ccd4825a5b4a594ad9c9dbdada4a8ae000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000080008000000080008080808080808080808000000000000000000
-000008080808080008080500080008001008000008000008080008001008000000000805080808
-0800080010080000000805000808080808080808081008101a1610101810101010181818101810
-101010101810212118182118182622251618100810081108101010101010101010101010101010
-10101008110810101010101007181025161841311d1826220808082a31291821182129212e3734
-2a31292e37343940314c1b0d081108101010101010101010101010101810101010000805080808
-0808081a16104c1b0d4a3e40495a4b4c524d525f5a393f41000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/Docs/Books/sql-99.gif b/Docs/Books/sql-99.gif
deleted file mode 100644
index a1f3b7403e7..00000000000
Binary files a/Docs/Books/sql-99.gif and /dev/null differ
diff --git a/Docs/Books/sql-99.txt b/Docs/Books/sql-99.txt
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/Docs/Makefile.am b/Docs/Makefile.am
index b3588263415..3e81cc8b7e1 100644
--- a/Docs/Makefile.am
+++ b/Docs/Makefile.am
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-noinst_SCRIPTS = Support/generate-text-files.pl
+noinst_SCRIPTS = generate-text-files.pl
EXTRA_DIST = $(noinst_SCRIPTS) mysql.info INSTALL-BINARY
@@ -42,7 +42,7 @@ DISTCLEANFILES = $(TXT_FILES)
CLEAN_FILES: $(TXT_FILES)
touch $(TXT_FILES)
-GT = $(srcdir)/Support/generate-text-files.pl
+GT = $(srcdir)/generate-text-files.pl
../INSTALL-SOURCE: mysql.info $(GT)
perl -w $(GT) mysql.info "installing-source" "windows-source-build" > $@
diff --git a/Docs/MySQL-logos/mysql-01.gif b/Docs/MySQL-logos/mysql-01.gif
deleted file mode 100644
index 773453f8dd7..00000000000
Binary files a/Docs/MySQL-logos/mysql-01.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-02.gif b/Docs/MySQL-logos/mysql-02.gif
deleted file mode 100644
index 12d984b55e0..00000000000
Binary files a/Docs/MySQL-logos/mysql-02.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-03.gif b/Docs/MySQL-logos/mysql-03.gif
deleted file mode 100644
index abb16f2aa59..00000000000
Binary files a/Docs/MySQL-logos/mysql-03.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-04.gif b/Docs/MySQL-logos/mysql-04.gif
deleted file mode 100644
index e207e1790f7..00000000000
Binary files a/Docs/MySQL-logos/mysql-04.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-05.gif b/Docs/MySQL-logos/mysql-05.gif
deleted file mode 100644
index f78b8a17b93..00000000000
Binary files a/Docs/MySQL-logos/mysql-05.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-06.gif b/Docs/MySQL-logos/mysql-06.gif
deleted file mode 100644
index c660e1d1f4f..00000000000
Binary files a/Docs/MySQL-logos/mysql-06.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-07.gif b/Docs/MySQL-logos/mysql-07.gif
deleted file mode 100644
index be309d0de1c..00000000000
Binary files a/Docs/MySQL-logos/mysql-07.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-08.gif b/Docs/MySQL-logos/mysql-08.gif
deleted file mode 100644
index 3d5b2135655..00000000000
Binary files a/Docs/MySQL-logos/mysql-08.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-09.gif b/Docs/MySQL-logos/mysql-09.gif
deleted file mode 100644
index 75d08592795..00000000000
Binary files a/Docs/MySQL-logos/mysql-09.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-10.gif b/Docs/MySQL-logos/mysql-10.gif
deleted file mode 100644
index 8d0a8551e9e..00000000000
Binary files a/Docs/MySQL-logos/mysql-10.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-11.gif b/Docs/MySQL-logos/mysql-11.gif
deleted file mode 100644
index e5f3770a7bd..00000000000
Binary files a/Docs/MySQL-logos/mysql-11.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-12.gif b/Docs/MySQL-logos/mysql-12.gif
deleted file mode 100644
index b045aaf3549..00000000000
Binary files a/Docs/MySQL-logos/mysql-12.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-13.gif b/Docs/MySQL-logos/mysql-13.gif
deleted file mode 100644
index 0d5aaf88f6f..00000000000
Binary files a/Docs/MySQL-logos/mysql-13.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-14.gif b/Docs/MySQL-logos/mysql-14.gif
deleted file mode 100644
index 9bce287b4b3..00000000000
Binary files a/Docs/MySQL-logos/mysql-14.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-15.gif b/Docs/MySQL-logos/mysql-15.gif
deleted file mode 100644
index d70ffec83dd..00000000000
Binary files a/Docs/MySQL-logos/mysql-15.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-16.gif b/Docs/MySQL-logos/mysql-16.gif
deleted file mode 100644
index 9b30833dc1d..00000000000
Binary files a/Docs/MySQL-logos/mysql-16.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-17.gif b/Docs/MySQL-logos/mysql-17.gif
deleted file mode 100644
index 5b228496b66..00000000000
Binary files a/Docs/MySQL-logos/mysql-17.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql-compatible.jpg b/Docs/MySQL-logos/mysql-compatible.jpg
deleted file mode 100644
index cce9cf84b91..00000000000
Binary files a/Docs/MySQL-logos/mysql-compatible.jpg and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql_anim-01.gif b/Docs/MySQL-logos/mysql_anim-01.gif
deleted file mode 100644
index f537d60da41..00000000000
Binary files a/Docs/MySQL-logos/mysql_anim-01.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql_anim-02.gif b/Docs/MySQL-logos/mysql_anim-02.gif
deleted file mode 100644
index cfd3e1cfc3e..00000000000
Binary files a/Docs/MySQL-logos/mysql_anim-02.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql_anim-03.gif b/Docs/MySQL-logos/mysql_anim-03.gif
deleted file mode 100644
index 6ac6b3ebcc1..00000000000
Binary files a/Docs/MySQL-logos/mysql_anim-03.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql_anim-04.gif b/Docs/MySQL-logos/mysql_anim-04.gif
deleted file mode 100644
index d3150860ecf..00000000000
Binary files a/Docs/MySQL-logos/mysql_anim-04.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql_anim-05.gif b/Docs/MySQL-logos/mysql_anim-05.gif
deleted file mode 100644
index 46f288ef71d..00000000000
Binary files a/Docs/MySQL-logos/mysql_anim-05.gif and /dev/null differ
diff --git a/Docs/MySQL-logos/mysql_anim-06.gif b/Docs/MySQL-logos/mysql_anim-06.gif
deleted file mode 100644
index 3dc283dbfb6..00000000000
Binary files a/Docs/MySQL-logos/mysql_anim-06.gif and /dev/null differ
diff --git a/Docs/Support/.cvsignore b/Docs/Support/.cvsignore
deleted file mode 100644
index 8772614a6b6..00000000000
--- a/Docs/Support/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-manual.html
-manual_toc.html
diff --git a/Docs/Support/colspec-fix.pl b/Docs/Support/colspec-fix.pl
deleted file mode 100755
index 6c64edd1441..00000000000
--- a/Docs/Support/colspec-fix.pl
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# Script to rewrite colspecs from relative values to absolute values
-#
-
-# arjen 2002-03-14 append "cm" specifier to colwidth field.
-
-use strict;
-
-my $table_width = 12.75; # Specify the max width of the table in cm
-my $gutter_width = 0.55; # Specify the width of the gutters in cm
-
-my $str = join '', <>; # Push stdin (or file)
-
-$str =~ s{([\t ]*(\s*)+)}
- {&rel2abs($1)}ges;
-
-print STDOUT $str;
-exit;
-
-#
-# Definitions for helper sub-routines
-#
-
-sub msg {
- print STDERR shift, "\n";
-}
-
-sub rel2abs {
- my $str = shift;
- my $colnum = 1;
-
- my @widths = ();
- my $total = 0;
- my $output = '';
-
- my $gutters;
- my $content_width;
- my $total_width;
- my @num_cache;
-
- $str =~ /^(\s+)/;
- my $ws = $1;
-
- while ($str =~ m//g) {
- $total += $1;
- push @widths, $1;
- }
-
- msg("!!! WARNING: Total Percent > 100%: $total%") if $total > 100;
-
- if (! $total) {
- die 'Something bad has happened - the script believes that there are no columns';
- }
-
- $gutters = $#widths * $gutter_width;
- $content_width = $table_width - $gutters;
- # Don't forget that $#... is the last offset not the count
-
- foreach (@widths) {
- my $temp = sprintf ("%0.2f", $_/100 * $content_width);
- $total_width += $temp;
-
- if ($total_width > $content_width) {
- $temp -= $total_width - $content_width;
- msg("!!! WARNING: Column width reduced from " .
- ($temp + ($total_width - $content_width)) . " to $temp !!!");
- $total_width -= $total_width - $content_width;
- }
-
- $output .= $ws . '' . "\n";
- ++$colnum;
- push @num_cache, $temp;
- }
-
- return $output . "\n$ws";
-}
diff --git a/Docs/Support/docbook-fixup.pl b/Docs/Support/docbook-fixup.pl
deleted file mode 100755
index 48ab085ad3e..00000000000
--- a/Docs/Support/docbook-fixup.pl
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/usr/bin/perl -w
-
-# Fix the output of `makeinfo --docbook` version 4.0c
-# Convert the broken docbook output to well-formed XML that conforms to the O'Reilly idiom
-# See code for detailed comments
-# Authors: Arjen Lentz and Zak Greant (original code by Jeremy Cole)
-
-use strict;
-
-my $data = '';
-my @apx = ();
-my $apx = '';
-my @nodes = ();
-my $nodes = '';
-
-msg ("-- Post-processing `makeinfo --docbook` output --");
-msg ("** Written to work with makeinfo version 4.0c **\n");
-
-msg ("Discarding DTD - not required by subsequent scripts");
-# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line
-<>;
-
-msg ("Create an XML PI with ISO-8859-1 character encoding");
-$data = "";
-
-msg ("Get the rest of the data");
-$data = $data . join "", <>;
-
-msg ("Add missing and opening tags");
-# Note the absence of the g (global) pattern modified. This situation can only happen once.
-# ...as soon as we find the first instance, we can stop looking.
-$data =~ s///;
-
-
-# arjen 2002-05-01
-msg ("Processing docbook-prefix special strings");
-$data =~ s/FIXUPmdashFIXUP/\&mdash\;/g;
-
-$data =~ s/FIXUPdoubledashFIXUP/--/g;
-
-$data =~ s/FIXUPstrongFIXUP//g;
-$data =~ s/FIXUPendstrongFIXUP/<\/emphasis>/g;
-
-$data =~ s/FIXUPemphFIXUP//g;
-$data =~ s/FIXUPendemphFIXUP/<\/emphasis>/g;
-
-$data =~ s/FIXUPfileFIXUP//g;
-$data =~ s/FIXUPendfileFIXUP/<\/filename>/g;
-
-$data =~ s/FIXUPsampFIXUP//g;
-$data =~ s/FIXUPendsampFIXUP/<\/literal>/g;
-
-
-msg ("Removing mailto: from email addresses...");
-$data =~ s/mailto://g;
-
-msg ("Removing INFORMALFIGURE...");
-$data =~ s{.+?}
- {}gs;
-
-msg ("Convert ampersand to XML escape sequence...");
-$data =~ s/&(?!\w+;)/&/g;
-
-# arjen 2002-05-01
-msg ("Changing (TM) to XML escape sequence...");
-$data =~ s/MySQL \(TM\)/MySQL™/g;
-$data =~ s{TM}
- {™}g;
-
-# arjen 2002-05-01
-msg ("Changing ' -- ' to XML escape sequence...");
-$data =~ s/ -- /—/g;
-
-msg ("Changing @@ to @...");
-$data =~ s/@@/@/g;
-
-msg ("Rework references of the notation ''");
-# Need to talk to Arjen about what the bits are for
-$data =~ s/<(\d)>/[$1]/g;
-
-msg ("Changing '_' to '-' in references...");
-$data =~ s{((?:id|linkend)=\".+?\")}
- {&underscore2hyphen($1)}gex;
-
-msg ("Changing ULINK to SYSTEMITEM...");
-$data =~ s{\s*}
- {$1}gs;
-
-msg ("Adding PARA inside ENTRY...");
-$data =~ s{(.*?)}
- {$1}gs;
-
-msg ("Fixing spacing problem with titles...");
-$data =~ s{(\w+>)(\w{2,})}
- {$1 $2}gs;
-
-msg ("Adding closing / to XREF and COLSPEC tags...");
-$data =~ s{<(xref|colspec) (.+?)>}
- {<$1 $2 />}gs;
-
-# arjen 2002-04-26
-msg ("Removing separate target titles from LINKs and make them XREFs...");
-$data =~ s{.+?}
- {}gs;
-
-# Probably need to strip these
-msg ('Adding "See " to XREFs that used to be @xref...');
-$data =~ s{([.'!)])\s*(\s*.+?
)}
- {$1$2\n$1\n$1}gs;
-
-msg ("Removing EMPHASIS inside THEAD...");
-$data =~ s{(.+?)}
- {"".&strip_tag($1, 'emphasis').""}gsex;
-
-msg ("Removing empty PARA...");
-$data =~ s{\s*}
- {}gs;
-
-msg ("Removing lf before /PARA in ENTRY...");
-$data =~ s{\n()}
- {$1}gs;
-
-msg ("Removing whitespace before /PARA if not on separate line...");
-$data =~ s{(\S+)[\t ]+}
- {$1}g;
-
-msg ("Removing PARA around INDEXTERM if no text in PARA...");
-$data =~ s{((?:(?:<(primary|secondary)>[^>]+\2>)+?)+?)\s*}
- {$1}gs;
-
-@apx = ("Users", "MySQL Testimonials", "News", "GPL-license", "LGPL-license");
-
-foreach $apx (@apx) {
- msg ("Removing appendix $apx...");
- $data =~ s{(.+?)}
- {}gs;
-
- # Skip to next appendix regex if the regex did not match anything
- next unless (defined $&);
-
- msg ("...Building list of removed nodes...");
-
- # Split the last bracketed regex match into an array
- # Extract the node names from the tags and push them into an array
- foreach (split "\n", $&) {
- push @nodes, $1 if /<\w+ id=\"(.+?)\">/
- }
-}
-
-# 2002-02-22 arjen@mysql.com (added fix " /" to end of regex, to make it match)
-msg ("Fixing references to removed nodes...");
-# Merge the list of node names into a set of regex alternations
-$nodes = join "|", @nodes;
-
-# Find all references to removed nodes and convert them to absolute URLs
-$data =~ s{<\w+ linkend="($nodes)" />}
- {&xref2link($1)}ges;
-
-print STDOUT $data;
-exit;
-
-#
-# Definitions for helper sub-routines
-#
-
-sub msg {
- print STDERR "docbook-fixup:", shift, "\n";
-}
-
-sub strip_tag($$) {
- (my $str, my $tag) = @_;
- $str =~ s{<$tag>(.+?)$tag>}{$1}gs;
- return $str;
-}
-
-sub underscore2hyphen($) {
- my $str = shift;
- $str =~ tr/_/-/;
- return $str;
-}
-
-sub xref2link {
- my $ref = shift;
- $ref =~ tr/ /_/;
- $ref =~ s{^((.)(.).+)$}{$2/$3/$1.html};
- return "http://www.mysql.com/doc/" . $ref;
-}
-
-# We might need to encode the high-bit characters to ensure proper representation
-# msg ("Converting high-bit characters to entities");
-# $data =~ s/([\200-\400])/&get_entity($1)>/gs;
-# There is no get_entity function yet - no point writing it til we need it :)
diff --git a/Docs/Support/docbook-prefix.pl b/Docs/Support/docbook-prefix.pl
deleted file mode 100755
index e76d84dbfe0..00000000000
--- a/Docs/Support/docbook-prefix.pl
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/perl -w
-
-# Preprocess the input of `makeinfo --docbook` version 4.0c
-# Authors: Arjen Lentz and Zak Greant (started by arjen 2002-05-01)
-
-use strict;
-
-my $data = '';
-
-msg ("-- Pre-processing `makeinfo --docbook` input --");
-msg ("** Written to work with makeinfo version 4.0c **\n");
-
-# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line
-msg ("Get the data");
-$data = join "", <>;
-
-msg ("Replacing '\@-' with FIXUPmdashFIXUP");
-$data =~ s/\@-/FIXUPmdashFIXUP/g;
-
-msg ("Replacing '--' with FIXUPdoubledashFIXUP");
-$data =~ s/--/FIXUPdoubledashFIXUP/g;
-
-msg ("Turning \@strong{} into LITERAL blocks");
-$data =~ s/\@strong\{(.*?)\}/FIXUPstrongFIXUP$1FIXUPendstrongFIXUP/gs;
-
-msg ("Turning \@emph{} into LITERAL blocks");
-$data =~ s/\@emph\{(.*?)\}/FIXUPemphFIXUP$1FIXUPendemphFIXUP/gs;
-
-msg ("Turning \@file{} into LITERAL blocks");
-$data =~ s/\@file\{(.*?)\}/FIXUPfileFIXUP$1FIXUPendfileFIXUP/gs;
-
-msg ("Turning \@samp{} into LITERAL blocks");
-$data =~ s/\@samp\{\@\{\}/FIXUPsampFIXUP\@\{FIXUPendsampFIXUP/g;
-$data =~ s/\@samp\{\@\}\}/FIXUPsampFIXUP\@\}FIXUPendsampFIXUP/g;
-$data =~ s/\@samp\{\@\{n\@\}\}/FIXUPsampFIXUP\@\{n\@\}FIXUPendsampFIXUP/g;
-$data =~ s/\@samp\{(.*?)\}/FIXUPsampFIXUP$1FIXUPendsampFIXUP/gs;
-
-
-msg ("Write the data");
-print STDOUT $data;
-exit;
-
-#
-# Definitions for helper sub-routines
-#
-
-sub msg {
- print STDERR "docbook-prefix: ", shift, "\n";
-}
-
diff --git a/Docs/Support/docbook-split b/Docs/Support/docbook-split
deleted file mode 100755
index eafb437efe4..00000000000
--- a/Docs/Support/docbook-split
+++ /dev/null
@@ -1,70 +0,0 @@
-#! /usr/bin/perl -w
-# O'Reilly's Perl script to chop mysql.xml into separate ch/apps/index files.
-# The indexes are actually not used, they're created straight from the xrefs.
-# Breaks the MySQL reference manual into chapters, appendices, and indexes.
-
-use strict;
-
-my $app_letter = "a"; # Start appendix letters at "a"
-my $chap_num = 1; # Start chapter numbers at one (there is no preface)
-my $directory = "mysql_refman_" . time;
-my $ext = ".xml";
-my $line = "";
-my $output_name = "";
-my $start_text = "";
-
-mkdir $directory unless -d $directory;
-
-while (defined $line) {
- if ($line =~ /(.*)/i ) {
- $start_text = $1 . $2 . $3;
- $output_name = lc($2) . $ext;
- &process_file("index");
- }
- else {
- # Skip junk in between chapters, appendices and indexes.
- $line = <>;
- }
-}
-
-sub process_file {
- my $marker = shift;
- my $path = "$directory/$output_name";
-
- open (OUTPUT_FILE, ">$path") or die "Cannot open $path";
-
- print STDERR "Creating $path\n";
-
- # Print out XML PI
- print OUTPUT_FILE "\n";
-
- # Print whatever happened to appear at the end of the previous chapter.
- print OUTPUT_FILE "$start_text\n" if $start_text;
-
- while (defined $line) {
- $line = <>;
-
- # Note: Anything after the terminating marker is lost, just like
- # lines in between chapters.
- if ($line =~ /(.*<\/\s*$marker\s*>)/i ) {
- print OUTPUT_FILE "$1\n" if $1;
- close OUTPUT_FILE;
- return;
- }
- print OUTPUT_FILE $line;
- }
-}
-
-exit 0;
diff --git a/Docs/Support/make-docbook b/Docs/Support/make-docbook
deleted file mode 100755
index 93dbc56c0f8..00000000000
--- a/Docs/Support/make-docbook
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# 2002-01-30 arjen@mysql.com
-# Use this to create mysql.xml (the DocBook XML format output of manual.texi)
-# Requires makeinfo 4.0c
-
-#create include.texi with version/port #
- echo "@c This file is autogenerated by the Makefile" > include.texi
- echo -n "@set mysql_version " >> include.texi
-# grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
-# sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
-# 2002-04-26 arjen - the below just picks #.# instead of #.#.#-alpha
-# (code by mwagner - tnx)
- grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
- perl -p -e 's/AM_INIT_AUTOMAKE\(mysql,\s(\d+\.\d+)\..+/$1/' >> include.texi
- echo -n "@set default_port " >> include.texi
- grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
- sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
-
-# produce DocBook XML
- Support/docbook-prefix.pl < manual.texi |\
- makeinfo --force --no-ifinfo --docbook -o - |\
- Support/docbook-fixup.pl > mysql.xml
-
- # See if the XML output is well-formed
- xmlwf mysql.xml
-
- # If all is well, keep processing
- cat mysql.xml | Support/colspec-fix.pl | Support/docbook-split;
-
diff --git a/Docs/Support/make-makefile b/Docs/Support/make-makefile
deleted file mode 100755
index 79cf06091fe..00000000000
--- a/Docs/Support/make-makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-# Use this when you have deleted Makefile and do not want to do a full
-# build to get it back
-
-cd ..
-automake --gnu Docs/Makefile
-CONFIG_FILES=Docs/Makefile CONFIG_HEADERS= sh ./config.status
diff --git a/Docs/Support/test-make-manual b/Docs/Support/test-make-manual
deleted file mode 100755
index bd4ed4b04e3..00000000000
--- a/Docs/Support/test-make-manual
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/bin/sh
-
-needed_flags=0
-needed_texi2html=0
-needed_texinfo_tex=0
-needed_include_texi=0
-
-if [ -z $BROWSER ]; then
- BROWSER=netscape
- echo "BROWSER not set, using $BROWSER"
-fi
-
-die ()
-{
- echo
- echo $1
- cleanup
- exit 1
-}
-
-cleanup ()
-{
- echo "Cleaning up..."
- if [ $needed_flags ]; then
- bk clean Flags
- fi
-
- if [ $needed_texi2html ]; then
- bk clean Support/texi2html
- fi
-
- if [ $needed_texinfo_tex ]; then
- bk clean Support/texinfo.tex
- fi
-
- if [ $needed_include_texi ]; then
- rm -f include.texi
- fi
-
- for file in \
- manual.aux manual.cp manual.cps manual.dvi \
- manual.fn manual.fns manual.ky manual.html \
- manual.pg manual.toc manual.tp manual.vr \
- mysql.info manual_toc.html ;
- do
- rm -f $file
- done
-
-}
-
-
-if [ -e Flags/usa.txt ]; then
- echo "Good, Flags are there."
-else
- echo -n "Checking out Flags..."
- bk edit Flags >/dev/null 2>&1
- echo " Done."
- needed_flags=1
-fi
-
-if [ -e Support/texi2html ]; then
- echo "Good, texi2html is there."
-else
- echo -n "Checking out texi2html..."
- bk edit Support/texi2html >/dev/null 2>&1
- echo " Done."
- needed_texi2html=1
-fi
-
-if [ -e Support/texinfo.tex ]; then
- echo "Good, texinfo.tex is there."
-else
- echo -n "Checking out texinfo.tex..."
- bk edit Support/texinfo.tex >/dev/null 2>&1
- echo " Done."
- needed_texinfo_tex=1
-fi
-
-if [ -e include.texi ]; then
- echo "Good, include.texi is there."
-else
- echo -n "Creating include.texi..."
- bk edit ../configure.in >/dev/null 2>&1
- echo "@c This file was generated by test-make-manual" > include.texi
- echo -n "@set mysql_version " >> include.texi
- grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
- sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
- echo -n "@set default_port " >> include.texi
- grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
- sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
- echo " Done."
- needed_include_texi=1
-fi
-
-echo -n "Running makeinfo..."
-makeinfo --no-split -I . manual.texi
-
-if [ $? != 0 ]; then
- die "Manual has errors - fix before you commit"
-else
- echo " Looks good."
-fi
-
-
-echo -n "Running texi2html..."
-/usr/bin/perl ./Support/texi2html -iso -number manual.texi
-
-if [ $? != 0 ]; then
- die "Manual has errors - fix before you commit"
-else
- echo " Looks good."
-fi
-
-
-echo -n "Running texi2dvi..."
-texi2dvi --batch manual.texi > texi2dvi.out
-
-if [ $? != 0 ]; then
- die "Manual has errors - fix before you commit (saved in texi2dvi.out)"
-else
- rm texi2dvi.out
- echo " Looks good."
-fi
-
-echo
-echo
-echo "Please examine your modifications in \`manual.html'."
-echo
-echo "If you would like to use a different browser, set the 'BROWSER' environment"
-echo "variable."
-echo
-
-$BROWSER file:`pwd`/manual_toc.html
-
-echo "-- Press Enter to Continue --"
-read junk
-cleanup
diff --git a/Docs/Support/test-make-manual-de b/Docs/Support/test-make-manual-de
deleted file mode 100755
index a5c03001bda..00000000000
--- a/Docs/Support/test-make-manual-de
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/bin/sh
-
-needed_flags=0
-needed_texi2html=0
-needed_texinfo_tex=0
-needed_include_texi=0
-
-if [ -z $BROWSER ]; then
- BROWSER=netscape
- echo "BROWSER not set, using $BROWSER"
-fi
-
-die ()
-{
- echo
- echo $1
- cleanup
- exit 1
-}
-
-cleanup ()
-{
- echo "Cleaning up..."
- if [ $needed_flags ]; then
- bk clean Flags
- fi
-
- if [ $needed_texi2html ]; then
- bk clean Support/texi2html
- fi
-
- if [ $needed_texinfo_tex ]; then
- bk clean Support/texinfo.tex
- fi
-
- if [ $needed_include_texi ]; then
- rm -f include.texi
- fi
-
- for file in \
- manual.de.aux manual.de.cp manual.de.cps manual.de.dvi \
- manual.de.fn manual.de.fns manual.de.ky manual.de.html \
- manual.de.pg manual.de.toc manual.de.tp manual.de.vr \
- mysql.de.info manual.de_toc.html ;
- do
- rm -f $file
- done
-
-}
-
-
-if [ -e Flags/usa.txt ]; then
- echo "Good, Flags are there."
-else
- echo -n "Checking out Flags..."
- bk edit Flags >/dev/null 2>&1
- echo " Done."
- needed_flags=1
-fi
-
-if [ -e Support/texi2html ]; then
- echo "Good, texi2html is there."
-else
- echo -n "Checking out texi2html..."
- bk edit Support/texi2html >/dev/null 2>&1
- echo " Done."
- needed_texi2html=1
-fi
-
-if [ -e Support/texinfo.tex ]; then
- echo "Good, texinfo.tex is there."
-else
- echo -n "Checking out texinfo.tex..."
- bk edit Support/texinfo.tex >/dev/null 2>&1
- echo " Done."
- needed_texinfo_tex=1
-fi
-
-if [ -e include.texi ]; then
- echo "Good, include.texi is there."
-else
- echo -n "Creating include.texi..."
- bk edit ../configure.in >/dev/null 2>&1
- echo "@c This file was generated by test-make-manual" > include.texi
- echo -n "@set mysql_version " >> include.texi
- grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
- sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
- echo -n "@set default_port " >> include.texi
- grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
- sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
- echo " Done."
- needed_include_texi=1
-fi
-
-echo -n "Running makeinfo..."
-makeinfo --no-split -I . manual.de.texi
-
-if [ $? != 0 ]; then
- die "Manual has errors - fix before you commit"
-else
- echo " Looks good."
-fi
-
-
-echo -n "Running texi2html..."
-/usr/bin/perl ./Support/texi2html -iso -number manual.de.texi
-
-if [ $? != 0 ]; then
- die "Manual has errors - fix before you commit"
-else
- echo " Looks good."
-fi
-
-
-echo -n "Running texi2dvi..."
-texi2dvi --batch manual.de.texi > texi2dvi.out
-
-if [ $? != 0 ]; then
- die "Manual has errors - fix before you commit (saved in texi2dvi.out)"
-else
- rm texi2dvi.out
- echo " Looks good."
-fi
-
-echo
-echo
-echo "Please examine your modifications in \`manual.de.html'."
-echo
-echo "If you would like to use a different browser, set the 'BROWSER' environment"
-echo "variable."
-echo
-
-$BROWSER file:`pwd`/manual.de_toc.html
-
-echo "-- Press Enter to Continue --"
-read junk
-cleanup
diff --git a/Docs/Support/trivial-makeinfo-4.0c.patch b/Docs/Support/trivial-makeinfo-4.0c.patch
deleted file mode 100644
index b2446c0e8bb..00000000000
--- a/Docs/Support/trivial-makeinfo-4.0c.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- alt-multi.c Sun Apr 14 10:03:19 2002
-+++ multi.c Tue May 22 20:52:33 2001
-@@ -287,7 +287,7 @@
- && *params != '\n' && *params != '@')
- params++;
- setup_output_environment (i,
-- (int) ((columnfrac * 100.00) + 0.49));
-+ (int) (columnfrac * (fill_column - current_indent) + .5));
- }
- }
-
diff --git a/Docs/Support/xwf b/Docs/Support/xwf
deleted file mode 100755
index 38f89774fe8..00000000000
--- a/Docs/Support/xwf
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Parse document and report first syntax (well-formedness) error found.
-#
-
-use strict;
-use XML::Parser;
-use Getopt::Std;
-
-my %opts;
-getopts('e', \%opts);
-my $ENTREFS = exists( $opts{'e'} ); # flag: check ent refs
-
-my $parser = XML::Parser->new(
- ErrorContext => 2, # output error context
- );
-
-# get input from files
-if( @ARGV ) {
- foreach( @ARGV ) {
- my $file = $_;
- unless( -r $file ) {
- print STDERR "ERROR: Can't open '$file'.\n";
- return;
- }
- my $input = '';
- open( F, $file );
- while( ) { $input .= $_; }
- close F;
-
- # parse and report errors
- if( &parse_string( $input )) {
- print STDERR "ERROR in $file:\n$@\n";
- } else {
- print STDERR "'$file' is well-formed.\n";
- }
- }
- print "All files checked.\n";
-
-# get input from STDIN
-} else {
- my $input = "";
- while( ) { $input .= $_; }
- if( &parse_string( $input )) {
- print STDERR "ERROR in stream:\n$@\n";
- } else {
- print STDERR "No syntax errors found in XML stream.\n";
- }
-}
-
-
-# parse the string and return error message
-#
-# NOTE: By default, entity refs are not expanded. XML::Parser can be
-# told not to expand entity refs, but will still try to find
-# replacement text just in case, which we don't want. Therefore, we
-# need to do a stupid regexp replacement, removing entities from input.
-#
-sub parse_string {
- my $string = shift;
- unless( $ENTREFS ) {
- $string =~ s/\&[^\s;]+;//g; # remove entity references
- }
- eval { $parser->parse( $string ); };
- $@ =~ s/at \/.*?$//s; # remove module line number
- return $@;
-}
diff --git a/Docs/Tutorial-MySQL-final.txt b/Docs/Tutorial-MySQL-final.txt
deleted file mode 100644
index bd52554a611..00000000000
--- a/Docs/Tutorial-MySQL-final.txt
+++ /dev/null
@@ -1,1643 +0,0 @@
-8 Tutorial MySQL
-=======================
-
-Este capítulo ofrece un tutorial de introducción a MySQL, mostrando cómo usar el programa cliente
-mysql para crear y usar una simple base de datos. mysql (al que algunas veces nos referimos como
-"monitor terminal" o simplemente "monitor") es un programa interactivo que te permite conectarte a
-un servidor MySQL, ejecutar consultas y observar los resultados. mysql puede ser usado también en
-modo batch: escribes tus consultas en un fichero de texto, para después pedirle a mysql que
-ejecute el contenido del fichero. Se cubren aquí esas dos formas de usar de usar mysql.
-
-Para ver una lista de opciones proporcionadas por mysql, lánzalo con las opción --help :
-
- shell> mysql --help
-
-Este capítulo asume que mysql está instalado en tu máquina, y que hay disponible un servidor al que
-te puedes conectar. Si esto no es así, contacta con tu administrador MySQL. (Si el administrador
-eres tú, necesitarás consultar otra sección de este manual).
-
-El capítulo describe el proceso completo de configurar y usar una base de datos. Si estás interesado
-sólo en acceder una base de datos ya existente, querrás saltar las secciones que describen cómo
-crear la base de datos y las tablas que la contienen.
-
-Dado que este capítulo es un tutorial básico, se dejarán en el tintero muchos
-detalles. Consulta las secciones relevantes del manual para más información sobre los temas
-aquí cubiertos.
-
-
-8.1 Conectando y desconectando del servidor
-=============================================
-
-
-Para conectarse al servidor, generalmente necesitarás facilitar un nombre de usuario MySQL cuando
-lances el cliente mysql y, lo más probable, también un password. Si el servidor se está ejecutando
-en una máquina distinta a la que estás conectado, necesitarás especificar también un nombre de
-host. Contacta con tu administrador para averiguar qué parámetros de conexión necesitas usar para
-conectar (es decir, qué host, nombre de usuario y password usar). Una vez que conozcas los
-parámetros adecuados, deberás ser capaz de conectar de la siguiente forma:
-
-shell> mysql -h host -u user -p
-Enter password: *******
-Welcome to the MySQL monitor. Commands end with ; or \g.
-Your MySQL connection id is 459 to server version: 3.22.20a-log
-
-Type 'help' for help.
-
-mysql>
-
-El prompt te indica que mysql ya está listo para la introducción de comandos.
-
-Algunas instalaciones MySQL permiten a los usuarios conectarse como usuarios "anonymous" (sin
-nombre) al servidor ejecutándose en el host local. Si este es el caso en tu máquina, deberías ser
-capaz de conectar a ese servidor invocando mysql sin ninguna opción:
-
-shell> mysql
-
-Una vez que hayas conectado con éxito, puedes desconectarte en cualquier momento tecleando QUIT en
-el prompt mysql> :
-
-mysql> QUIT
-Bye
-
-También puedes desconectar tecleando control-D.
-
-La mayor parte de los ejemplos en las siguientes secciones asumen que estás conectado al
-servidor. Lo indicarán por el prompt mysql>
-
-
-8.2 Haciendo consultas
-========================
-
-Asegúrate de que estás conectado al servidor, como se ha discutido en secciones anteriores. El
-hacerlo no implica que tengas seleccionada ninguna base de datos con la que trabajar, pero está
-bien. En este punto, es más importante averiguar un poco sobre cómo lanzar consultas que lanzarse
-directamente a la creación de tablas, cargar datos en ellas y recuperar los datos de las
-mismas. Esta sección describe los principios básicos de la entrada de comandos, usando varias
-consultas que puedes probar para familiarizarte con la forma de trabajo de mysql.
-
-Aquí presentamos un comando simple que pide al servidor que nos diga su número de versión y fecha
-actual. Tecléalo como se muestra a continuación siguiendo el prompt mysql> y pulsa la tecla RETURN:
-
-
-mysql> SELECT VERSION(), CURRENT_DATE;
-+-----------+--------------+
-| version() | CURRENT_DATE |
-+-----------+--------------+
-| 3.22.23b | 2000-01-05 |
-+-----------+--------------+
-1 row in set (0.06 sec)
-
-mysql>
-
-Esta consulta ilustra muchas cosas sobre mysql:
-
-* Un comando consiste normalmente de una sentencia SQL seguida por un punto y coma. (Existen algunas
- excepciones donde no es necesario el punto y coma. QUIT, mencionado más adelante, es una de
- ellas. Conoceremos otras más adelante.)
-
-* Cuando lanzas un comando, mysql lo envía al servidor para su ejecución y muestra los resultados,
- después imprime otro mysql> para indicar que está listo para otro comando.
-
-* mysql muestra la salida de una consulta como una tabla (filas y columnas). La primera fila
- contiene etiquetas para las columnas. Las siguientes filas son el resultado de la
- consulta. Normalmente, las etiquetas de las columnas son los nombres de las columnas que has
- obtenido de la base de datos. Si pides el valor de una expresión en vez de una columna de una
- tabla (como en el ejemplo anterior), mysql etiqueta la columna usando la propia expresión.
-
-* mysql muestra el número de filas que se han dado como resultado, y cuánto tiempo llevó la
- ejecución de la consulta, lo que te da una idea aproximada del rendimiento del servidor. Estos
- valores son imprecisos porque representan tiempo real (no tiempo de CPU o máquina), y porque están
- afectados por factores como la carga del servidor y la latencia de la red. (Por cuestiones de
- brevedad, la línea "rows in set" no se mostrará en los ejemplos posteriores de este capítulo.)
-
-Las palabras clave pueden ser tecleadas en cualquier combinación mayúscula/minúscula. Las siguientes
-consultas son equivalentes:
-
-mysql> SELECT VERSION(), CURRENT_DATE;
-mysql> select version(), current_date;
-mysql> SeLeCt vErSiOn(), current_DATE;
-
-He aquí otra consulta. Demuestra que puedes usar mysql como una calculadora sencilla:
-
-mysql> SELECT SIN(PI()/4), (4+1)*5;
-+-------------+---------+
-| SIN(PI()/4) | (4+1)*5 |
-+-------------+---------+
-| 0.707107 | 25 |
-+-------------+---------+
-
-Los comandos vistos hasta aquí han sido relativamente cortos, sentencias de una sola línea. También puedes
-insertar múltiples sentencias en una sola línea. Simplemente, termina cada una con un punto y coma:
-
-mysql> SELECT VERSION(); SELECT NOW();
-
-+-----------+
-| version() |
-+-----------+
-| 3.22.23b |
-+-----------+
-
-+---------------------+
-| NOW() |
-+---------------------+
-| 2000-01-05 17:33:16 |
-+---------------------+
-
-Un comando no necesita ser dado todo en una sóla línea, así pues, los comandos largos que requieran
-varias lineas no son un problema. mysql determina cuando termina tu sentencia buscando el punto y
-coma final, no buscando el final de la línea de entrada. (En otras palabras, mysql acepta entrada de
-libre formato: recoleta las líneas de entrada pero no las ejecutahasta que vea el punto y coma.)
-
-Aquí tenemos un simple ejemplo de múltiples líneas:
-
-mysql> SELECT
- -> USER()
- -> ,
- -> CURRENT_DATE;
-+----------------+--------------+
-| USER() | CURRENT_DATE |
-+----------------+--------------+
-| root@localhost | 2000-01-05 |
-+----------------+--------------+
-
-En este ejemplo, observa como cambia el prompt de mysql> a -> una vez que has insertado la primera
-línea de una consulta multi-línea. Esta es la forma en que mysql indica que no ha encontrado una
-sentencia completa y que está esperando por el resto. El prompt es tu amigo, dado que ofrece una
-retroalimentación (feedback) significativa. Si usas ese feedback, siempre sabrás a qué está
-esperando mysql.
-
-Si decides que no quieres ejecutar un comando que está en proceso de introducción, puedes cancelarlo
-tecleando \c :
-
-mysql> SELECT
- -> USER
- -> \c
-mysql>
-
-Observa aquí también el prompt. Ha vuelto a mysql> tras haber tecleado \c, ofreciendo un feedback
-que indica que mysql está listo para un nuevo comando.
-
-La siguiente tabla muestra cada uno de los prompts que puedes ver y resume qué es lo que significan
-y el estado en el que se encontrará mysql:
-
-Prompt Significado
-mysql> Listo para un nuevo comando
- -> Esperando una nueva línea de una consulta multi-línea
- '> Esperando la siguiente línea, se ha insertado una línea que comienza con (')
- "> Esperando la siguiente línea, se ha insertado una línea que comienza con (")
-
-Las sentencias multi-línea ocurren comúnmente "por accidente" cuando intentas lanzar un comando en
-una única línea, pero olvidas el punto y coma del final. En este caso, mysql espera más entrada:
-
-mysql> SELECT USER()
- ->
-
-Si esto es lo que te ocurre (crees que has introducido una sentencia pero la única respuesta es un
-prompt como ->), lo más probable es que mysql esté esperando por el punto y coma. Si no observas qué
-es lo que te dice el prompt, podrías quedarte esperando un buen rato antes de enterarte de qué es lo
-que sucede. Introduce un punto y coma para completar la sentencia, y mysql la ejecutará:
-
-mysql> SELECT USER()
- -> ;
-+----------------+
-| USER() |
-+----------------+
-| root@localhost |
-+----------------+
-
-Los prompts '> y "> ocurren durante la recogida de strings. En MySQL, puedes escribir strings
-encerrados por comillas simples (') o dobles (") (por ejemplo, 'hola' o "adios"), y mysql te permite
-introducir también strings que se cortan en múltiples líneas. Cuando veas un prompt como '> ó ">,
-significa que has introducido una línea que contenía un string que comenzaba por (') o ("), pero que
-no has introducido aún la comilla (simple o doble) de cierre. Esto está bien si realmente estabas
-introduciendo un string multi-línea, pero no es lo más normal. Lo que sí es más normal, es que los
-prompts '> ó "> indiquen que te has olvidado del caracter de cierre " ó '. Por ejemplo:
-
-mysql> SELECT * FROM mi_tabla WHERE nombre ="García AND edad < 30;
- ">
-
-Si tecleas esta sentencia SELECT, después pulsas ENTER y esperas por el resultado, no sucederá
-nada. En lugar de preocuparte, "¿por qué tarda tanto esta consulta?", observa la pista que te ofrece
-el prompt "> . Esto te indica que mysql espera ver el resto de un string que aún no ha
-terminado. (¿Ves el error en la sentencia? La cadena "García ha perdido las comillas de cierre.)
-
-Llegados a este punto, ¿qué puedes hacer?. Lo más fácil es cancelar el comando. Sin embargo, no
-puedes teclear simplemente \c en este ejemplo, dado que mysql ¡lo interpretará como parte del string
-que está leyendo! En vez de eso, introduce las comillas de cierre (para que mysql sepa que ya has
-terminado de introducir el string), y después teclea \c :
-
-mysql> SELECT * FROM mi_tabla WHERE nombre ="García AND edad < 30;
- "> "\c
-mysql>
-
-El prompt vuelve a cambiar a mysql>, indicando que mysql está listo para un nuevo comando.
-
-Es importante saber qué significan los prompts '> y ">, dado que si introduces por error un string
-sin cerrar, cualquier otra línea que introduzcas serán ignoradas por mysql - ¡incluyendo una línea
-que contenga QUIT! Esto puede ser bastante confuso, especialmente si no sabes que debes introducir
-la comilla de cierre antes de poder cancelar el comando actual.
-
-8.3 Creando y usando una base de datos
-==========================================
-
-Ahora que sabes como introducir comandos, es hora de acceder a la base de datos.
-
-Supon que tienes varias mascotas en tu casa (tu pequeño "zoo") y que te gustaría llevar un control
-de varios tipos de información sobre estos animales. Puedes hacerlo creando tablas que guarden tus
-datos y cargandolas con la información deseada. Después puedes responder a diferentes series de
-preguntas sobre tus animales extrayendo los datos de las tablas. Esta sección explica cómo hacer
-todo esto:
-
-* Cómo crear una base de datos
-* Cómo crear una tabla
-* Cómo cargar los datos en la tabla
-* Cómo extraer información de la tabla de varias maneras
-* Cómo usar múltiples tablas
-
-La base de datos del zoo será simple (deliberadamente), pero no es difícil pensar en situaciones del
-mundo real en las que se pudiera utilizar una base de datos similar. Por ejemplo, se podría usar una base
-de datos como ésta en una granja para llevar un control del ganado, o por un veterinario para
-controlar el historial de sus pacientes.
-
-Usa la sentencia SHOW para averiguar qué bases de datos existen actualmente en el servidor:
-
-mysql> SHOW DATABASES;
-+----------+
-| Database |
-+----------+
-| mysql |
-| test |
-+----------+
-
-Probablemente, la lista de las bases de datos será diferente en tu máquina, pero las bases de datos
-mysql y test es probable que se encuentren en esa lista. Se requiere la base de datos mysql pues
-describe los privilegios de acceso de los usuarios. La base de datos test se ofrece como campo de
-pruebas para que los usuarios prueben ahí sus teorías.
-
-Si la base de datos test existe, intenta acceder a ella:
-
-mysql> USE test
-Database changed
-
-Observa que USE, como QUIT, no requiere un punto y coma. (Puedes terminar este tipo de sentencias
-con un punto y coma si quieres, pero no es necesario.) La sentencia USE es especial en otro sentido,
-también: debe ser tecleada en una sola línea.
-
-Puedes usar la base de datos test (si tienes acceso a ella) para los ejemplos que siguen, pero
-cualquier cosa que crees en dicha base de datos puede ser eliminada por cualquiera que tenga acceso
-a ella. Por esta razón, deberías pedir a tu administrador MySQL permisos para usar una base de datos
-propia. Suponte que le quieres llamar zoo. El administrador necesitará ejecutar entonces la
-siguiente orden:
-
-mysql> GRANT ALL ON zoo.* TO tu_nombre;
-
-donde tu_nombre es el nombre de usuario MySQL que tengas asignado.
-
-ejemplo:
-
-mysql> GRANT ALL ON zoo.* TO chessy@localhost;
-Query OK, 0 rows affected (0.08 sec)
-
-
-8.3.1 Creando y seleccionando una base de datos
-==================================================
-
-Si el administrador creó la base de datos para tí cuando te configuró los permisos, puedes comenzar
-a usarla. En otro caso, deberás crearla tú mismo:
-
-[chessy@bishito chessy]$ mysql -u chessy
-Welcome to the MySQL monitor. Commands end with ; or \g.
-Your MySQL connection id is 6 to server version: 3.22.23b
-
-Type 'help' for help.
-
-mysql> CREATE DATABASE zoo;
-Query OK, 1 row affected (0.02 sec)
-
-
-Bajo Unix, los nombres de bases de datos son sensibles a las mayúsculas/minúsculas (a diferencia de
-los comandos SQL), así que deberás referirte siempre a tu base de datos con el nombre zoo, no como
-Zoo, ZOO o cualquier otra variante. Es es así también para las tablas. (Bajo Windows, esta
-restricción desaparece, aunque deberías referirte a las bases de datos y a las tablas usando la
-misma sintaxis en tus consultas.)
-
-Crear una base de datos no la selecciona para su uso, debes hacerlo explícitamente. Para hacer que
-la base de datos zoo sea tu base de datos de trabajo, usa el comando:
-
-mysql> USE zoo;
-Database changed
-
-Tu base de datos sólo necesita ser creada una vez, pero debes seleccionarla para usarla cada vez que
-comiences una sesión mysql. Puedes hacerlo lanzando un comando USE como se ha visto en el
-ejemplo. Alternativamente, puedes seleccionar la base de datos desde la línea de comandos cuando
-lanzas mysql. Simplemente especifica su nombre tras los parámetros de conexión que hayas
-escrito. Por ejemplo:
-
-shell> mysql -h host -u user -p zoo
-Enter password: ********
-
-Observa que en la línea de comandos del ejemplo, zoo no es tu password. Si quieres introducir tu
-password como parámetro en la línea de comandos tras la opción -p, debes hacerlo sin teclear un
-espacio en blanco intermedio (es decir, como -pmi_password, no como -p mi_password). Sin embargo, no
-es recomendable poner tu password en la línea de comandos, pues hacerlo lo expone a posibles
-miradas de otros usuarios conectados a tu máquina.
-
-8.3.2 Creando una tabla
-============================
-
-Crear una tabla es la parte fácil, pero hasta este momento está vacía, como te dice la orden SHOW
-TABLES:
-
-mysql> SHOW TABLES;
-Empty set (0.00 sec)
-
-La parte más dura consiste en decidir cual va a ser la estructura de tu base de datos: qué tablas
-necesitarás, y qué columnas tendrá cada una de ellas.
-
-Querrás seguramente una tabla que contenga un registro por cada una de tus mascotas. Esta tabla
-puede llamarse mascotas, y debería contener, como mínimo, el nombre de cada animal. Dado que el
-nombre por sí solo no es muy interesante, la tabla debería contener otra información. Por ejemplo,
-si más de una persona de tu familia tiene mascotas, probablemente quieras listar el propietario de
-cada animal. También querrás guardar información descriptiva básica como puede ser la especie y el
-sexo de cada mascota.
-
-¿Qué pasa con la edad? Podría ser de interés, pero no es una buena cosa a guardar en una base de
-datos. La edad cambia a medida que pasa el tiempo, lo que significa que tendrás que actualizar tus
-registros a menudo. En vez de eso, es mejor almacenar un valor fijo como la edad de
-nacimiento. Después, cada vez que necesites saber la edad, puedes calcularla como la diferencia
-entre la fecha actual y la fecha de nacimiento. MySQL ofrece funciones para realizar cálculos
-aritméticos entre fechas, por lo que esto no es difícil. Almacenar la fecha de nacimiento en lugar
-de la edad tiene también otras ventajas:
-
-* Puedes usar la base de datos para generar recordatorios de cumpleaños de mascotas. (Si crees que
- este tipo de consulta es algo tonta, observa que es la misma pregunta que necesitarás hacer en el
- contexto de una base de datos de un negocio para identificar clientes a los que pronto necesitarás
- mandar un saludo por su cumpleaños, para ese toque personal asistido por ordenador :-)
-
-* Puedes calcular la edad en relación a fechas distintas a la fecha actual. Por ejemplo, si
- almacenas la fecha de muerte en la base de datos, puedes calcular fácilmente lo vieja que era una
- mascota cuando murió.
-
-Seguramente puedas pensar en otros tipos de información que sería útil en la tabla mascota, pero los
-identificados hasta ahora son suficientes por el momento: nombre, propietarios, especie, sexo, fecha
-de nacimiento y muerte.
-
-Usa una sentencia CREATE TABLE para especificar la estructura de tu tabla:
-
-mysql> CREATE TABLE mascota (nombre VARCHAR(20), propietario VARCHAR(20),
- -> especie VARCHAR(20), sexo CHAR(1), nacimiento DATE, muerte DATE);
-
-VARCHAR es una buena elección para las columnas nombre, propietario y especie dado que los valores
-de estas columnas variarán su longitud. Las longitudes de estas columnas no necesitan ser iguales, y
-no necesitan ser 20. Puedes elegir cualquier longitud entre 1 y 255, cualquiera que te parezca
-razonable. (Si realizar una elección pobre y resulta que más adelante necesitas un campo mayor,
-MySQL ofrece una sentencia ALTER TABLE.)
-
-El sexo del animal puede ser representado en una variedad de formas, por ejemplo, "m" y "f", o
-quizás "masculino" y "femenino". Es más simple usar un único caracter, "m" ó "f".
-
-El uso del tipo de datos DATE para las columnas de nacimiento y muerte es una opción bastante
-obvia.
-
-Ahora que ya has creado una tabla, SHOW TABLES debería producir alguna salida:
-
-mysql> SHOW TABLES;
-+---------------+
-| Tables in zoo |
-+---------------+
-| mascota |
-+---------------+
-
-Para verificar que tu tabla fue creada de la forma que esperabas, usa una sentencia DESCRIBE:
-
-mysql> DESCRIBE mascota;
-+-------------+-------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------------+-------------+------+-----+---------+-------+
-| nombre | varchar(20) | YES | | NULL | |
-| propietario | varchar(20) | YES | | NULL | |
-| especie | varchar(20) | YES | | NULL | |
-| sexo | char(1) | YES | | NULL | |
-| nacimiento | date | YES | | NULL | |
-| muerte | date | YES | | NULL | |
-+-------------+-------------+------+-----+---------+-------+
-
-Puedes usar DESCRIBE en cualquier momento, por ejemplo, si olvidas los nombres de las columnas de tu
-tabla o a qué tipo de datos pertenecen.
-
-8.3.3 Cargando datos en una tabla
-=====================================
-
-Una vez creada tu tabla, necesitas poblarla. Las sentencias LOAD DATA e INSERT son útiles para esto.
-
-Suponte que tus registros de mascotas pueden ser descritos como se muestra más abajo. (Observa que
-MySQL espera que las fechas se introduzcan en formato AAAA-MM-DD; esto podría ser diferente a lo que
-estás acostumbrado.)
-
-nombre propietario especie sexo nacimiento muerte
-Fluffy Harold gato f 1993-02-04
-Claws Gwen gato m 1994-03-17
-Buffy Harold perro f 1989-05-13
-Fang Benny perro m 1990-08-27
-Bowser Diane perro m 1998-08-31 1995-07-29
-Chirpy Gwen pájaro f 1998-09-11
-Whistler Gwen pájaro 1997-12-09
-Slim Benny serpiente m 1996-04-29
-
-Dado que estás comenzando con una tabla vacía, una forma sencilla de poblarla consiste en crear un
-fichero de texto conteniendo una fila para cada uno de tus animales, y después cargar el contenido del
-fichero en la tabla con una sola sentencia.
-
-Puedes crear un fichero de texto "mascota.txt" conteniendo un registro por línea, con valores separados
-por tabuladores, y dados en el orden en el que las columnas fueron listadas en la sentencia CREATE
-TABLE. Para valores perdidos (como sexos desconocidos, o fechas de muerte de animales que aún están
-vivos), puedes usar valores NULL. Para representar estos en tu fichero de texto, use \N. Por
-ejemplo, el registro para Whistler el pájaro sería algo como esto (donde el espacio en blanco entre
-valores es un simple caracter de tabulación):
-
-Whistler Gwen pájaro \N 1997-12-09 \N
-
-Para cargar el fichero de texto "mascota.txt" en la tabla mascota, usa este comando:
-
-mysql> LOAD DATA LOCAL INFILE "mascota.txt" INTO TABLE mascota;
-
-Puedes especificar el valor de separación de columna y el marcador de final de línea explícitamente
-en la sentencia LOAD DATA si lo deseas, pero por defecto equivalen a TAB y LF (intro). Estos valores
-por defecto son suficientes para que la sentencia que lee el fichero "mascota.txt" funcione
-correctamente.
-
-Cuando quieras añadir nuevos registros uno a uno, la sentencia INSERT es muy útil. En su forma más
-simple, ofreces valores para cada columna, en el orden en el que las columnas fueron listadas en la
-sentencia CREATE TABLE. Supón que Diane consige un nuevo hamster llamado Puffball. Podrías añadir un
-nuevo registro usando una sentencia INSERT como esta:
-
-mysql> INSERT INTO mascota
- -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
-
-Observa que los valores string y fecha se espefican encerrados entre comillas. Observa también que,
-con INSERT, puedes insertar NULL directamente para representar un valor perdido. No usamos \N como
-hacíamos con LOAD DATA.
-
-De este ejemplo, deberías ser capaz de ver que hubiera dido mucho más costoso teclear todos los
-datos necesarios en la tabla mascota con sentencias INSERT que hacerlo como lo hemos hecho con una
-única sentencia LOAD DATA.
-
-
-8.3.4 Extrayendo información de una tabla
-===============================================
-
-
-La sentencia SELECT se usa para recabar información de una tabla. La forma
-general de la sentencia es:
-
-SELECT qué_seleccionar
-FROM de_qué_tabla
-WHERE condiciones_a_satisfacer
-
-qué_seleccionar indica qué es lo que quieres seleccionar. Puede ser una lista de
-columnas, o * para indicar "todas las columnas". de_qué_tabla indica la tabla de
-la que quieres extraer datos. La claúsula WHERE es opcional. Si está presente,
-condiciones_a_satisfacer especifica las codiciones que las filas deben cumplir
-para estar presentes en el resultado de la selección.
-
-8.3.4.1 Seleccionando todos los datos
-=======================================
-
-La forma más simplede SELECT recoge toda la información de una tabla:
-
-mysql> SELECT * FROM mascota;
-+----------+-------------+-----------+------+------------+------------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+----------+-------------+-----------+------+------------+------------+
-| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-| Fang | Benny | perro | m | 1990-08-27 | NULL |
-| Bowser | Diane | perro | m | 1998-08-31 | 1995-07-29 |
-| Chirpy | Gwen | pájaro | f | 1998-09-11 | NULL |
-| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL |
-| Slim | Benny | serpiente | m | 1996-04-29 | NULL |
-| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
-+----------+-------------+-----------+------+------------+------------+
-
-Esta forma de SELECT es útil si quieres revisar tu tabla al completo, por
-ejemplo, tras haberla cargado con tu conjunto inicial de datos. Como suele
-suceder, la salida ya muestra un error en tu fichero de datos: Bowser ¡parece
-haber nacido tras su muerte! Consultando tus papeles originales sobre el
-pedigree del perro, descubres que la fecha correcta de nacimiento es 1989, no
-1998.
-
-Existen al menos un par de maneras de arreglar esto:
-
-* Edita el fichero "mascota.txt" para corregir el error, después vacía la tabla
- y vuelve a cargarla usando DELETE y LOAD DATA:
-
-mysql> DELETE from mascota;
-mysql> LOAD DATA LOCAL INFILE "mascota.txt" INTO TABLE mascota;
-
-Sin embargo, si haces esto, debes re-escribir el registro para Puffball.
-
-* Arreglar sólo el registro erróneo con la sentencia UPDATE:
-
-mysql> UPDATE mascota SET nacimiento="1989-08-31" WHERE nombre="Bowser";
-
-Como se muestra más arriba, es fácil recuperar el cuerpo de una data. Pero
-típicamente no querrás hacer eso, en particular cuando la tabla sea muy
-larga. Generalmente, estarás más interesado en responder a una pregunta en
-particular, en cuyo caso deberás especificar algunas restricciones en la
-información que deseas. Veamos algunas consultas de selección en términos de
-preguntas sobre tus mascotas que se deben responder.
-
-8.3.4.2 Seleccionando filas en particular
-=============================================
-
-Puedes seleccionar sólo filas en particular de tu tabla. Por ejemplo, si quieres
-verificar el cambio que has realizado a la fecha de nacimiento de Bowser,
-selecciona el registro de Bowser de la siguiente forma:
-
-mysql> SELECT * FROM mascota WHERE nombre="Bowser";
-+--------+-------------+---------+------+------------+------------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+------------+
-| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
-+--------+-------------+---------+------+------------+------------+
-
-La salida confirma que el año está correctamente registrado como 1989, no 1998.
-
-Las comparaciones de cadenas de texto son normalmente insensibles a las
-mayúsculas/minúsculas, por lo que puedes especificar el nombre como "bowser",
-"BOWSER", etc. El resultado de la consulta será el mismo.
-
-Puedes especificar condiciones en cualquier columna, no sólo el nombre. Por
-ejemplo, si quisieras saber qué animales nacieron a partir de 1998, examina la
-columna nacimiento:
-
-mysql> SELECT * FROM mascota WHERE nacimiento >= "1998-1-1";
-+----------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+----------+-------------+---------+------+------------+--------+
-| Chirpy | Gwen | pájaro | f | 1998-09-11 | NULL |
-| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
-+----------+-------------+---------+------+------------+--------+
-
-Puedes combinar condiciones, por ejemplo, para localizar los perros hembra:
-
-mysql> SELECT * FROM mascota WHERE especie="perro" AND sexo="f";
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-La consulta anterior usa el operador lógico AND. Existe también un operador OR:
-
-mysql> SELECT * FROM mascota WHERE especie="serpiente" OR especie="pájaro";
-+----------+-------------+-----------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+----------+-------------+-----------+------+------------+--------+
-| Chirpy | Gwen | pájaro | f | 1998-09-11 | NULL |
-| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL |
-| Slim | Benny | serpiente | m | 1996-04-29 | NULL |
-+----------+-------------+-----------+------+------------+--------+
-
-AND y OR pueden entremezclarse. Si lo haces, es una buena idea el utilizar
-paréntesis para indicar cómo deberían agruparse las condiciones:
-
-mysql> SELECT * FROM mascota WHERE (especie="gato" AND sexo="m")
- -> OR (especie="perro" AND sexo="f");
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-8.3.4.3 Seleccionando columnas en particular
-===================================================
-
-Si no quieres ver filas completas de tu tabla, simplemente nombra las columnas
-en las cuales estás interesado, separadas por comas. Por ejemplo, si quieres
-saber cuándo nacieron tus animales, selecciona las columnas nombre y nacimiento:
-
-mysql> SELECT nombre, nacimiento FROM mascota;
-+----------+------------+
-| nombre | nacimiento |
-+----------+------------+
-| Bluffy | 1993-02-04 |
-| Claws | 1994-03-17 |
-| Buffy | 1989-05-13 |
-| Fang | 1990-08-27 |
-| Bowser | 1989-08-31 |
-| Chirpy | 1998-09-11 |
-| Whistler | 1997-12-09 |
-| Slim | 1996-04-29 |
-| Puffball | 1999-03-30 |
-+----------+------------+
-
-Para averiguar quién posee mascotas, usa esta consulta:
-
-mysql> SELECT propietario FROM mascota;
-+-------------+
-| propietario |
-+-------------+
-| Harold |
-| Gwen |
-| Harold |
-| Benny |
-| Diane |
-| Gwen |
-| Gwen |
-| Benny |
-| Diane |
-+-------------+
-
-Sin embargo, observa que la consulta simplemente obtiene el campo propietario de
-cada registro, y algunos de ellos aparecen más de una vez. Para minimizar la
-salida, obtén cada registro de salida único una sola vez añadiendo la palabra
-reservada DISTINCT:
-
-mysql> SELECT DISTINCT propietario FROM mascota;
-+-------------+
-| propietario |
-+-------------+
-| Benny |
-| Diane |
-| Gwen |
-| Harold |
-+-------------+
-
-Puedes usar una claúsula WHERE para combinar la selección de filas con la
-selección de columnas. Por ejemplo, para conseguir sólo las fechas de nacimiento
-de perros y gatos, usa esta consulta:
-
-mysql> SELECT nombre, especie, nacimiento FROM mascota
- -> WHERE especie = "perro" OR especie = "gato";
-+--------+---------+------------+
-| nombre | especie | nacimiento |
-+--------+---------+------------+
-| Bluffy | gato | 1993-02-04 |
-| Claws | gato | 1994-03-17 |
-| Buffy | perro | 1989-05-13 |
-| Fang | perro | 1990-08-27 |
-| Bowser | perro | 1989-08-31 |
-+--------+---------+------------+
-
-8.3.4.4 Ordenando filas
-===========================
-
-Tal vez hayas observado que en los ejemplos anteriores las filas del resultado
-se muestran sin ningún tipo de orden en particular. Sin embargo, a menudo es más
-fácil de examinar la salida de una consulta cuando las filas están ordenadas de
-alguna manera en particular. Para ordenar un resultado, usa la claúsula ORDER
-BY.
-
-Aquí mostramos las fechas de nacimiento de los animales, ordenadas por fecha:
-
-mysql> SELECT nombre, nacimiento FROM mascota ORDER BY nacimiento;
-+----------+------------+
-| nombre | nacimiento |
-+----------+------------+
-| Buffy | 1989-05-13 |
-| Bowser | 1989-08-31 |
-| Fang | 1990-08-27 |
-| Bluffy | 1993-02-04 |
-| Claws | 1994-03-17 |
-| Slim | 1996-04-29 |
-| Whistler | 1997-12-09 |
-| Chirpy | 1998-09-11 |
-| Puffball | 1999-03-30 |
-+----------+------------+
-
-Para ordenar de forma inversa, añade la palabra reservada DESC (descendente) al
-nombre de la columna por la que estás ordenando:
-
-mysql> SELECT nombre, nacimiento FROM mascota ORDER BY nacimiento DESC;
-+----------+------------+
-| nombre | nacimiento |
-+----------+------------+
-| Puffball | 1999-03-30 |
-| Chirpy | 1998-09-11 |
-| Whistler | 1997-12-09 |
-| Slim | 1996-04-29 |
-| Claws | 1994-03-17 |
-| Bluffy | 1993-02-04 |
-| Fang | 1990-08-27 |
-| Bowser | 1989-08-31 |
-| Buffy | 1989-05-13 |
-+----------+------------+
-
-Puedes ordenar por múltiples columnas. Por ejemplo, para ordenar por tipo de
-animal, después por fecha de nacimiento dentro del mismo tipo de animal estando
-los animales más jóvenes primero, usa la siguiente consulta:
-
-mysql> SELECT nombre, especie, nacimiento FROM mascota ORDER BY especie, nacimiento DESC;
-+----------+-----------+------------+
-| nombre | especie | nacimiento |
-+----------+-----------+------------+
-| Claws | gato | 1994-03-17 |
-| Bluffy | gato | 1993-02-04 |
-| Puffball | hamster | 1999-03-30 |
-| Chirpy | pájaro | 1998-09-11 |
-| Whistler | pájaro | 1997-12-09 |
-| Fang | perro | 1990-08-27 |
-| Bowser | perro | 1989-08-31 |
-| Buffy | perro | 1989-05-13 |
-| Slim | serpiente | 1996-04-29 |
-+----------+-----------+------------+
-
-Observa que la palabra reservada DESC se aplica sólo al nombre de columna que
-preceda a la palabra reservada (nacimiento); los valores especie siguen siendo
-ordenados en forma ascendente.
-
-8.3.4.5 Cálculos de fecha
-============================
-
-MySQL ofrece muchas funciones que puedes usar para realizar cálculos con fechas,
-por ejemplo, para calcular edades o extraer partes de fechas.
-
-Para determinar cuantos años tiene cada una de tus mascotas, puedes calcular la
-edad como la diferencia entre la fecha de nacimiento y la fecha actual. Puedes
-hacerlo convirtiendo las dos fechas a dias, coge la diferencia, y divídela por
-365 (el número de dias en un año):
-
-mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 FROM mascota;
-+----------+------------------------------------------+
-| nombre | (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 |
-+----------+------------------------------------------+
-| Bluffy | 6.94 |
-| Claws | 5.83 |
-| Buffy | 10.68 |
-| Fang | 9.39 |
-| Bowser | 10.38 |
-| Chirpy | 1.34 |
-| Whistler | 2.10 |
-| Slim | 3.71 |
-| Puffball | 0.79 |
-+----------+------------------------------------------+
-
-Aunque la consulta funcione, existen algunos puntos que podrían ser
-mejorados. Primero, el resultado podría ser revisado más fácilmente si las filas
-se presentaran ordenadas de alguna manera. Segundo, la cabecera de la columna
-edad no es muy significativa.
-
-El primer problema puede ser solucionado añadiendo una cláusula ORDER BY nombre
-para ordenar la salida por nombre. Para arreglar el tema del encabezamiento de
-columna, puedes darle un nombre a dicha columna de tal forma que aparezca una
-etiqueta diferente en la salida (esto es lo que se llama un alias de columna):
-
-mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad
- -> FROM mascota ORDER BY nombre;
-+----------+-------+
-| nombre | edad |
-+----------+-------+
-| Bluffy | 6.94 |
-| Bowser | 10.38 |
-| Buffy | 10.68 |
-| Chirpy | 1.34 |
-| Claws | 5.83 |
-| Fang | 9.39 |
-| Puffball | 0.79 |
-| Slim | 3.71 |
-| Whistler | 2.10 |
-+----------+-------+
-
-Para ordenar la salida por edad en lugar de por nombre, puedes hacerlo usando
-símplemente una cláusula ORDER BY diferente:
-
-mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad
- -> FROM mascota ORDER BY edad;
-+----------+-------+
-| nombre | edad |
-+----------+-------+
-| Puffball | 0.79 |
-| Chirpy | 1.34 |
-| Whistler | 2.10 |
-| Slim | 3.71 |
-| Claws | 5.83 |
-| Bluffy | 6.94 |
-| Fang | 9.39 |
-| Bowser | 10.38 |
-| Buffy | 10.68 |
-+----------+-------+
-
-Puede usarse una consulta similar para determinar la edad de la muerte para los
-animales que hayan muerto. Puedes determinar qué animales son estos comprobando
-si el valor muerte es NULL o no. Después, para aquellos que no tengan un valor
-NULL, calcular la diferencia entre los valores muerte y nacimiento:
-
-mysql> select nombre, nacimiento, muerte,
- -> (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad
- -> FROM mascota WHERE muerte IS NOT NULL ORDER BY edad;
-+--------+------------+------------+-------+
-| nombre | nacimiento | muerte | edad |
-+--------+------------+------------+-------+
-| Bowser | 1989-08-31 | 1995-07-29 | 10.38 |
-+--------+------------+------------+-------+
-
-La consulta usa muerte IS NOT NULL en lugar de muerte != NULL dado que NULL es
-un valor especial. Esto se explica más adelante. [Puedes consultar la sección
-[Working with NULL] del manual de MySQL.
-
-¿Qué harías si quisieras saber qué animales cumplen años el mes que viene? Para
-este tipo de cálculos, año y día son irrelevantes, simplemente querrás extraer
-la parte mes de la columna nacimiento. MySQL ofrece muchas funciones de
-extracción de parte-de-fecha, como YEAR(),MONTH() y DAY(). La función apropiada
-para nuestro problema es MONTH(). Para ver cómo funciona, ejecuta una consulta
-rápida que muestre el valor de la fecha de nacimiento y el mes de nacimiento
-(MONTH(nacimiento)):
-
-mysql> SELECT nombre, nacimiento, MONTH(nacimiento) FROM mascota;
-+----------+------------+-------------------+
-| nombre | nacimiento | MONTH(nacimiento) |
-+----------+------------+-------------------+
-| Bluffy | 1993-02-04 | 2 |
-| Claws | 1994-03-17 | 3 |
-| Buffy | 1989-05-13 | 5 |
-| Fang | 1990-08-27 | 8 |
-| Bowser | 1989-08-31 | 8 |
-| Chirpy | 1998-09-11 | 9 |
-| Whistler | 1997-12-09 | 12 |
-| Slim | 1996-04-29 | 4 |
-| Puffball | 1999-03-30 | 3 |
-+----------+------------+-------------------+
-
-Buscar animales que hayan nacido en el mes próximo es también sencillo de
-realizar. Suponte que Abril es el mes actual. Entonces el valor del mes es 4 y
-lo que buscas son animales nacidos en Mayo (mes 5):
-
-mysql> SELECT nombre, nacimiento FROM mascota WHERE MONTH(nacimiento) = 5;
-+--------+------------+
-| nombre | nacimiento |
-+--------+------------+
-| Buffy | 1989-05-13 |
-+--------+------------+
-
-Existe una pequeña complicación si el mes actual es Diciembre, por supuesto. No
-puedes añadir simplemente uno al número de mes (12) y buscar animales nacidos en
-el mes 13, dado que no existe tal mes. En lugar de eso, debes buscar animales
-nacidos en Enero (mes 1).
-
-Puedes escribir la consulta de tal forma que funcione independientemente del mes
-en el que estemos. De esa forma no tendrás que usar un número de mes en
-particular en la consulta. DATE_ADD() te permite añadir un intervalo de tiempo a
-una fecha dada. Si añades un mes al valor de NOW(), y después extraes la parte
-del mes con MONTH(), el resultado produce el mes del cumpleaños que buscamos:
-
-
-mysql> select NOW();
-+---------------------+
-| NOW() |
-+---------------------+
-| 2000-01-13 18:13:09 |
-+---------------------+
-
-mysql> SELECT nombre, nacimiento FROM mascota
- -> WHERE MONTH(nacimiento) = MONTH(DATE_ADD(NOW(),INTERVAL 1 MONTH));
-+--------+------------+
-| nombre | nacimiento |
-+--------+------------+
-| Bluffy | 1993-02-04 |
-+--------+------------+
-
-Una manera difente de conseguir los mismos resultados es añadir 1 al mes actual
-para conseguir el mes siguiente (tras usar la función módulo (MOD) para
-convertir el valor de mes actual en 0 si estamos en Diciembre (mes 12)):
-
-mysql> SELECT nombre, nacimiento FROM mascota
- -> WHERE MONTH(nacimiento) = MOD(MONTH(NOW()),12) +1;
-+--------+------------+
-| nombre | nacimiento |
-+--------+------------+
-| Bluffy | 1993-02-04 |
-+--------+------------+
-
-
-8.3.4.6 Trabajando con valores NULL
-=======================================
-
-Los valores NULL pueden ser sorprenderte hasta que te acostumbras a
-usarlos. Conceptualmente, NULL significa "valor perdido" o "valor desconocido" y
-se trata de forma diferente que otros valores. Para realizar comparaciones
-respecto a NULL, no puedes utilizar los operadores de comparación aritméticos
-como =, < o != . Puedes realizar una demostración de esto, prueba la siguiente consulta:
-
-mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
-+----------+-----------+----------+----------+
-| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |
-+----------+-----------+----------+----------+
-| NULL | NULL | NULL | NULL |
-+----------+-----------+----------+----------+
-
-Ciertamente, de estas comparaciones no se pueden extraer resultados
-significativos. Para conseguirlo, usa los operadores IS NULL y IS NOT NULL:
-
-mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
-+-----------+---------------+
-| 1 IS NULL | 1 IS NOT NULL |
-+-----------+---------------+
-| 0 | 1 |
-+-----------+---------------+
-
-En MySQL, 0 significa falso y 1 significa VERDADERO.
-
-Este tratamiento especial de NULL fue la causa de que en la sección anterior
-fuera necesario determinar qué animales ya no vivían usando "muerte IS NOT NULL"
-en lugar de "muerte != NULL".
-
-8.3.4.7 Asociación/Coincidencia de patrones (PATTERN MATCHING)
-================================================================
-
-MySQL ofrece las características de asociación de patrones estándar así como
-una forma de coincidencia de patrones basadas en expresiones regulares
-extendidas similares a las usadas por utilidades UNIX como vi, grep y sed.
-
-La asociación de patrones SQL te permite usar '_' para asociar cualquier
-caracter simple, y '%' para asociar un número arbitrario de caracteres
-(incluyendo cero caracteres). Los patrones SQL no toman en cuenta las
-diferencias entre mayúsculas y minúsculas. Se muestran debajo algunos
-ejemplos. Observa que no se utiliza = o != en el trabajo con patrones SQL;
-utiliza en su lugar los operadores de comparación LIKE o NOT LIKE.
-
-Para buscar nombres que comienzan por "b":
-
-mysql> SELECT * FROM mascota WHERE nombre LIKE "b%";
-+--------+-------------+---------+------+------------+------------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+------------+
-| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
-+--------+-------------+---------+------+------------+------------+
-
-Para buscar nombres que terminen por "fy":
-
-mysql> SELECT * FROM mascota WHERE nombre LIKE "%fy";
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-Para buscar nombres que contengan una "w":
-
-mysql> SELECT * FROM mascota WHERE nombre LIKE "%w%";
-+----------+-------------+---------+------+------------+------------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+----------+-------------+---------+------+------------+------------+
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
-| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL |
-+----------+-------------+---------+------+------------+------------+
-
-Para buscar nombres de longitud cinco caracteres, usa el patrón "_" :
-
-mysql> SELECT * FROM mascota WHERE nombre LIKE "_____";
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-El otro tipo de asociación de patrones ofrecido por MySQL utiliza expresiones
-regulares extendidas. Cuando se realiza una comprobación buscando una coincidencia
-para este tipo de patrón, se deben usar los operadores REGEXP y NOT REGEXP (o
-RLIKE y NOT RLIKE, dado que son sinónimos).
-
-Algunas características de las expresiones regulares extendidas son:
-
-* `.' se asocia con cualquier caracter (pero sólo uno)
-
-* Una clase de caracteres `[...]' se asocia con culquier caracter contenido
- dentro de los corchetes. Por ejemplo, `[abc]' se asocia con 'a', 'b' ó
-
-* 'c'. Para nombrar un rango de caracteres, usa un guión. `[a-z]' se asocia con
-cualquier letra en minúscula, donde '[0-9]' se asocia con cualquier dígito.
-
-* '*' se asocia con 0 o más instancias de lo que preceda al asterisco. Por
- ejemplo,'a*' coincide con cualquier número de a's,'[0-9]*' se asocia con
- cualquier número de dígitos, y '.*' se asocia con cualquier cosa.
-
-* Las expresiones regulares son sensibles a las mayúsculas/minúsculas, pero
- puedes utilizar una clase caracter para asociar ambos casos si los deseas. Por
- ejemplo, '[aA]' coincide tanto con la letra a minúscula como con la letra A
- mayúscula y '[a-zA-Z]' coincide con cualquier letra en cualquier modo
- mayúscula/minúscula.
-
-* El patrón se asocia si ocurre en cualquier lugar dentro del valor a ser
- probado (los patrones SQL coinciden sólo si se asocian con el valor
- completo).
-
-* Para anclar un patrón de manera que se busque la coincidencia bien al comienzo
- o bien al final del valor a ser comprobado, usa '^' al comienzo del patrón o
- '$' al final del patrón, respectivamente.
-
-Para demostrar cómo funcionan las expresiones regulares, las consultas LIKE
-mostradas antes son reescritas debajo para usar REGEXP:
-
-Para buscar nombres que comiencen por "b", usa '^' para buscar la coincidencia
-al comienzo del nombre y '[bB]' para buscar la asociación tanto con la b
-minúscula como con la b mayúscula:
-
-mysql> SELECT * FROM mascota WHERE nombre REGEXP "^[bB]";
-+--------+-------------+---------+------+------------+------------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+------------+
-| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
-+--------+-------------+---------+------+------------+------------+
-
-Para buscar nombres que terminen por "fy", usa "$" para buscar la coincidencia
-al final del nombre:
-
-mysql> SELECT * FROM mascota WHERE nombre REGEXP "fy$";
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Bluffy | Harold | gato | f | 1993-02-04 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-Para buscar nombres que contengan una "w", utiliza "[wW]" para buscar la
-asociación tanto en mayúsculas como minúsculas:
-
- mysql> SELECT * FROM mascota WHERE nombre REGEXP "[wW]";
-+----------+-------------+---------+------+------------+------------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+----------+-------------+---------+------+------------+------------+
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 |
-| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL |
-+----------+-------------+---------+------+------------+------------+
-
-Dado que un patrón de una expresión regular se asocia si ocurre en cualquier
-lugar del valor, no es necesario poner un caracter comodín en ningún lado del
-patrón para conseguir que se asocie con el valor completo como harías si usaras
-un patrón SQL.
-
-Para buscar nombres conteniendo exactamente cinco caracteres, usa "^" y "$" para
-asociar el comienzo y el final de un nombre, y cinco instancias de "." entre
-ellos:
-
-mysql> SELECT * FROM mascota WHERE nombre REGEXP "^.....$";
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-También podrías haber escrito la consulta anterior usando el operador '{n}'
-"repetir n veces":
-
-mysql> SELECT * FROM mascota WHERE nombre REGEXP "^.{5}$";
-+--------+-------------+---------+------+------------+--------+
-| nombre | propietario | especie | sexo | nacimiento | muerte |
-+--------+-------------+---------+------+------------+--------+
-| Claws | Gwen | gato | m | 1994-03-17 | NULL |
-| Buffy | Harold | perro | f | 1989-05-13 | NULL |
-+--------+-------------+---------+------+------------+--------+
-
-
-8.3.4.8 Contando filas
-=======================
-
-Las bases de datos son usadas a menudo para responder a la pregunta, "¿cuantas
-veces aparece un determinado tipo de datos en una tabla?". Por ejemplo, podrías
-querer saber cuántas mascotas tienes, o cuántas mascotas tiene cada propietario,
-o podrías querer realizar varios tipos de censos respecto a tus animales.
-
-Contar el número total de animales que tienes es lo mismo que preguntar
-"¿cuántas filas hay en la tabla mascota?", dado que hay sólo una fila por
-mascota. La función COUNT() cuenta el número de resultados no-NULL , así pues,
-la consulta a realizar para contar el número de animales tiene la siguiente forma:
-
-mysql> SELECT COUNT(*) FROM mascota;
-+----------+
-| COUNT(*) |
-+----------+
-| 9 |
-+----------+
-
-Antes, conseguiste los nombres de las personas que poseen una mascota. Puedes
-usar COUNT() para averiguar cuántas mascotas tiene cada propietario:
-
-mysql> SELECT propietario, COUNT(*) FROM mascota GROUP BY propietario;
-+-------------+----------+
-| propietario | COUNT(*) |
-+-------------+----------+
-| Benny | 2 |
-| Diane | 2 |
-| Gwen | 3 |
-| Harold | 2 |
-+-------------+----------+
-
-Observa el uso de GROUP BY para agrupar todos los registros de cada
-propietario. Si no lo hubiéramos puesto, todo lo que conseguirias sería un
-mensaje de error:
-
-mysql> SELECT propietario, COUNT(propietario) FROM mascota;
-ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP
-columns is illegal if there is no GROUP BY clause
-
-COUNT() y GROUP BY son útiles para la caracterización de tus datos de varias
-formas. Los siguientes ejemplos muestran difentes maneras para realizar
-operaciones de censo animal.
-
-Número de animales por especies:
-
-mysql> SELECT especie, COUNT(*) FROM mascota GROUP BY especie;
-+-----------+----------+
-| especie | COUNT(*) |
-+-----------+----------+
-| gato | 2 |
-| hamster | 1 |
-| pájaro | 2 |
-| perro | 3 |
-| serpiente | 1 |
-+-----------+----------+
-
-Número de animales por sexo:
-
-mysql> SELECT sexo , COUNT(*) FROM mascota GROUP BY sexo;
-+------+----------+
-| sexo | COUNT(*) |
-+------+----------+
-| NULL | 1 |
-| f | 4 |
-| m | 4 |
-+------+----------+
-
-(En este resultado, NULL indica "sexo desconocido")
-
-El número de animales por combinación de especies y sexo:
-
-mysql> SELECT especie , sexo, COUNT(*) FROM mascota GROUP BY especie, sexo;
-+-----------+------+----------+
-| especie | sexo | COUNT(*) |
-+-----------+------+----------+
-| gato | f | 1 |
-| gato | m | 1 |
-| hamster | f | 1 |
-| pájaro | NULL | 1 |
-| pájaro | f | 1 |
-| perro | f | 1 |
-| perro | m | 2 |
-| serpiente | m | 1 |
-+-----------+------+----------+
-
-No necesitas recuperar una tabla completa cuando uses COUNT(). Por ejemplo, la
-consulta anterior, cuando se realiza sólo sobre perros y gatos, se escribe así:
-
-mysql> SELECT especie , sexo, COUNT(*) FROM mascota
- -> WHERE especie = "perro" OR especie = "gato"
- -> GROUP BY especie, sexo;
-+---------+------+----------+
-| especie | sexo | COUNT(*) |
-+---------+------+----------+
-| gato | f | 1 |
-| gato | m | 1 |
-| perro | f | 1 |
-| perro | m | 2 |
-+---------+------+----------+
-
-O, si quieres conocer el número de animales por sexo sólo para animales de sexo
-conocido:
-
-mysql> SELECT especie , sexo, COUNT(*) FROM mascota
- -> WHERE sexo IS NOT NULL
- -> GROUP BY especie, sexo;
-+-----------+------+----------+
-| especie | sexo | COUNT(*) |
-+-----------+------+----------+
-| gato | f | 1 |
-| gato | m | 1 |
-| hamster | f | 1 |
-| pájaro | f | 1 |
-| perro | f | 1 |
-| perro | m | 2 |
-| serpiente | m | 1 |
-+-----------+------+----------+
-
-
-8.3.5 Usando más de una tabla
-===============================
-
-La tabla mascota guarda datos sobre las mascotas que posees. Si quieres guardar
-otra información sobre ellos, como eventos en sus vidas, visitas al veterinario
-o cuándo han tenido hermanos, necesitas otra tabla. ¿Cómo debería ser esta otra
-tabla?
-
-* Deberá contener el nombre de la mascota de tal forma que pudieras saber a qué
- animal corresponde cada evento almacenado en la misma.
-
-* Necesitará una fecha para conocer cuándo ocurrió el evento.
-
-* Necesitará un campo para describir el evento
-
-* Si quieres ser capaz de categorizar los eventos, sería útil tener un campo de
- tipo evento.
-
-Dadas estas consideraciones, la sentencia CREATE TABLE para la tabla "evento" se
-parecería a esto:
-
-mysql> CREATE TABLE evento (nombre VARCHAR(20), fecha DATE,
- -> tipo VARCHAR(15), anotación VARCHAR(255));
-
-Como ocurría con la tabla mascota, es más fácil cargar los registros iniciales
-creando un fichero de texto delimitado por tabuladores conteniendo la
-información:
-
-Fluffy 1995-05-15 parto 4 cachorros, 3 hembras, 1 macho
-Buffy 1993-06-23 parto 5 cachorros, 2 hembras, 3 machos
-Buffy 1994-06-19 parto 3 cachorros, 3 hembras
-Chirpy 1999-03-21 veterinario necesitó enderezamiento de pico
-Slim 1997-08-03 veterinario costilla rota
-Bowser 1991-10-12 perrera
-Fang 1991-10-12 perrera
-Fang 1998-08-28 cumpleaños Se le regala un nuevo juguete de goma
-Claws 1998-03-17 cumpleaños Se le regala un nuevo collar de pulgas
-Whistler 1998-12-09 cumpleaños Primer cumpleaños
-
-
-Carga los registros así:
-
-mysql> LOAD DATA LOCAL INFILE "evento.txt" INTO TABLE evento;
-
-Basándote en lo que has aprendido de las consultas que has ejecutado em la tabla
-mascota, deberías ser capaz de realizar recuperaciones de datos en los registros
-de la tabla "evento"; los principios son los mismos. ¿Pero qué hacer cuando la
-tabla evento no sea suficiente por sí sola de responder a cuestiones que
-podrías llegar a realizar?
-
-Supón que quisieras averiguar las edades de cada mascota al tener cachorros. La
-tabla evento indica cuándo ha ocurrido esto, pero para calcular la edad de la
-madre, necesitas su fecha de nacimiento. Dado que eso está almacenado en la
-tabla mascota, necesitas ambas tablas para la consulta:
-
-mysql> SELECT mascota.nombre , (TO_DAYS(fecha) - TO_DAYS(nacimiento))/365 AS edad, anotación
- -> FROM mascota, evento
- -> WHERE mascota.nombre = evento.nombre AND tipo = "parto";
-+--------+------+----------------------------------+
-| nombre | edad | anotación |
-+--------+------+----------------------------------+
-| Fluffy | 2.27 | 4 cachorros, 3 hembras, 1 macho |
-| Buffy | 4.12 | 5 cachorros, 2 hembras, 3 machos |
-| Buffy | 5.10 | 3 cachorros, 3 hembras |
-+--------+------+----------------------------------+
-
-Existen varios puntos que anotar sobre esta consulta:
-
-* La cláusula FROM lista dos tablas dado que la consulta necesita extraer
- información de las dos.
-
-* Cuando se combina la información de múltiples tablas, necesitas especificar
- cómo pueden ser asociados los registros de una tabla con los registros de la
- otra. Esto es fácil dado que ambas tienen una columna nombre (N.T.: nombre es
- una clave extranjera). La consulta usa la cláusula WHERE para combinar los
- registros de las dos tablas basándose en los valores de nombre.
-
-* Dado que la columna nombre aparece en ambas tablas, debes ser específico sobre
- a qué tabla te refieres cuando estés hablando de esa columna. Esto se realiza
- poniendo el nombre de la tabla como prefijo de la columna.
-
-No necesitas tener dos tablas diferentes para realizar un join. En algunas
-ocasiones es útil realizar un join de una tabla consigo misma, si quieres comparar
-registros de una tabla con otros registros en la misma tabla. Por ejemplo, para buscar
-parejas de sexos entre tus mascotas, puedes enlazar la tabla mascota consigo
-mismo para emaparejar machos y hembras de las mismas especies:
-
-mysql> SELECT p1.nombre, p1.sexo, p2.nombre, p2.sexo, p1.especie
- -> FROM mascota AS p1, mascota AS p2
- -> WHERE p1.especie = p2.especie AND p1.sexo = "f" AND p2.sexo = "m";
-+--------+------+--------+------+---------+
-| nombre | sexo | nombre | sexo | especie |
-+--------+------+--------+------+---------+
-| Fluffy | f | Claws | m | gato |
-| Buffy | f | Fang | m | perro |
-| Buffy | f | Bowser | m | perro |
-+--------+------+--------+------+---------+
-
-
-En esta consulta, especificamos un par de alias para el nombre de las tablas
-y ser capaces así de referirnos a las columnas y saber en todo momento a qué
-instancia de qué tabla se asocia cada referencia de columna.
-
-8.4 Obtener información sobre bases de datos y tablas
-================================================================
-
-¿Qué ocurre si olvidas el nombre de una base de datos o de una tabla, o cuál es
-la estructura de una tabla dada (ejm. : ¿cómo se llaman sus columnas?) MySQL
-soluciona este problema a través de numerosas sentencias que ofrecen información
-sobre las bases de datos y las tablas que soporta.
-
-Ya hemos visto SHOW DATABASES, que lista las bases de datos gestionadas por el
-servidor. Para averiguar qué base de datos está actualmente seleccionada, usa la
-función DATABASE():
-
-mysql> SELECT DATABASE();
-+------------+
-| DATABASE() |
-+------------+
-| zoo |
-+------------+
-
-Si aún no has seleccionado ninguna base de datos, el resultado estará en blanco.
-
-Para averiguar qué tablas contiene la base de datos actual (por ejemplo, cuando
-no estás seguro sobre el nombre de una tabla), usa este comando:
-
-mysql> SHOW TABLES;
-+---------------+
-| Tables in zoo |
-+---------------+
-| evento |
-| mascota |
-+---------------+
-
-Si quieres averiguar la estructura de una tabla, el comando DESCRIBE te será
-útil; muestra información sobre cada columna de una tabla:
-
-mysql> DESCRIBE mascota;
-+-------------+-------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------------+-------------+------+-----+---------+-------+
-| nombre | varchar(20) | YES | | NULL | |
-| propietario | varchar(20) | YES | | NULL | |
-| especie | varchar(20) | YES | | NULL | |
-| sexo | char(1) | YES | | NULL | |
-| nacimiento | date | YES | | NULL | |
-| muerte | date | YES | | NULL | |
-+-------------+-------------+------+-----+---------+-------+
-
-Field indica el nombre de la columna, Type es el tipo de datos para la columna,
-Null indica si la columna puede contener o no valores NULL, Key indica si la
-columna está indexada o no, y Default especifica el valor por defecto para la
-columna.
-
-Si tienes índices en una tabla, SHOW INDEX FROM nombre_tabla te mostrará
-información sobre ellos.
-
-8.5 Usando mysql en modo batch
-=================================
-
-En las secciones previas, hemos usado mysql interactivamente para introducir
-consultas y observar los resultados. También puedes ejecutar mysql en modo
-batch. Para realizarlo, escribe los comandos que quieras ejecutar en un fichero,
-después pídele a mysql que lea su entrada desde el fichero:
-
-shell> mysql < fichero-batch
-
-(N.T.: en ocasiones se traduce como fichero por lotes)
-
-Si necesitas especificar parámetros de conexión en la línea de comandos, el
-comando podría parecerse a esto:
-
-shell> mysql -h host -u user -p < fichero-batch
-Enter password: ********
-
-Cuando usas MySQL de esta manera, estás creando un fichero script (de guión), y
-después ejecutando el script.
-
-¿Por qué usar un script? He aquí algunas razones:
-
-* Si ejecutas una consulta repetidamente (digamos, cada día o cada semana), el
- construir un script con esta consulta te permite evitar volver a teclearla
- cada vez que la ejecutes.
-
-* Puedes generar nuevas consultas a partir de consultas ya existentes similares
- simplemente copiando y editando los ficheros script.
-
-* El modo batch puede ser también muy útil cuando estés desarrollando una
- consulta, particularmente para comandos multi-línea o múltiples secuencias de
- comandos de múltiples sentencias. Si cometes un error, no necesitas reescribir
- todo. Símplemente edita el script para corregir el error, y después pídele a
- mysql que lo vuelva a ejecutar.
-
-* Si tienes una consulta que produce resultados muy largos, puedes usar un
- paginador para filtrar esta salida en lugar de ver cómo se desplaza fuera del
- alcance de tu pantalla:
-
-
-shell> mysql < fichero_batch | more
-
-* Puedes redirigir la salida a un fichero para un procesamiento posterior:
-
-shell> mysql < fichero_batch > mysql.out
-
-* Puedes distribuir tu script a otras personas para que puedan ejecutar también
- tus comandos.
-
-* Algunas situaciones no permiten un uso interactivo, por ejemplo, cuando
- ejecutas una consulta como una tarea de cron. (N.T.: cron es un comando UNIX
- que sirve para planificar y ejecutar comandos UNIX en el tiempo). En este
- caso, debes usar el procesamiento por lotes.
-
-El formato de salida por defecto es diferente (más conciso) cuando ejecutas
-mysql en modo batch que cuando lo usas de manera interactiva. Por ejemplo, la
-salida de SELECT DISTINCT especie FROM mascota es la siguiente cuando se
-ejecuta de manera interactiva:
-
-mysql> SELECT DISTINCT especie FROM mascota;
-+-----------+
-| especie |
-+-----------+
-| gato |
-| hamster |
-| pájaro |
-| perro |
-| serpiente |
-+-----------+
-
-Y la siguiente si se ejecuta en modo batch:
-
-especie
-gato
-hamster
-pájaro
-perro
-serpiente
-
-Si quieres obtener el formato de salida del modo interactivo también en modo
-batch, usa mysql -t. Para redirigir a salida estándar los comandos que se están
-ejecutando, usa mysql -vvv.
-
-
-
-8.6 Consultas del proyecto gemelos
-
-En Analytikerna y Lentus, hemos estado realizando el trabajo de campo y sistemas para
-un gran proyecto de investigación. Este proyecto es una colaboración entre el Instituto de
-Medicina Medioambiental en el Karolinska Institutet Stockholm y la Sección en Investigación
-Clínica en Envejecimiento y Psicología en la Universidad del Sur de California.
-
-El proyecto consistió en una parte de selección donde todos los gemelos en Suecia mayores de
-65 años eran entrevistados por teléfono. Los gemelos que reunían ciertos criterios pasaban a la
-siguiente fase. En esta fase posterior, los gemelos que querían participar eran visitados por
-un equipo doctor/enfermera. Algunos de los exámenes incluían exámenes físicos y neuropsicológicos,
-pruebas de laboratorio, neuroimágenes, valoración del estado psicológico, y recopilación de la
-historia familiar. Además, se recogieron datos sobre los factores de riesgo médicos y
-medioambientales.
-
-Puede encontrarse más información sobre los estudios de gemelos en :
-
- http://www.imm.ki.se/TWIN/TWINUKW.HTM
-
-La última parte del proyecto se administra con un interfaz web escrito usando Perl y MySQL.
-Cada noche, todos los datos de las entrevistas son movidos a una base de datos MySQL.
-
-8.6.1 Buscar todos los gemelos no-distribuidos
-
-La siguiente consulta se usa para determinar quién pasa a la segunda parte del proyecto:
-
- select
- concat(p1.id, p1.tvab) + 0 as tvid,
- concat(p1.christian_name, " ", p1.surname) as Name,
- p1.postal_code as Code,
- p1.city as City,
- pg.abrev as Area,
- if(td.participation = "Aborted", "A", " ") as A,
- p1.dead as dead1,
- l.event as event1,
- td.suspect as tsuspect1,
- id.suspect as isuspect1,
- td.severe as tsevere1,
- id.severe as isevere1,
- p2.dead as dead2,
- l2.event as event2,
- h2.nurse as nurse2,
- h2.doctor as doctor2,
- td2.suspect as tsuspect2,
- id2.suspect as isuspect2,
- td2.severe as tsevere2,
- id2.severe as isevere2,
- l.finish_date
- from
- twin_project as tp
- /* For Twin 1 */
- left join twin_data as td on tp.id = td.id and tp.tvab = td.tvab
- left join informant_data as id on tp.id = id.id and tp.tvab = id.tvab
- left join harmony as h on tp.id = h.id and tp.tvab = h.tvab
- left join lentus as l on tp.id = l.id and tp.tvab = l.tvab
- /* For Twin 2 */
- left join twin_data as td2 on p2.id = td2.id and p2.tvab = td2.tvab left join informant_data as id2 on p2.id = id2.id and p2.tvab = id2.tvab
- left join harmony as h2 on p2.id = h2.id and p2.tvab = h2.tvab
- left join lentus as l2 on p2.id = l2.id and p2.tvab = l2.tvab,
- person_data as p1,
- person_data as p2,
- postal_groups as pg
- where
- /* p1 gets main twin and p2 gets his/her twin. */
- /* ptvab is a field inverted from tvab */
- p1.id = tp.id and p1.tvab = tp.tvab and
- p2.id = p1.id and p2.ptvab = p1.tvab and
- /* Just the sceening survey */
- tp.survey_no = 5 and
- /* Skip if partner died before 65 but allow emigration (dead=9) */
- (p2.dead = 0 or p2.dead = 9 or
- (p2.dead = 1 and
- (p2.death_date = 0 or
- (((to_days(p2.death_date) - to_days(p2.birthday)) / 365)
- >= 65))))
- and
- (
- /* Twin is suspect */
- (td.future_contact = 'Yes' and td.suspect = 2) or
- /* Twin is suspect - Informant is Blessed */
- (td.future_contact = 'Yes' and td.suspect = 1 and id.suspect = 1) o
- /* No twin - Informant is Blessed */
- (ISNULL(td.suspect) and id.suspect = 1 and id.future_contact = 'Yes') or
- /* Twin broken off - Informant is Blessed */
- (td.participation = 'Aborted'
- and id.suspect = 1 and id.future_contact = 'Yes') or
- /* Twin broken off - No inform - Have partner */
- (td.participation = 'Aborted' and ISNULL(id.suspect) and p2.dead = 0))
- and
- l.event = 'Finished'
- /* Get at area code */
- and substring(p1.postal_code, 1, 2) = pg.code
- /* Not already distributed */
- and (h.nurse is NULL or h.nurse=00 or h.doctor=00)
- /* Has not refused or been aborted */
- and not (h.status = 'Refused' or h.status = 'Aborted'
- or h.status = 'Died' or h.status = 'Other')
- order by
- tvid;
-
-Algunas explicaciones:
-
-`concat(p1.id, p1.tvab) + 0 as tvid'
- Queremos ordenar por la concatenación de `id' y `tvab' en orden numérico.
- Añadiendo `0' al resultado provocamos que *MySQL* trate el resultado como
- un número.
-
-column `id'
- Esto identifica un par de gemelos. Es una clave en todas las tablas.
-
-column `tvab'
- Esto identifica un gemelo de una pareja. Tiene un valor de `1' ó `2'
-
-column `ptvab'
- Esto es la inversa de `tvab'. Cuando `tvab' es `1' esto es `2', y
- vice versa. Esto existe para ahorrarnos teclear y para hacer más fácil
- la optimización de la consulta a MySQL.
-
-
-Esta consulta demuestra, entre otras cosas, cómo realizar búsquedas en una tabla
-enlazada con la misma tabla a través de un join (p1 y p2). En el ejemplo, ésto
-se usa para comprobar cuándo un gemelo de una pareja murió antes de cumplir 65.
-En caso afirmativo, la fila no es devuelta.
-
-Todo lo anterior existe en todas las tablas con información relacionada con los gemelos.
-Tenemos una clave tanto en id, tvab (todas las tablas) como en id,ptvab (person_data) para
-construir consultas más rápidas.
-
-En nuestra máquina de producción (una UltraSPARC 200MHz), esta consulta devuelve alrededor
-de 150-200 filas y tarda menos de un segundo.
-
-El número actual de registros en las tablas usadas arriba:
-
-Tabla Filas
-
-person_data 71074
-lentus 5291
-twin_project 5286
-twin_data 2012
-informant_data 663
-harmony 381
-postal_groups 100
-
-
-
-
-8.6.2 Mostrar una tabla con el estado de la pareja de gemelos.
-
-Cada entrevista finaliza con un código de estado llamado event. La consulta mostrada
-debajo se usa para imprimir una tabla sobre todas las parejas de gemelos combinadas por evento.
-Esto indica en cuántas parejas ambos gemelos han finalizado, en cuántas parejas
-ha finalizado un gemelo y el otro se rechazó, etc.
-
- select
- t1.event,
- t2.event,
- count(*)
- from
- lentus as t1,
- lentus as t2,
- twin_project as tp
- where
- /* We are looking at one pair at a time */
- t1.id = tp.id
- and t1.tvab=tp.tvab
- and t1.id = t2.id
- /* Just the sceening survey */
- and tp.survey_no = 5
- /* This makes each pair only appear once */
- and t1.tvab='1' and t2.tvab='2'
- group by
- t1.event, t2.event;
-
-
-
diff --git a/Docs/bk.txt b/Docs/bk.txt
deleted file mode 100644
index b9274901653..00000000000
--- a/Docs/bk.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-Mail by sasha, should be rewritten as a HOWTO sometimes
-vva added point C) for Windows-project
------------
-
-I have set up a repository with BitKeeper on work. There are still some things
-about it that I would like to learn, but I have gotten far enough with it to
-replace CVS functionality were are currently using, so let's just go ahead and
-get started on it. Please follow the instructions below (make sure to save the
-message for future reference):
-
-a) http://www.bitmover.com/download
- user: beta
- password: get bitkeeper
-
- get the version appropriate for your platform - download it to a temp
-directory, chmod +x and then run it. You will have to tell it which directory
-to install, for consistency, let's use /usr/local/bin
-
-b) we will take advantage of bk capablity of working with master/slave
-repositories. The master will be on work.mysql.com, the slaves will be our
-individual machines. The master repository has already been set up on work, so
-you will need just to set up a slave repository on your machine:
-
- mkdir bk
- cd bk
- bk clone yourusername@work:/home/bk/mysql mysql
- cd mysql
- bk -r edit
-
-Now you have the entire source tree in the current directory. Let's compile it:
-
- BUILD/compile-pentium-debug
-
-C) Windows project.
- - Compile Linux-project (see points above)
- - run VC++Files/prepare
- - make repository accessible for Windows (using samba)
- - open VC++Files/mysql.dsw in Microsoft Visual Stidio (5.0 or above)
-
-After you edit a file, you need to check it in using bk citool or bk ci
-filename. Note that ci is different than commit - you ci a file, but you commit
-a change set. This is a very nice concept - instead of thinking of each
-individual file as CVS does, bk groups the changes you are making and allows you
-to document what you actually did between the commits as a whole, rather than
-just commenting on every file. When you commit, bk will ask you to comment on
-the change set.
-
-Commit is done just to your local repository. To make your changes global, you
-will need to run bk push. Be careful with that - it is a good idea to run bk
-push -l -n first too see what you are just about to push to the master
-repository.
-
-When somebody does a push, you will be getting a email ( I will set this up to
-day). You will then need to execute bk pull to update your sources. If there are
-any conflicts, bk will force you to resolve them by asking you questions on what
-to do with each conflict.
-
-To learn more about bk, use bk helptool - I will be doing this a lot in the next
-couple of days :-) If you find bugs or have questions/feature
-suggestions/comments for developers, feel free to e-mail dev@bitmover.com .
-Their developers, and especially the president of the company Larry McVoy really
-like MySQL and are very anxious to help us. Make sure it is obvious that you
-work for MySQL, of course. And, of course, do not bug them with little things
-that you can figure out on your own or with my help - they were nice to offer us
-support, but we should not abuse it.
\ No newline at end of file
diff --git a/Docs/changelog-4.0.xml b/Docs/changelog-4.0.xml
deleted file mode 100755
index f0f9aa881f1..00000000000
--- a/Docs/changelog-4.0.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
- Changes in release 4.0.x
-
-
-
- This is a dummy changelog file. Don't use it yet.
-
-
-
diff --git a/Docs/changelog-4.1.xml b/Docs/changelog-4.1.xml
deleted file mode 100755
index 644f2940d0f..00000000000
--- a/Docs/changelog-4.1.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
- Changes in release 4.1.x
-
-
-
- This is a dummy changelog file. Don't use it yet.
-
-
-
diff --git a/Docs/changelog-5.0.xml b/Docs/changelog-5.0.xml
deleted file mode 100755
index deb059716ad..00000000000
--- a/Docs/changelog-5.0.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
- Changes in release 5.0.x
-
-
-
- This is a dummy changelog file. Don't use it yet.
-
-
-
diff --git a/Docs/Support/generate-text-files.pl b/Docs/generate-text-files.pl
similarity index 100%
rename from Docs/Support/generate-text-files.pl
rename to Docs/generate-text-files.pl
diff --git a/Docs/sp-implemented.txt b/Docs/sp-implemented.txt
deleted file mode 100644
index 6f2cf49b3b0..00000000000
--- a/Docs/sp-implemented.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-Stored Procedures implemented 2004-01-29:
-
-
-Summary of what's implemented:
-
- - SQL PROCEDUREs/FUNCTIONs (CREATE/DROP)
- - CALL
- - DECLARE of local variables
- - BEGIN/END, SET, CASE, IF, LOOP, WHILE, REPEAT, ITERATE, LEAVE
- - SELECT INTO local variables
- - "Non-query" FUNCTIONs only
- - Prepared SP caching
- - CONDITIONs and HANDLERs
- - Simple read-only CURSORs.
- - SHOW CREATE PROCEDURE/FUNCTION and SHOW PROCEDURE/FUNCTION STATUS
-
-
-Summary of Not Yet Implemented:
-
- - SQL statements using tables (like SELECT, INSERT, UPDATE etc) in FUNCTIONs
- - External languages
- - Access control
- - SQL-99 COMMIT (related to BEGIN/END)
- - FOR-loops
- - CASCADE/RESTRICT for ALTER and DROP
- - ALTER/DROP METHOD (as it implies User Defined Types)
- - SIGNAL and RESIGNAL, and UNDO handlers
-
-
-List of what's implemented:
-
- - CREATE PROCEDURE|FUNCTION name ( args ) characteristics body
- where characteristics is:
- LANGUAGE SQL |
- [NOT] DETERMINISTIC |
- SQL SECURITY [DEFINER|INVOKER] |
- COMMENT string
- However the DETERMINISTIC setting is not currently used.
-
- - ALTER PROCEDURE|FUNCTION name characteristics
- CASCADE/RESTRICT is not implemented.
- characteristics is:
- COMMENT string |
- SQL SECURITY [DEFINER|INVOKER] |
- NAME newname
-
- - DROP PROCEDURE|FUNCTION [IF EXISTS] name
- CASCADE/RESTRICT is not implemented.
-
- - CALL name (args)
- OUT and INOUT parameters are also works for user variables ("global"
- variables) - i.e., if a procedure is defined as:
- CREATE PROCEDURE foo(OUT p INT) ...;
- a call like:
- CALL foo(@x);
- will set @x to the output value.
-
- - Function/Procedure body:
- - BEGIN/END
- Is parsed, but not the real thing with (optional) transaction
- control, it only serves as block syntax for multiple statements (and
- local variable binding).
- Note: Multiple statements requires a client that can send bodies
- containing ";". This is handled in the CLI clients mysql and
- mysqltest with the "delimiter" command. Changing the end-of-query
- delimiter ";" to for instance "|" allows ";" to be used in the
- routine body.
- - SET of local variables
- Implemented as part of the pre-existing SET syntax. This allows an
- extended syntax of "SET a=x, b=y, ..." where different variable types
- (SP local and global) can be mixed. This also allows combinations
- of local variables and some options that only make sense for
- global/system variables; in that case the options are accepted but
- ignored.
- - The flow control constructs: CASE, IF, LOOP, WHILE, ITERATE and LEAVE
- are fully implemented.
- - SELECT ... INTO local variables (as well as global session variables)
- is implemented. (Note: This is not SQL-99 feature, but common in other
- databases.)
- - A FUNCTION can have flow control contructs, but must not contain
- an SQL query/statement, like SELECT, INSERT, UPDATE, etc. The reason
- is that it's hard to allow this is that a FUNCTION is executed as part
- of another query (unlike a PROCEDURE, which is called as a statement).
- The table locking scheme used makes it difficult to allow "subqueries"
- during FUNCTION invokation.
- - SPs are cached, but with a separate cache for each thread (THD).
- There are still quite a few non-reentrant constructs in the lexical
- context which makes sharing prepared SPs impossible. And, even when
- this is resolved, it's not necessarily the case that it will be faster
- than a cache per thread. A global cache requires locks, which might
- become a bottleneck. (It would save memory though.)
- - CONDITIONs and HANDLERs are implemented, but not the SIGNAL and
- RESIGNAL statements. (It's unclear if these can be implemented.)
- The semantics of CONDITIONs is expanded to allow catching MySQL error
- codes as well. UNDO handlers are not implemented (since we don't have
- SQL-99 style transaction control yet).
- - Simple read-only CURSORs are implemented, but not yet any of the
- optional arguments to DECLARE (SCROLL, SENSITIVE, etc) or FETCH
- (NEXT, PRIOR, etc). Cursors are ASENSITIVE, READ-ONLY, non-SCROLLing.
- (The additional syntax will be added for completeness, but for the
- most part unsupported with the current underlying cursor mechanism.)
- N.B. The current implementation is temporary and only works within a
- stored procedure, and may not perform well for very large result sets.
- A "real" cursor implementation is under development; this will replace
- the current one when it's finished.
-
- - SHOW procedures and functions
- SHOW CREATE PROCEDURE|FUNCTION
- returns the definition of a routine.
- SHOW PROCEDURE|FUNCTION STATUS [LIKE ]
- returns characteristics of routines, like the name, type, creator,
- creation and modification dates, etc.
diff --git a/Makefile.am b/Makefile.am
index 3f17cbe797d..dbf43151d60 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,25 +21,17 @@ AUTOMAKE_OPTIONS = foreign
# These are built from source in the Docs directory
EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
README COPYING EXCEPTIONS-CLIENT cmakelists.txt
-SUBDIRS = . include @docs_dirs@ @zlib_dir@ @yassl_dir@ \
+SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
@readline_topdir@ sql-common \
@thread_dirs@ pstack \
- @sql_union_dirs@ @mysql_se_dirs@ \
+ @sql_union_dirs@ storage \
@sql_server@ scripts @man_dirs@ tests \
@mysql_se_plugins@ \
netware @libmysqld_dirs@ \
- @bench_dirs@ support-files @tools_dirs@ \
- plugin win
+ mysql-test support-files @tools_dirs@ \
+ plugin unittest win
-DIST_SUBDIRS = . include @docs_dirs@ zlib \
- @readline_topdir@ sql-common \
- @thread_dirs@ pstack \
- strings mysys dbug extra regex storage \
- vio sql libmysql_r libmysql client scripts \
- @man_dirs@ tests SSL\
- BUILD netware os2 @libmysqld_dirs@\
- @bench_dirs@ support-files server-tools tools \
- plugin win
+DIST_SUBDIRS = $(SUBDIRS) BUILD
# Run these targets before any others, also make part of clean target,
# to make sure we create new links after a clean.
@@ -100,9 +92,11 @@ dist-hook:
rm -rf `find $(distdir) -type d -name SCCS -print`
if echo "$(distdir)" | grep -q '^/' ; then \
scripts/mysql_install_db --no-defaults --windows \
+ --basedir=$(top_srcdir) \
--datadir="$(distdir)/win/data"; \
else \
scripts/mysql_install_db --no-defaults --windows \
+ --basedir=$(top_srcdir) \
--datadir="$$(pwd)/$(distdir)/win/data"; \
fi
@@ -119,54 +113,37 @@ tags:
# making sure each user use different ports.
test:
- cd mysql-test ; \
- ./mysql-test-run --mysqld=--binlog-format=statement && \
- ./mysql-test-run --ps-protocol --mysqld=--binlog-format=row
-
-test-full:
- cd mysql-test ; \
- ./mysql-test-run --mysqld=--binlog-format=statement && \
- ./mysql-test-run --ps-protocol --mysqld=--binlog-format=statement && \
- ./mysql-test-run --mysqld=--binlog-format=row && \
- ./mysql-test-run --ps-protocol --mysqld=--binlog-format=row
-
-test-force:
- cd mysql-test ; \
- ./mysql-test-run --force --mysqld=--binlog-format=statement && \
- ./mysql-test-run --ps-protocol --force --mysqld=--binlog-format=row
-
-test-force-full:
- cd mysql-test ; \
- ./mysql-test-run --force --mysqld=--binlog-format=statement && \
- ./mysql-test-run --force --ps-protocol --mysqld=--binlog-format=statement && \
- ./mysql-test-run --force --mysqld=--binlog-format=row && \
- ./mysql-test-run --force --ps-protocol --mysqld=--binlog-format=row
-
-# We are testing a new Perl version of the test script
-test-pl:
cd mysql-test ; \
./mysql-test-run.pl --mysqld=--binlog-format=statement && \
./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=row
-test-full-pl:
+test-full:
cd mysql-test ; \
./mysql-test-run.pl --mysqld=--binlog-format=statement && \
./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=statement && \
./mysql-test-run.pl --mysqld=--binlog-format=row && \
./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=row
-test-force-pl:
+test-force:
cd mysql-test ; \
./mysql-test-run.pl --force --mysqld=--binlog-format=statement && \
./mysql-test-run.pl --ps-protocol --force --mysqld=--binlog-format=row
-test-force-full-pl:
+test-force-full:
cd mysql-test ; \
./mysql-test-run.pl --force --mysqld=--binlog-format=statement && \
./mysql-test-run.pl --force --ps-protocol --mysqld=--binlog-format=statement && \
./mysql-test-run.pl --force --mysqld=--binlog-format=row && \
./mysql-test-run.pl --force --ps-protocol --mysqld=--binlog-format=row
+# Keep these for a while
+test-pl: test
+test-full-pl: test-full
+test-force-pl: test-force
+test-force-full-pl: test-force-full
+
+
+
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/SSL/Makefile.am b/SSL/Makefile.am
deleted file mode 100644
index bd3aad1e3b2..00000000000
--- a/SSL/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-## Process this file with automake to create Makefile.in
-
-EXTRA_DIST= NOTES cacert.pem client-cert.pem client-key.pem \
- client-req.pem run-client run-server server-cert.pem \
- server-key.pem server-req.pem
-
-# Don't update the files from bitkeeper
-%::SCCS/s.%
diff --git a/SSL/NOTES b/SSL/NOTES
deleted file mode 100644
index 413c724c583..00000000000
--- a/SSL/NOTES
+++ /dev/null
@@ -1,376 +0,0 @@
-Quick notes:
---------------------------------------------
-[tonu@x153 mysql-4.0]$ cat /etc/my.cnf
-[mysqld]
-ssl-ca=SSL/cacert.pem
-ssl-cert=SSL/server-cert.pem
-ssl-key=SSL/server-key.pem
-
-[mysql]
-ssl-ca=SSL/cacert.pem
-ssl-cert=SSL/client-cert.pem
-ssl-key=SSL/client-key.pem
-
-[mysqldump]
-ssl-ca=SSL/cacert.pem
-ssl-cert=SSL/client-cert.pem
-ssl-key=SSL/client-key.pem
-
-[tonu@x153 mysql-4.0]$
---------------------------------------------
-To remove passwords from keyfiles:
-[tonu@x153 SSL]$ openssl rsa -inform pem < server-req.pem > server-key.pem
-read RSA key
-Enter PEM pass phrase:
-writing RSA key
-[tonu@x153 SSL]$
---------------------------------------------
-To run server:
-
-sql/mysqld --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --skip-grant --debug='d:t:O,-' > /tmp/mysqld.trace
---------------------------------------------
-To run client:
-
-client/mysql --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --debug='d:t:O,/tmp/client.trace' -h 127.0.0.1
---------------------------------------------
-openssl s_client -host 127.0.0.1 -port 1111 -debug -verify 1 -cert ../SSL/client-cert.pem -key ../SSL/client-key.pem -CAfile ../SSL/cacert.pem -pause -showcerts -state
-
---------------------------------------------
-openssl s_server -port 1111 -cert ../SSL/server-cert.pem -key ../SSL/server-key.pem
-
-
-
-
---------------------------------------------
-
-CA stuff:
-
-[tonu@x153 bin]$ pwd
-/usr/local/ssl/bin
-[tonu@x153 bin]$
-[tonu@x153 bin]$ ./CA.sh
-[tonu@x153 bin]$ ./CA.sh -h
-usage: CA -newcert|-newreq|-newca|-sign|-verify
-[tonu@x153 bin]$
-[root@x153 bin]# ./CA.sh -newca
-CA certificate filename (or enter to create)
-
-Making CA certificate ...
-Using configuration from /usr/lib/ssl/openssl.cnf
-Generating a 1024 bit RSA private key
-.++++++
-................++++++
-writing new private key to './demoCA/private/./cakey.pem'
-Enter PEM pass phrase:
-Verifying password - Enter PEM pass phrase:
-phrase is too short, needs to be at least 4 chars
-Enter PEM pass phrase:
-Verifying password - Enter PEM pass phrase:
------
-You are about to be asked to enter information that will be incorporated
-into your certificate request.
-What you are about to enter is what is called a Distinguished Name or a DN.
-There are quite a few fields but you can leave some blank
-For some fields there will be a default value,
-If you enter '.', the field will be left blank.
------
-ountry Name (2 letter code) [AU]:FI
-State or Province Name (full name) [Some-State]:
-Locality Name (eg, city) []:Helsinki
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:MySQL Finland AB
-Organizational Unit Name (eg, section) []:
-Common Name (eg, YOUR name) []:Tonu Samuel
-Email Address []:tonu@mysql.com
-[root@x153 bin]#
-[root@x153 bin]# ls -la demoCA/
-total 13
-drwxr-xr-x 6 root root 232 Jun 24 18:50 ./
-drwxr-xr-x 3 root root 2136 Jun 24 18:41 ../
--rw-r--r-- 1 root root 1241 Jun 24 18:50 cacert.pem
-drwxr-xr-x 2 root root 48 Jun 24 18:41 certs/
-drwxr-xr-x 2 root root 48 Jun 24 18:41 crl/
--rw-r--r-- 1 root root 0 Jun 24 18:44 index.txt
-drwxr-xr-x 2 root root 48 Jun 24 18:41 newcerts/
-drwxr-xr-x 2 root root 80 Jun 24 18:44 private/
--rw-r--r-- 1 root root 3 Jun 24 18:44 serial
-[root@x153 bin]#
-[root@x153 bin]# ls -la demoCA/private/
-total 5
-drwxr-xr-x 2 root root 80 Jun 24 18:44 ./
-drwxr-xr-x 6 root root 232 Jun 24 18:50 ../
--rw-r--r-- 1 root root 963 Jun 24 18:50 cakey.pem
-[root@x153 bin]#
-[root@x153 bin]# ./CA.sh -newreq
-Using configuration from /usr/lib/ssl/openssl.cnf
-Generating a 1024 bit RSA private key
-..................++++++
-........................++++++
-writing new private key to 'newreq.pem'
-Enter PEM pass phrase: <- new key password, not CA
-Verifying password - Enter PEM pass phrase:
------
-You are about to be asked to enter information that will be incorporated
-into your certificate request.
-What you are about to enter is what is called a Distinguished Name or a DN.
-There are quite a few fields but you can leave some blank
-For some fields there will be a default value,
-If you enter '.', the field will be left blank.
------
-Country Name (2 letter code) [AU]:EE
-State or Province Name (full name) [Some-State]:
-Locality Name (eg, city) []:Tallinn
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:Noname
-Organizational Unit Name (eg, section) []:
-Common Name (eg, YOUR name) []:Mr Noname
-Email Address []:a@b.c
-
-Please enter the following 'extra' attributes
-to be sent with your certificate request
-A challenge password []:
-An optional company name []:
-Request (and private key) is in newreq.pem
-[root@x153 bin]#
-[root@x153 bin]# ls -la newreq.pem
--rw-r--r-- 1 root root 1623 Jun 24 18:54 newreq.pem
-[root@x153 bin]#
-[root@x153 bin]# ./CA.sh -sign
-Using configuration from /usr/lib/ssl/openssl.cnf
-Enter PEM pass phrase: <- CA's one!
-Check that the request matches the signature
-Signature ok
-The Subjects Distinguished Name is as follows
-countryName :PRINTABLE:'EE'
-stateOrProvinceName :PRINTABLE:'Some-State'
-localityName :PRINTABLE:'Tallinn'
-organizationName :PRINTABLE:'Noname'
-commonName :PRINTABLE:'Mr Noname'
-emailAddress :IA5STRING:'a@b.c'
-Certificate is to be certified until Jun 24 15:50:23 2002 GMT (365 days)
-Sign the certificate? [y/n]:y
-
-
-1 out of 1 certificate requests certified, commit? [y/n]y
-Write out database with 1 new entries
-Data Base Updated
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: md5WithRSAEncryption
- Issuer: C=FI, ST=Some-State, L=Helsinki, O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com
- Validity
- Not Before: Jun 24 15:50:23 2001 GMT
- Not After : Jun 24 15:50:23 2002 GMT
- Subject: C=EE, ST=Some-State, L=Tallinn, O=Noname, CN=Mr Noname/Email=a@b.c
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public Key: (1024 bit)
- Modulus (1024 bit):
- 00:ab:3b:7d:5b:6c:93:f6:46:1a:2c:46:73:6f:89:
- 8a:99:bb:e9:6b:94:0d:74:aa:aa:c4:5c:a2:61:cf:
- 56:bb:a1:a9:5a:37:c4:4e:b2:ec:5c:18:3a:a4:8d:
- af:3d:23:66:7c:85:7f:d1:f2:e3:fc:16:a7:4c:a2:
- d6:45:06:92:75:d8:a2:3b:f9:aa:77:da:26:b9:87:
- e0:df:50:54:e4:36:9f:35:87:39:8e:a6:7c:3e:a8:
- e4:49:1a:76:c2:6f:73:0b:22:93:2a:04:67:0d:7d:
- ae:34:5c:fe:7c:29:b8:a2:fe:1e:ef:d1:0c:4d:dd:
- 5b:7a:67:b0:0a:22:88:a0:af
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Comment:
- OpenSSL Generated Certificate
- X509v3 Subject Key Identifier:
- 83:D1:0D:52:0F:DE:61:2D:A6:10:20:B8:46:0C:77:D5:D2:D0:BE:20
- X509v3 Authority Key Identifier:
- keyid:A5:0A:D6:72:B5:DF:E4:C2:2B:7B:07:5E:D3:4D:52:07:E1:83:6B:7F
- DirName:/C=FI/ST=Some-State/L=Helsinki/O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@mysql.com
- serial:00
-
- Signature Algorithm: md5WithRSAEncryption
- 60:85:f7:d0:54:2a:67:88:0e:37:a6:a8:8e:fd:a0:c9:a1:d7:
- c6:fc:4c:2e:59:8d:88:6d:69:0a:b8:b2:67:5f:81:94:39:0e:
- ab:67:fc:8b:62:de:85:f6:b3:8c:2d:1a:e3:dc:28:fc:f5:99:
- 39:f0:3d:50:ca:88:c0:8e:f8:c2:02:5d:34:19:63:9f:c4:a2:
- f6:a8:81:c9:8d:6d:bd:c4:42:4a:0c:49:5a:cc:24:ea:65:80:
- dd:79:20:89:9e:ea:6b:80:7a:86:f9:bb:6d:24:3c:80:13:5b:
- e6:16:fc:3d:8d:f6:16:ea:33:25:c6:90:20:81:a4:b0:15:2e:
- 9c:1c
------BEGIN CERTIFICATE-----
-MIIDfjCCAuegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCRkkx
-EzARBgNVBAgTClNvbWUtU3RhdGUxETAPBgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQK
-ExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqG
-SIb3DQEJARYOdG9udUBteXNxbC5jb20wHhcNMDEwNjI0MTU1MDIzWhcNMDIwNjI0
-MTU1MDIzWjBvMQswCQYDVQQGEwJFRTETMBEGA1UECBMKU29tZS1TdGF0ZTEQMA4G
-A1UEBxMHVGFsbGlubjEPMA0GA1UEChMGTm9uYW1lMRIwEAYDVQQDEwlNciBOb25h
-bWUxFDASBgkqhkiG9w0BCQEWBWFAYi5jMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCrO31bbJP2RhosRnNviYqZu+lrlA10qqrEXKJhz1a7oalaN8ROsuxcGDqk
-ja89I2Z8hX/R8uP8FqdMotZFBpJ12KI7+ap32ia5h+DfUFTkNp81hzmOpnw+qORJ
-GnbCb3MLIpMqBGcNfa40XP58Kbii/h7v0QxN3Vt6Z7AKIoigrwIDAQABo4IBETCC
-AQ0wCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
-Q2VydGlmaWNhdGUwHQYDVR0OBBYEFIPRDVIP3mEtphAguEYMd9XS0L4gMIGyBgNV
-HSMEgaowgaeAFKUK1nK13+TCK3sHXtNNUgfhg2t/oYGLpIGIMIGFMQswCQYDVQQG
-EwJGSTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMISGVsc2lua2kxGTAX
-BgNVBAoTEE15U1FMIEZpbmxhbmQgQUIxFDASBgNVBAMTC1RvbnUgU2FtdWVsMR0w
-GwYJKoZIhvcNAQkBFg50b251QG15c3FsLmNvbYIBADANBgkqhkiG9w0BAQQFAAOB
-gQBghffQVCpniA43pqiO/aDJodfG/EwuWY2IbWkKuLJnX4GUOQ6rZ/yLYt6F9rOM
-LRrj3Cj89Zk58D1QyojAjvjCAl00GWOfxKL2qIHJjW29xEJKDElazCTqZYDdeSCJ
-nuprgHqG+bttJDyAE1vmFvw9jfYW6jMlxpAggaSwFS6cHA==
------END CERTIFICATE-----
-Signed certificate is in newcert.pem
-[root@x153 bin]# ls -la demoCA/newcerts/
-total 5
-drwxr-xr-x 2 root root 72 Jun 24 18:58 ./
-drwxr-xr-x 6 root root 296 Jun 24 18:58 ../
--rw-r--r-- 1 root root 3533 Jun 24 18:58 01.pem
-[root@x153 bin]#
-[root@x153 mysql-4.0]# ./sql/mysqld --ssl-cert=SSL/server-cert.pem --ssl-ca=SSL/cacert.pem --ssl-ke
-y=SSL/server-req.pem -L /home/tonu/mysql-4.0/sql/share/english/ -u root
-Enter PEM pass phrase:
-./sql/mysqld: ready for connections
-[tonu@x153 mysql-4.0]$ client/mysql --ssl-key=SSL/client-req.pem --ssl-ca=SSL/cacert.pem --ssl-cert
-=SSL/client-cert.pem
-Enter PEM pass phrase:
-ERROR:
-
-[tonu@x153 mysql-4.0]$
-
-
-
-
--8<------------------------
-SSL encrypts data between MySQL server and client.
-
-You need openssl (formerly SSLeay) for MySQL SSL support. Development
-and testing was done on openssl version 0.9.3a
-
-To compile MySQL one must do:
-./configure --with-openssl=/usr
-
-or
-
-./configure --with-openssl=yes
-
-There are sample keys and certificates included with MySQL tarball in
-directory ./SSL. They are meant to be for quick start and
-testing only. Using them in production environment means same as not
-using encryption. This is because private keys are publicly
-accessible for everyone. You must use openssl distribution for new key
-and certificate generation for both client and server.
-
------------ for manual: ---------------------
-*New API calls:*
-
-mysql_ssl_set() - Set SSL properties (key, certificate,
-certificates authority certificate). Must be called before
-mysql_real_connect();
-mysql_ssl_clear() - Clear and free resources occupied by
-mysql_ssl_set() API call.
-char *mysql_ssl_cipher(MYSQL *) - returns cipher in use. For example
-"DES-CDC3-SHA" means that you have combined triple DES symmetric
-algorithm and SHA
-hashing algorithm.
-
-
-*New command line switches:*
---ssl Use SSL for connection (automatically set with
-other flags. This means one can use encrypted connection without strong
-cryptological authentication. Normally one must use all switches
-together including ssl-key, ssl-cert and ssl-ca and never mind about
---ssl because this is assumed by defult if any of them (--ssl-...)
-included.
---ssl-key X509 key in PEM format (implies --ssl)
---ssl-cert X509 cert in PEM format (implies --ssl)
---ssl-ca CA file in PEM format (check OpenSSL docs,
-implies --ssl)
---ssl-capath CA directory (check OpenSSL docs, implies --ssl
- ----------------
- This is about using SSL in MySQL privilege system. My idea is to make
- possible use of x509 certificates and keys instead of MySQL native
- passwords
-Some basic theory about crypt, SSL and x509:
-x509 is standard for certificates. SSL is standard for secure
-communication. Certificates are issued by someone anyone can trust. This
-trusted party is called "Certificate Authority" or "CA". This is
-someone, we MUST trust. Everyone must have some "fingerprint" of CA (so
-called "CA certificate" or "CA cert") using which one can verify
-authenticity of other
-certificates issued by this CA. CA uses his power to give certificates
-to persons (they can be physical (like "monty") or logical (like some
-process). Person is identified by "subject" like
-"/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client bogus certificate/CN=Tonu
-Samuel/Email=". and signed cryptologically. This sign can be
-verified using CA-cert. So, if we trust CA, then we can trust identity
-of user.
-There can be many CA-s (usually not but who knows). Also there can be
-some users we don`t trust or have different privileges. This means we
-must have one table to hold CA-certs and other table to hold so called
-"subjects" (users). I think it`s a good idea to use existing structure
-of host/user/db/field and add some x509 relationship. Then we can
-use usual simple user/host pair or x509 subject/CA pair.
-So I think user must grant rights using old method GRANT blabla ON
-blabla TO blabla IDENTIFIED BY blabla
-or new way:
------------8<---------------------------
-GRANT blabla ON blabla TO blabla
-IDENTIFIED BY X509 SUBJECT "/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client
-bogus certificate/CN=Tonu Samuel/Email=" AND ISSUER
-"/C=EE/ST=Harjumaa/L=Tallinn/O=TCX AB/CN=Tonu
-Samuel/Email=";
------------8<---------------------------
-Please note the difference in Subject and Issuer. This command requests
-user to authenticate itself with exact subject and exact certificate
-issuer. Next possibility is just have any certificate of some good CA:
------------8<---------------------------
-GRANT blabla ON blabla TO blabla IDENTIFIED BY X509 ISSUER
-"/C=EE/ST=Harjumaa/L=Tallinn/O=TCX
-AB/CN=Tonu Samuel/Email=";
------------8<---------------------------
-or if any registered CA is good enough (usual case when only one CA is
-registered)
-but we care about exact user, then something like:
------------8<---------------------------
-GRANT blabla ON blabla TO blabla IDENTIFIED BY X509 SUBJECT
-"/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client
-bogus certificate/CN=Tonu Samuel/Email=";
------------8<---------------------------
-And case if user must authenticate itself but we don`t care about exact
-person until he have some certificate issued by CA registered in our
-system:
------------8<---------------------------
-GRANT blabla ON blabla TO blabla IDENTIFIED BY X509;
------------8<---------------------------
-Then additionally we need one exception. Let`s assume we need SSL
-encryption
-for preventing eavesdropping but we don`t care who it is at all. We need
-privilege to exclude all non-SSL users but we accept anyone using SSL.
-How
-this must be done in GRANT syntax? Maybe:
------------8<---------------------------
-GRANT blabla ON blabla TO blabla
-IDENTIFIED BY blabla AND USING SSL
------------8<---------------------------
-But maybe we want to add in future possibility to check different
-algorithms and key lengths? Something like:
------------8<---------------------------
-GRANT blabla ON blabla TO blabla IDENTIFIED BY blabla AND USING SSL WITH
-CIPHER "DES-CBC3-SHA" OR "DES-CBC3-MD5"
------------8<---------------------------
-Also we need some command to include/exclude CA certificates. This must
-be some commands like INSERT/DELETE/UPDATE/REPLACE to do it.
-All examples is given for clarify my problem. I asking for help because
-I don`t know
-any similar command in other SQL-s.
-------------8<------------------------
-
-So, at moment SSL communications is ready and working. I don`t have this
-command iterface at moment yet and this can be changed a lot if someone
-can suggest good idea or reason to change them. We are ready to listen
-every opinion.
-About Kerberos: I just don`t know much about it. I have to read this
-again before I can comment. I never used it itself and forgot most of
-theory. Sorry. Anyway now the problem/need is known and I will put
-thinking about this in personal TODO.
-
-
diff --git a/SSL/client-req.pem b/SSL/client-req.pem
deleted file mode 100644
index b3667fb5ec6..00000000000
--- a/SSL/client-req.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
-BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBDbGllbnQxMTAvBgkqhkiG
-9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAMQDCu7jsRL87rQZ9OFgHeAow5Yt34JpzXR8
-VFjQrrNZPwwZHJkQphLJzzpkBUOOv9JlNoCRC2WwJyY4ySPYNqJK8PfAL2g4cAEn
-Kf+yxVLha/HI18Nc7vA3bCqblhoFnuszojlad2ZiJ3UfL2842uWfeK/KayI/Vyu8
-po9H0ZlvAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQAnKdk68dGJXvlj/GXwBUWN
-oXWF7hq4fDmwyhmcFUqk8qZKPKFUxkcER0GLzYeUgvD2URSfaS3/YW0d7K7kXGwP
-rB5edb+suaYf6mjm/w37xw/EJI9rdSKcB/3SSu8mALds7sUHDAO+MO0WkA/9d7t0
-LOsUqcDvMkKpZuYwNILwLw==
------END CERTIFICATE REQUEST-----
diff --git a/SSL/run-client b/SSL/run-client
deleted file mode 100755
index f3b29eb273b..00000000000
--- a/SSL/run-client
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh
-
-cmd () {
- echo $*
- $*
-}
-
-client/mysql --port=4407 --socket=/tmp/test.mysql.sock --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/client-cert.pem --ssl-key=SSL/client-key.pem --debug='d:t:O,/tmp/client.trace' -h 127.0.0.1 -u root
-#--execute="select version();show status"
-
diff --git a/SSL/run-server b/SSL/run-server
deleted file mode 100755
index e90a7644b83..00000000000
--- a/SSL/run-server
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-
-cmd () {
- echo $*
- $*
-}
-
-cmd sql/mysqld --port=4407 --socket=/tmp/test.mysql.sock --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --debug='d:t:O,/tmp/mysqld.trace' -uroot >& /tmp/mysqld.output
-
diff --git a/SSL/server-req.pem b/SSL/server-req.pem
deleted file mode 100644
index 7c3db0660ad..00000000000
--- a/SSL/server-req.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
-BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBTZXJ2ZXIxMTAvBgkqhkiG
-9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAOmGelWEiEy+pPiSczASSQt6hYc5NDkNfQuN
-GMIXlRNS0j9VEFfIP1r1svqL0GdJzKqC/J/OALRz8zbSOtPCsA4Uw9SyIXSh8DGB
-YIeYc1wQwbEaTfHzsJg/8NeXmyv91SF5si/rZBXJm538ni3U+ARb6ql1S0LDPQ5N
-Kqi4ypmNAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQCagJxGHBC+G5aSh3OguFn6
-z+qAC7u3B181kPBgNv20zMgLeq7YiAh3iNx4XO2+QXRGzMznFKx1tFr/mavCpgLs
-p3+dCvQt5FHEFFK1D1pDeXy4146X07hOTtC9jc/jSWeVnH4ujuX5gMtZqisOyYWV
-/gpw6dBtkTYlhS+y86kM/Q==
------END CERTIFICATE REQUEST-----
diff --git a/VC++Files/client/mysql_upgrade.dsp b/VC++Files/client/mysql_upgrade.dsp
new file mode 100644
index 00000000000..a039098d639
--- /dev/null
+++ b/VC++Files/client/mysql_upgrade.dsp
@@ -0,0 +1,71 @@
+# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=mysql_upgrade - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade.mak" CFG="mysql_upgrade - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "mysql_upgrade - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "mysql_upgrade___Win32_Release"
+# PROP BASE Intermediate_Dir "mysql_upgrade___Win32_Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "mysql_upgrade___Win32_Release"
+# PROP Intermediate_Dir "mysql_upgrade___Win32_Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /Fp"Release/mysql_upgrade.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+# ADD BASE RSC /l 0x416 /d "NDEBUG"
+# ADD RSC /l 0x416 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib /nologo /subsystem:console /pdb:"release/mysql_upgrade.pdb" /machine:I386 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\"
+# SUBTRACT LINK32 /pdb:none
+# Begin Target
+
+# Name "mysql_upgrade - Win32 Release"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\mysql_upgrade.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/VC++Files/client/mysql_upgrade_ia64.dsp b/VC++Files/client/mysql_upgrade_ia64.dsp
new file mode 100644
index 00000000000..a116f3f06c3
--- /dev/null
+++ b/VC++Files/client/mysql_upgrade_ia64.dsp
@@ -0,0 +1,77 @@
+# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=mysql_upgrade - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "mysql_upgrade.mak" CFG="mysql_upgrade - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "mysql_upgrade - WinIA64 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "mysql - WinIA64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "mysql_upgrade___WinIA64_Release"
+# PROP BASE Intermediate_Dir "mysql_upgrade___WinIA64_Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "mysql_upgrade___WinIA64_Release"
+# PROP Intermediate_Dir "mysql_upgrade___WinIA64_Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /I "../include" /D"NDEBUG" /D"DBUG_OFF" /D"_CONSOLE" /D"_MBCS" /D"_WINDOWS" /Fp"Release/mysql_upgrade.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c /O2 /G2 /EHsc /D"_IA64_" /Zi /D"WIN64" /D"WIN32" /D"_AFX_NO_DAO_SUPPORT" /Wp64 /Zm600
+# ADD BASE RSC /l 0x416 /d "NDEBUG"
+# ADD RSC /l 0x416 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IA64
+# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib /nologo /subsystem:console /pdb:"release/mysql_upgrade.pdb" /machine:IA64 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\" /incremental:no
+# SUBTRACT LINK32
+
+!ENDIF
+
+# Begin Target
+
+# Name "mysql_upgrade - WinIA64 Release"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\mysql_upgrade.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/VC++Files/copy_mysql_files.bat b/VC++Files/copy_mysql_files.bat
index 2857fabc312..172075e0adf 100644
--- a/VC++Files/copy_mysql_files.bat
+++ b/VC++Files/copy_mysql_files.bat
@@ -71,7 +71,6 @@ REM Copy share, docs etc
xcopy share\*.* c:\mysql\share /E /Y
xcopy scripts\*.* c:\mysql\scripts /E /Y
xcopy docs\*.* c:\mysql\docs /E /Y
-xcopy sql-bench\*.* c:\mysql\bench /E /Y
copy docs\readme c:\mysql\
REM Copy privilege tables (Delete old ones as they may be from a newer version)
diff --git a/VC++Files/libmysqld/libmysqld.vcproj b/VC++Files/libmysqld/libmysqld.vcproj
index a8410ee958f..e2bdbce0cf4 100644
--- a/VC++Files/libmysqld/libmysqld.vcproj
+++ b/VC++Files/libmysqld/libmysqld.vcproj
@@ -21,7 +21,7 @@
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=mysql_test_run_new - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mysql_test_run_new.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mysql_test_run_new.mak" CFG="mysql_test_run_new - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mysql_test_run_new - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "mysql_test_run_new - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mysql_test_run_new - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\Debug"
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\Debug/mysql_test_run_new.pch" /Fo".\Debug/" /Fd".\Debug/" /GZ /FD /c /GX
-# ADD CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\Debug/mysql_test_run_new.pch" /Fo".\Debug/" /Fd".\Debug/" /GZ /FD /c /GX
-# ADD BASE MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /win32
-# ADD MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /win32
-# ADD BASE RSC /l 1033
-# ADD RSC /l 1033
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:yes /debug /pdb:".\Debug\mysql_test_run_new.pdb" /pdbtype:sept /map:".\Debug\mysql_test_run_new.map" /subsystem:console
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_test_run_new.pdb" /pdbtype:sept /map:".\Debug\mysql_test_run_new.map" /subsystem:console
-
-!ELSEIF "$(CFG)" == "mysql_test_run_new - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\Release"
-# PROP Intermediate_Dir ".\Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_test_run_new.pch" /Fo".\Release/" /Fd".\Release/" /FD /c /GX
-# ADD CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_test_run_new.pch" /Fo".\Release/" /Fd".\Release/" /FD /c /GX
-# ADD BASE MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /win32
-# ADD MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /win32
-# ADD BASE RSC /l 1033
-# ADD RSC /l 1033
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console
-
-!ENDIF
-
-# Begin Target
-
-# Name "mysql_test_run_new - Win32 Debug"
-# Name "mysql_test_run_new - Win32 Release"
-# Begin Source File
-
-SOURCE=.\my_create_tables.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\my_manage.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\my_manage.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mysql_test_run_new.c
-# End Source File
-# End Target
-# End Project
-
diff --git a/VC++Files/mysql-test/mysql_test_run_new.vcproj b/VC++Files/mysql-test/mysql_test_run_new.vcproj
deleted file mode 100644
index 12d502e5768..00000000000
--- a/VC++Files/mysql-test/mysql_test_run_new.vcproj
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/VC++Files/mysql-test/mysql_test_run_new_ia64.dsp b/VC++Files/mysql-test/mysql_test_run_new_ia64.dsp
deleted file mode 100644
index 023b38bd3c6..00000000000
--- a/VC++Files/mysql-test/mysql_test_run_new_ia64.dsp
+++ /dev/null
@@ -1,142 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mysql_test_run_new" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=mysql_test_run_new - WinIA64 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mysql_test_run_new_ia64.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mysql_test_run_new_ia64.mak" CFG="mysql_test_run_new - WinIA64 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mysql_test_run_new - WinIA64 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "mysql_test_run_new - WinIA64 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mysql_test_run_new - WinIA64 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\Debug"
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /WinIA64
-# ADD MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /WinIA64
-# ADD BASE CPP /nologo /G6 /MTd /W3 /GX /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /GZ /c
-# ADD CPP /nologo /MTd /W3 /Zi /Od /I "../include" /I "../" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /GZ /G2 /EHsc /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /map /debug /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /incremental:no /libpath:"..\lib_debug\" /map /debug /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "mysql_test_run_new - WinIA64 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\Release"
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /WinIA64
-# ADD MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /WinIA64
-# ADD BASE CPP /nologo /G6 /MTd /W3 /GX /Ob1 /Gy /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /GF /c
-# ADD CPP /nologo /MTd /W3 /Zi /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /GF /G2 /EHsc /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 t kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /libpath:"..\lib_release\" /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "mysql_test_run_new - WinIA64 Debug"
-# Name "mysql_test_run_new - WinIA64 Release"
-# Begin Source File
-
-SOURCE=.\my_create_tables.c
-DEP_CPP_MY_CR=\
- "..\include\config-netware.h"\
- "..\include\config-os2.h"\
- "..\include\config-win.h"\
- "..\include\m_string.h"\
- "..\include\my_config.h"\
- "..\include\my_dbug.h"\
- "..\include\my_global.h"\
- ".\my_manage.h"\
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\my_manage.c
-DEP_CPP_MY_MA=\
- "..\include\config-netware.h"\
- "..\include\config-os2.h"\
- "..\include\config-win.h"\
- "..\include\m_string.h"\
- "..\include\my_config.h"\
- "..\include\my_dbug.h"\
- "..\include\my_global.h"\
- ".\my_manage.h"\
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\my_manage.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mysql_test_run_new.c
-DEP_CPP_MYSQL=\
- "..\include\config-netware.h"\
- "..\include\config-os2.h"\
- "..\include\config-win.h"\
- "..\include\m_string.h"\
- "..\include\my_config.h"\
- "..\include\my_dbug.h"\
- "..\include\my_global.h"\
- ".\my_manage.h"\
-
-# End Source File
-# End Target
-# End Project
diff --git a/VC++Files/mysql.dsw b/VC++Files/mysql.dsw
index 36e3e1ae10c..dd70ad630a1 100644
--- a/VC++Files/mysql.dsw
+++ b/VC++Files/mysql.dsw
@@ -339,6 +339,27 @@ Package=<4>
###############################################################################
+Project: "mysql_upgrade"=".\client\mysql_upgrade.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name mysqlclient
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name zlib
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name mysys
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "mysqlbinlog"=".\mysqlbinlog\mysqlbinlog.dsp" - Package Owner=<4>
Package=<5>
@@ -415,6 +436,8 @@ Package=<4>
End Project Dependency
Begin Project Dependency
Project_Dep_Name mysqladmin
+ Begin Project Dependency
+ Project_Dep_Name myqsl_upgrade
End Project Dependency
Begin Project Dependency
Project_Dep_Name mysqldump
@@ -787,27 +810,6 @@ Project: "mysql_client_test"=.\tests\mysql_client_test.dsp - Package Owner=<4>
{{{
}}}
-
###############################################################################
-
-
-Project: "mysql_test_run_new"=".\mysql-test\mysql_test_run_new.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
Begin Project Dependency
- Project_Dep_Name mysqltest
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name mysqladmin
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name mysql_client_test
- End Project Dependency
-}}}
-
###############################################################################
diff --git a/VC++Files/mysql.sln b/VC++Files/mysql.sln
index f4204b00bc4..344aaa38507 100644
--- a/VC++Files/mysql.sln
+++ b/VC++Files/mysql.sln
@@ -251,13 +251,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_client_test", "tests\
{26383276-4843-494B-8BE0-8936ED3EBAAB} = {26383276-4843-494B-8BE0-8936ED3EBAAB}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_test_run_new", "mysql-test\mysql_test_run_new.vcproj", "{6189F838-21C6-42A1-B2D0-9146316573F7}"
- ProjectSection(ProjectDependencies) = postProject
- {8961F149-C68A-4154-A499-A2AB39E607E8} = {8961F149-C68A-4154-A499-A2AB39E607E8}
- {DA224DAB-5006-42BE-BB77-16E8BE5326D5} = {DA224DAB-5006-42BE-BB77-16E8BE5326D5}
- {D2B00DE0-F6E9-40AF-B90D-A257D014F098} = {D2B00DE0-F6E9-40AF-B90D-A257D014F098}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlmanager", "server-tools\instance-manager\mysqlmanager.vcproj", "{6D524B3E-210A-4FCD-8D41-FEC0D21E83AC}"
ProjectSection(ProjectDependencies) = postProject
{EEC1300B-85A5-497C-B3E1-F708021DF859} = {EEC1300B-85A5-497C-B3E1-F708021DF859}
diff --git a/VC++Files/mysql_ia64.dsw b/VC++Files/mysql_ia64.dsw
index 1e441107c93..96878cd3651 100644
--- a/VC++Files/mysql_ia64.dsw
+++ b/VC++Files/mysql_ia64.dsw
@@ -436,6 +436,24 @@ Package=<4>
###############################################################################
+Project: "mysql_upgrade"=".\client\mysql_upgrade_ia64.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name mysqlclient
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name zlib
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "mysqlbinlog"=".\mysqlbinlog\mysqlbinlog_ia64.dsp" - Package Owner=<4>
Package=<5>
@@ -500,6 +518,8 @@ Package=<4>
End Project Dependency
Begin Project Dependency
Project_Dep_Name mysqladmin_ia64
+ Begin Project Dependency
+ Project_Dep_Name mysql_upgrade_ia64
End Project Dependency
Begin Project Dependency
Project_Dep_Name mysqldump
diff --git a/VC++Files/sql/mysqld.vcproj b/VC++Files/sql/mysqld.vcproj
index 641e1f8e8f4..444eb7a18e0 100644
--- a/VC++Files/sql/mysqld.vcproj
+++ b/VC++Files/sql/mysqld.vcproj
@@ -23,7 +23,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
+ AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
PreprocessorDefinitions="__NT__;DBUG_OFF;NDEBUG;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;LICENSE=Commercial;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -84,7 +84,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib"
+ AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib,."
PreprocessorDefinitions="NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_BERKELEY_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_BERKELEY_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -144,7 +144,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib"
+ AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib,."
PreprocessorDefinitions="__NT__;NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_BERKELEY_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_BERKELEY_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -207,7 +207,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
+ AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
PreprocessorDefinitions="__NT__;NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -270,7 +270,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
+ AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
PreprocessorDefinitions="__NT__;DBUG_OFF;NDEBUG;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;MYSQL_SERVER;LICENSE=Commercial;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -330,7 +330,7 @@
Name="VCCLCompilerTool"
Optimization="0"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib"
+ AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib,."
PreprocessorDefinitions="_DEBUG;SAFEMALLOC;SAFE_MUTEX;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\debug/mysqld.pch"
@@ -391,7 +391,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
+ AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
PreprocessorDefinitions="MYSQL_SERVER;LICENSE=Commercial;HAVE_DLOPEN;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;DBUG_OFF;NDEBUG;_WINDOWS;_CONSOLE;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -452,7 +452,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
+ AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
PreprocessorDefinitions="LICENSE=Commercial;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;DBUG_OFF;NDEBUG;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
@@ -513,7 +513,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="2"
- AdditionalIncludeDirectories="../zlib,../include,../regex,../extra/yassl/include"
+ AdditionalIncludeDirectories="../zlib,../include,../regex,../extra/yassl/include,."
PreprocessorDefinitions="NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
StringPooling="TRUE"
RuntimeLibrary="0"
diff --git a/client/Makefile.am b/client/Makefile.am
index 970ca744146..0531d741764 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -38,8 +38,7 @@ LDADD= @CLIENT_EXTRA_LDFLAGS@ $(CLIENT_THREAD_LIBS) \
$(top_builddir)/libmysql/libmysqlclient.la
bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
mysqldump mysqlimport mysqltest mysqlbinlog \
- mysqltestmanagerc mysqltestmanager-pwgen \
- mysqlslap
+ mysqlslap mysql_upgrade
noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
client_priv.h
mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc
@@ -63,8 +62,6 @@ mysqlimport_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \
@CLIENT_EXTRA_LDFLAGS@ \
$(LIBMYSQLCLIENT_LA) \
$(top_builddir)/mysys/libmysys.a
-mysqltestmanager_pwgen_SOURCES = mysqlmanager-pwgen.c
-mysqltestmanagerc_SOURCES= mysqlmanagerc.c $(yassl_dummy_link_fix)
mysqlcheck_SOURCES= mysqlcheck.c $(yassl_dummy_link_fix)
mysqlshow_SOURCES= mysqlshow.c $(yassl_dummy_link_fix)
mysqlslap_SOURCES= mysqlslap.c \
@@ -72,11 +69,14 @@ mysqlslap_SOURCES= mysqlslap.c \
mysqldump_SOURCES= mysqldump.c my_user.c $(yassl_dummy_link_fix)
mysqlimport_SOURCES= mysqlimport.c \
$(yassl_dummy_link_fix)
+mysql_upgrade_SOURCES= mysql_upgrade.c $(yassl_dummy_link_fix)
sql_src=log_event.h mysql_priv.h log_event.cc my_decimal.h my_decimal.cc
strings_src=decimal.c
# Fix for mit-threads
-DEFS = -DUNDEF_THREADS_HACK
+DEFS = -DUNDEF_THREADS_HACK \
+ -DDEFAULT_MYSQL_HOME="\"$(prefix)\"" \
+ -DDATADIR="\"$(localstatedir)\""
EXTRA_DIST = get_password.c cmakelists.txt
link_sources:
diff --git a/client/client_priv.h b/client/client_priv.h
index a80701ba6c9..625fbf24fa6 100644
--- a/client/client_priv.h
+++ b/client/client_priv.h
@@ -24,8 +24,6 @@
#include
#include
-/* We have to define 'enum options' identical in all files to keep OS2 happy */
-
enum options_client
{
OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
diff --git a/client/mysql.cc b/client/mysql.cc
index 2001056dea1..900bdec067a 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -81,7 +81,7 @@ extern "C" {
#endif
#undef bcmp // Fix problem with new readline
-#if defined( __WIN__) || defined(OS2)
+#if defined( __WIN__)
#include
#elif !defined(__NETWARE__)
#include
@@ -101,7 +101,7 @@ extern "C" {
#define cmp_database(cs,A,B) strcmp((A),(B))
#endif
-#if !defined( __WIN__) && !defined( OS2) && !defined(__NETWARE__) && (!defined(HAVE_mit_thread) || !defined(THREAD))
+#if !defined( __WIN__) && !defined(__NETWARE__) && !defined(THREAD)
#define USE_POPEN
#endif
@@ -185,7 +185,7 @@ void tee_fprintf(FILE *file, const char *fmt, ...);
void tee_fputs(const char *s, FILE *file);
void tee_puts(const char *s, FILE *file);
void tee_putc(int c, FILE *file);
-static void tee_print_sized_data(const char *data, unsigned int length, unsigned int width);
+static void tee_print_sized_data(const char *, unsigned int, unsigned int, bool);
/* The names of functions that actually do the manipulation. */
static int get_options(int argc,char **argv);
static int com_quit(String *str,char*),
@@ -653,7 +653,7 @@ static struct my_option my_long_options[] =
"Base name of shared memory.", (gptr*) &shared_memory_base_name, (gptr*) &shared_memory_base_name,
0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"socket", 'S', "Socket file to use for connection. (This will override --port unless --protocol=TCP is specified.)",
+ {"socket", 'S', "Socket file to use for connection.",
(gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR_ALLOC,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#include "sslopt-longopts.h"
@@ -939,14 +939,7 @@ static int get_options(int argc, char **argv)
opt_reconnect= 0;
connect_flag= 0; /* Not in interactive mode */
}
-
- if (opt_mysql_port && (!opt_protocol) && (!opt_mysql_unix_port))
- {
- /* Not checking return type since we are using a constant value */
- /* straight from the initialization of sql_protocol_typelib. */
- opt_protocol= find_type("TCP", &sql_protocol_typelib, 0);
- }
-
+
if (strcmp(default_charset, charset_info->csname) &&
!(charset_info= get_charset_by_csname(default_charset,
MY_CS_PRIMARY, MYF(MY_WME))))
@@ -969,7 +962,7 @@ static int get_options(int argc, char **argv)
static int read_and_execute(bool interactive)
{
-#if defined(OS2) || defined(__NETWARE__)
+#if defined(__NETWARE__)
char linebuffer[254];
String buffer;
#endif
@@ -1006,7 +999,7 @@ static int read_and_execute(bool interactive)
if (opt_outfile && glob_buffer.is_empty())
fflush(OUTFILE);
-#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
+#if defined( __WIN__) || defined(__NETWARE__)
tee_fputs(prompt, stdout);
#if defined(__NETWARE__)
line=fgets(linebuffer, sizeof(linebuffer)-1, stdin);
@@ -1017,7 +1010,7 @@ static int read_and_execute(bool interactive)
if (p != NULL)
*p = '\0';
}
-#elif defined(__WIN__)
+#else defined(__WIN__)
if (!tmpbuf.is_alloced())
tmpbuf.alloc(65535);
tmpbuf.length(0);
@@ -1033,32 +1026,12 @@ static int read_and_execute(bool interactive)
*/
} while (tmpbuf.alloced_length() <= clen);
line= buffer.c_ptr();
-#else /* OS2 */
- buffer.length(0);
- /* _cgets() expects the buffer size - 3 as the first byte */
- linebuffer[0]= (char) sizeof(linebuffer) - 3;
- do
- {
- line= _cgets(linebuffer);
- buffer.append(line, (unsigned char)linebuffer[1]);
- /*
- If _cgets() gets an input line that is linebuffer[0] bytes
- long, the next call to _cgets() will return immediately with
- linebuffer[1] == 0, and it does the same thing for input that
- is linebuffer[0]-1 bytes long. So it appears that even though
- _cgets() replaces the newline (which is two bytes on Window) with
- a nil, it still needs the space in the linebuffer for it. This is,
- naturally, undocumented.
- */
- } while ((unsigned char)linebuffer[0] <=
- (unsigned char)linebuffer[1] + 1);
- line= buffer.c_ptr();
#endif /* __NETWARE__ */
#else
if (opt_outfile)
fputs(prompt, OUTFILE);
line= readline(prompt);
-#endif /* defined( __WIN__) || defined(OS2) || defined(__NETWARE__) */
+#endif /* defined( __WIN__) || defined(__NETWARE__) */
/*
When Ctrl+d or Ctrl+z is pressed, the line may be NULL on some OS
@@ -1110,7 +1083,7 @@ static int read_and_execute(bool interactive)
}
}
-#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
+#if defined( __WIN__) || defined(__NETWARE__)
buffer.free();
#endif
#if defined( __WIN__)
@@ -2311,35 +2284,52 @@ print_table_data(MYSQL_RES *result)
while ((cur= mysql_fetch_row(result)))
{
ulong *lengths= mysql_fetch_lengths(result);
- (void) tee_fputs("|", PAGER);
+ (void) tee_fputs("| ", PAGER);
mysql_field_seek(result, 0);
for (uint off= 0; off < mysql_num_fields(result); off++)
{
- const char *str= cur[off] ? cur[off] : "NULL";
- uint currlength;
- uint maxlength;
- uint numcells;
+ const char *buffer;
+ uint data_length;
+ uint field_max_length;
+ bool right_justified;
+ uint visible_length;
+ uint extra_padding;
+
+ if (lengths[off] == 0)
+ {
+ buffer= "NULL";
+ data_length= 4;
+ }
+ else
+ {
+ buffer= cur[off];
+ data_length= (uint) lengths[off];
+ }
field= mysql_fetch_field(result);
- maxlength= field->max_length;
- currlength= (uint) lengths[off];
- numcells= charset_info->cset->numcells(charset_info,
- str, str + currlength);
- if (maxlength > MAX_COLUMN_LENGTH)
- {
- tee_print_sized_data(str, currlength, maxlength);
- tee_fputs(" |", PAGER);
- }
+ field_max_length= field->max_length;
+
+ /*
+ How many text cells on the screen will this string span? If it contains
+ multibyte characters, then the number of characters we occupy on screen
+ will be fewer than the number of bytes we occupy in memory.
+
+ We need to find how much screen real-estate we will occupy to know how
+ many extra padding-characters we should send with the printing function.
+ */
+ visible_length= charset_info->cset->numcells(charset_info, buffer, buffer + data_length);
+ extra_padding= data_length - visible_length;
+
+ if (field_max_length > MAX_COLUMN_LENGTH)
+ tee_print_sized_data(buffer, data_length, MAX_COLUMN_LENGTH+extra_padding, FALSE);
else
{
- if (num_flag[off] != 0)
- tee_fprintf(PAGER, " %-*s|", maxlength + currlength - numcells, str);
+ if (num_flag[off] != 0) /* if it is numeric, we right-justify it */
+ tee_print_sized_data(buffer, data_length, field_max_length+extra_padding, TRUE);
else
- {
- tee_print_sized_data(str, currlength, maxlength);
- tee_fputs(" |", PAGER);
- }
+ tee_print_sized_data(buffer, data_length, field_max_length+extra_padding, FALSE);
}
+ tee_fputs(" | ", PAGER);
}
(void) tee_fputs("\n", PAGER);
}
@@ -2349,10 +2339,9 @@ print_table_data(MYSQL_RES *result)
static void
-tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
+tee_print_sized_data(const char *data, unsigned int data_length, unsigned int total_bytes_to_send, bool right_justified)
{
/*
- It is not a number, so print each character justified to the left.
For '\0's print ASCII spaces instead, as '\0' is eaten by (at
least my) console driver, and that messes up the pretty table
grid. (The \0 is also the reason we can't use fprintf() .)
@@ -2360,9 +2349,14 @@ tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
unsigned int i;
const char *p;
- tee_putc(' ', PAGER);
+ total_bytes_to_send -= 1;
+ /* Off by one, perhaps mistakenly accounting for a terminating NUL. */
- for (i= 0, p= data; i < length; i+= 1, p+= 1)
+ if (right_justified)
+ for (i= 0; i < (total_bytes_to_send - data_length); i++)
+ tee_putc((int)' ', PAGER);
+
+ for (i= 0, p= data; i < data_length; i+= 1, p+= 1)
{
if (*p == '\0')
tee_putc((int)' ', PAGER);
@@ -2370,9 +2364,9 @@ tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
tee_putc((int)*p, PAGER);
}
- i+= 1;
- for ( ; i < width; i+= 1)
- tee_putc((int)' ', PAGER);
+ if (! right_justified)
+ for (i= 0; i < (total_bytes_to_send - data_length); i++)
+ tee_putc((int)' ', PAGER);
}
@@ -3212,10 +3206,9 @@ com_status(String *buffer __attribute__((unused)),
mysql_free_result(result);
}
#ifdef HAVE_OPENSSL
- if (mysql.net.vio && mysql.net.vio->ssl_arg &&
- SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg))
+ if ((status= mysql_get_ssl_cipher(&mysql)))
tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n",
- SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg));
+ status);
else
#endif /* HAVE_OPENSSL */
tee_puts("SSL:\t\t\tNot in use", stdout);
@@ -3361,7 +3354,7 @@ put_info(const char *str,INFO_TYPE info_type, uint error, const char *sqlstate)
if (info_type == INFO_ERROR)
{
if (!opt_nobeep)
- putchar('\007'); /* This should make a bell */
+ putchar('\a'); /* This should make a bell */
vidattr(A_STANDOUT);
if (error)
{
@@ -3409,9 +3402,6 @@ void tee_fprintf(FILE *file, const char *fmt, ...)
NETWARE_YIELD;
va_start(args, fmt);
(void) vfprintf(file, fmt, args);
-#ifdef OS2
- fflush( file);
-#endif
va_end(args);
if (opt_outfile)
@@ -3427,9 +3417,6 @@ void tee_fputs(const char *s, FILE *file)
{
NETWARE_YIELD;
fputs(s, file);
-#ifdef OS2
- fflush( file);
-#endif
if (opt_outfile)
fputs(s, OUTFILE);
}
@@ -3440,9 +3427,6 @@ void tee_puts(const char *s, FILE *file)
NETWARE_YIELD;
fputs(s, file);
fputs("\n", file);
-#ifdef OS2
- fflush( file);
-#endif
if (opt_outfile)
{
fputs(s, OUTFILE);
@@ -3453,14 +3437,11 @@ void tee_puts(const char *s, FILE *file)
void tee_putc(int c, FILE *file)
{
putc(c, file);
-#ifdef OS2
- fflush( file);
-#endif
if (opt_outfile)
putc(c, OUTFILE);
}
-#if defined( __WIN__) || defined( OS2) || defined(__NETWARE__)
+#if defined( __WIN__) || defined(__NETWARE__)
#include
#else
#include
@@ -3472,7 +3453,7 @@ void tee_putc(int c, FILE *file)
static ulong start_timer(void)
{
-#if defined( __WIN__) || defined( OS2) || defined(__NETWARE__)
+#if defined( __WIN__) || defined(__NETWARE__)
return clock();
#else
struct tms tms_tmp;
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
new file mode 100644
index 00000000000..78e4acd4c1d
--- /dev/null
+++ b/client/mysql_upgrade.c
@@ -0,0 +1,400 @@
+/* Copyright (C) 2000 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "client_priv.h"
+#include
+
+static my_bool opt_force= 0, opt_verbose= 0, tty_password= 0;
+static char *user= (char*) "root", *basedir= 0, *datadir= 0, *opt_password= 0;
+static my_bool upgrade_defaults_created= 0;
+static my_string opt_mysql_port, opt_mysql_unix_port= 0;
+static char *default_dbug_option= (char*) "d:t:O,/tmp/comp_err.trace";
+static my_bool info_flag= 0;
+
+static struct my_option my_long_options[]=
+{
+ {"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"basedir", 'b', "Specifies the directory where MySQL is installed",
+ (gptr*) &basedir,
+ (gptr*) &basedir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"datadir", 'd', "Specifies the data directory", (gptr*) &datadir,
+ (gptr*) &datadir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+#ifdef DBUG_OFF
+ {"debug", '#', "This is a non-debug version. Catch this and exit",
+ 0, 0, 0, GET_DISABLED, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#else
+ {"debug", '#', "Output debug log", (gptr *) & default_dbug_option,
+ (gptr *) & default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"debug-info", 'T', "Print some debug info at exit.", (gptr *) & info_flag,
+ (gptr *) & info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"force", 'f', "Continue even if we get an sql-error.",
+ (gptr*) &opt_force, (gptr*) &opt_force, 0, GET_BOOL, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"password", 'p',
+ "Password to use when connecting to server. If password is not given it's solicited on the tty.",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
+ (gptr*) &opt_mysql_port, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"protocol", OPT_MYSQL_PROTOCOL,
+ "The protocol of connection (tcp,socket,pipe,memory).",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"socket", 'S', "Socket file to use for connection.",
+ (gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "User for login if not current user.", (gptr*) &user,
+ (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Display more output about the process", (gptr*) &opt_verbose,
+ (gptr *) &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
+static const char *load_default_groups[]=
+{
+ "mysql_upgrade", "client", 0
+};
+
+#include
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__ ((unused)),
+ char *argument)
+{
+ switch (optid) {
+ case '?':
+ puts
+ ("MySQL utility script to upgrade database to the current server version");
+ puts("");
+ my_print_help(my_long_options);
+ exit(0);
+ case '#':
+ DBUG_PUSH(argument ? argument : default_dbug_option);
+ break;
+ case 'f':
+ opt_force= TRUE;
+ break;
+ case 'p':
+ tty_password= 1;
+ if (argument)
+ {
+ char *start= argument;
+ my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
+ opt_password= my_strdup(argument, MYF(MY_FAE));
+ while (*argument)
+ *argument++= 'x'; /* Destroy argument */
+ if (*start)
+ start[1]= 0; /* Cut length of argument */
+ tty_password= 0;
+ }
+ break;
+ default:;
+ };
+ return 0;
+}
+
+
+/* buffer should be not smaller than FN_REFLEN */
+static my_bool test_file_exists_res(const char *dir, const char *fname,
+ char *buffer, char **buf_end)
+{
+ MY_STAT stat_info;
+
+ *buf_end= strxnmov(buffer, FN_REFLEN-1, dir, "/", fname, NullS);
+ unpack_filename(buffer, buffer);
+ return my_stat(buffer, &stat_info, MYF(0)) != 0;
+}
+
+
+static my_bool test_file_exists(const char *dir, const char *fname)
+{
+ char path[FN_REFLEN];
+ char *path_end;
+ return test_file_exists_res(dir, fname, path, &path_end);
+}
+
+
+static int create_check_file(const char *path)
+{
+ File check_file= my_open(path, O_CREAT | O_WRONLY, MYF(MY_FAE | MY_WME));
+ int error;
+
+ if (check_file < 0)
+ return 1;
+
+ error= my_write(check_file, VERSION, strlen(VERSION), MYF(MY_WME | MY_FNABP));
+ error= my_close(check_file, MYF(MY_FAE | MY_WME)) || error;
+ return error;
+}
+
+
+static int create_defaults_file(const char *path, const char *our_defaults_path)
+{
+ uint b_read;
+ File our_defaults_file, defaults_file;
+ char buffer[512];
+ char *buffer_end;
+ int error;
+
+ /* check if the defaults file is needed at all */
+ if (!opt_password)
+ return 0;
+
+ defaults_file= my_open(path, O_BINARY | O_CREAT | O_WRONLY,
+ MYF(MY_FAE | MY_WME));
+
+ if (defaults_file < 0)
+ return 1;
+ upgrade_defaults_created= 1;
+ if (our_defaults_path)
+ {
+ our_defaults_file= my_open(our_defaults_path, O_RDONLY,
+ MYF(MY_FAE | MY_WME));
+ if (our_defaults_file < 0)
+ return 1;
+ do
+ {
+ if (((b_read= my_read(our_defaults_file, buffer,
+ sizeof(buffer), MYF(MY_WME))) == MY_FILE_ERROR) ||
+ my_write(defaults_file, buffer, b_read, MYF(MY_FNABP | MY_WME)))
+ {
+ error= 1;
+ goto close_return;
+ }
+ } while (b_read == sizeof(buffer));
+ }
+ buffer_end= strnmov(buffer, "\n[client]", sizeof(buffer));
+ if (opt_password)
+ buffer_end= strxnmov(buffer, sizeof(buffer),
+ "\npassword=", opt_password, NullS);
+ error= my_write(defaults_file, buffer, (int) (buffer_end - buffer),
+ MYF(MY_WME | MY_FNABP));
+close_return:
+ return my_close(defaults_file, MYF(MY_WME)) || error;
+}
+
+
+int main(int argc, char **argv)
+{
+ char bindir[FN_REFLEN];
+ char *bindir_end, *buf_end;
+ char datadir_buf[FN_REFLEN];
+ char mysqlcheck_line[FN_REFLEN], *mysqlcheck_end;
+ char check_file_name[FN_REFLEN];
+ int check_file;
+ char fix_priv_tables_cmd[FN_REFLEN], *fix_cmd_end;
+ char script_line[FN_REFLEN];
+ int error;
+ char *forced_defaults_file;
+ char *forced_extra_defaults;
+ char *defaults_group_suffix;
+ char upgrade_defaults_path[FN_REFLEN], *defaults_to_use= 0;
+ char port_socket[100], *port_socket_end;
+
+ MY_INIT(argv[0]);
+#ifdef __NETWARE__
+ setscreenmode(SCR_AUTOCLOSE_ON_EXIT);
+#endif
+
+ load_defaults("my", load_default_groups, &argc, &argv);
+
+ if ((error= handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(error);
+
+ if (tty_password)
+ opt_password= get_tty_password(NullS);
+
+ /* Check if we want to force the use a specific default file */
+ get_defaults_options(argc, argv,
+ &forced_defaults_file, &forced_extra_defaults,
+ &defaults_group_suffix);
+
+ port_socket_end= port_socket;
+ if (opt_mysql_port)
+ port_socket_end= strxnmov(port_socket, sizeof(port_socket) - 1, " --port=",
+ opt_mysql_port, NullS);
+ if (opt_mysql_unix_port)
+ port_socket_end= strxnmov(port_socket_end,
+ sizeof(port_socket) -
+ (int)(port_socket_end - port_socket) - 1,
+ " --socket=", opt_mysql_unix_port, NullS);
+ *port_socket_end= 0;
+
+ if (basedir)
+ {
+ bindir_end= strmake(bindir, basedir, sizeof(bindir)-1);
+ }
+ else
+ {
+ if (test_file_exists("./share/mysql/english", "errmsg.sys")
+ && (test_file_exists("./bin", "mysqld") ||
+ test_file_exists("./libexec", "mysqld")))
+ {
+ getcwd(bindir, sizeof(bindir));
+ bindir_end= bindir + strlen(bindir);
+ }
+ else
+ {
+ bindir_end= strmake(bindir, DEFAULT_MYSQL_HOME, sizeof(bindir)-1);
+ }
+ }
+
+ if (!datadir)
+ {
+ datadir= datadir_buf;
+ if (test_file_exists(bindir, "data/mysql"))
+ {
+ *strxnmov(datadir_buf, sizeof(datadir_buf)-1, bindir, "/data", NullS)= 0;
+ }
+ else if (test_file_exists(bindir, "var/mysql"))
+ {
+ *strxnmov(datadir_buf, sizeof(datadir_buf)-1, bindir, "/var", NullS)= 0;
+ }
+ else
+ datadir= (char*) DATADIR;
+ }
+
+ strmake(bindir_end, "/bin", sizeof(bindir) - (int) (bindir_end - bindir)-1);
+
+ if (!test_file_exists_res
+ (bindir, "mysqlcheck", mysqlcheck_line, &mysqlcheck_end))
+ {
+ printf("Can't find program '%s'\n", mysqlcheck_line);
+ puts("Please restart with --basedir=mysql-install-directory");
+ exit(1);
+ }
+
+ if (!test_file_exists(datadir, "mysql/user.frm"))
+ {
+ puts
+ ("Can't find data directory. Please restart with --datadir=path-to-data-dir");
+ exit(1);
+ }
+
+ /* create the modified defaults file to be used by mysqlcheck */
+ /* and mysql tools */
+ *strxnmov(upgrade_defaults_path, sizeof(upgrade_defaults_path)-1,
+ datadir, "/upgrade_defaults", NullS)= 0;
+ unpack_filename(upgrade_defaults_path, upgrade_defaults_path);
+ if ((error=
+ create_defaults_file(upgrade_defaults_path, forced_extra_defaults)))
+ goto err_exit;
+
+ defaults_to_use= upgrade_defaults_created ?
+ upgrade_defaults_path : forced_extra_defaults;
+
+ if (test_file_exists_res(datadir, "mysql_upgrade_info", check_file_name,
+ &buf_end) && !opt_force)
+ {
+ char chf_buffer[50];
+ int b_read;
+ check_file= my_open(check_file_name, O_RDONLY, MYF(0));
+ b_read= my_read(check_file, chf_buffer, sizeof(chf_buffer)-1, MYF(0));
+ chf_buffer[b_read]= 0;
+ my_close(check_file, MYF(0));
+ if (!strcmp(chf_buffer, VERSION))
+ {
+ if (opt_verbose)
+ puts("mysql_upgrade already done for this version");
+ goto fix_priv_tables;
+ }
+ }
+
+ if (defaults_to_use)
+ {
+ mysqlcheck_end= strxnmov(mysqlcheck_end,
+ sizeof(mysqlcheck_line) - (int) (mysqlcheck_end -
+ mysqlcheck_line),
+ " --defaults-extra-file=", defaults_to_use,NullS);
+ }
+
+ mysqlcheck_end= strxnmov(mysqlcheck_end,
+ sizeof(mysqlcheck_line) -
+ (int) (mysqlcheck_end - mysqlcheck_line - 1),
+ " --check-upgrade --all-databases --auto-repair --user=",
+ user, port_socket, NullS);
+ *mysqlcheck_end= 0;
+
+ if (opt_verbose)
+ printf("Running %s\n", mysqlcheck_line);
+ if ((error= system(mysqlcheck_line)))
+ {
+ printf("Error executing '%s'\n", mysqlcheck_line);
+ goto err_exit;
+ }
+
+ if ((error= create_check_file(check_file_name)))
+ goto err_exit;
+
+fix_priv_tables:
+ if (!test_file_exists_res(bindir, "mysql", fix_priv_tables_cmd, &fix_cmd_end))
+ {
+ puts("Could not find MySQL command-line client (mysql).");
+ puts
+ ("Please use --basedir to specify the directory where MySQL is installed.");
+ error= 1;
+ goto err_exit;
+ }
+
+ if (!test_file_exists_res(basedir,
+ "support_files/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res(basedir, "share/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res(basedir,
+ "share/mysql/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res(basedir,
+ "scripts/mysql_fix_privilege_tables.sql",
+ script_line, &buf_end)
+ && !test_file_exists_res("/usr/local/mysql/share/mysql",
+ "mysql_fix_privilege_tables.sql", script_line,
+ &buf_end))
+ {
+ puts("Could not find file mysql_fix_privilege_tables.sql");
+ puts
+ ("Please use --basedir to specify the directory where MySQL is installed");
+ error= 1;
+ goto err_exit;
+ }
+
+ if (defaults_to_use)
+ {
+ fix_cmd_end= strxnmov(fix_cmd_end,
+ sizeof(fix_priv_tables_cmd) -
+ (int) (fix_cmd_end - fix_priv_tables_cmd - 1),
+ " --defaults-extra-file=", defaults_to_use, NullS);
+ }
+ fix_cmd_end= strxnmov(fix_cmd_end,
+ sizeof(fix_priv_tables_cmd) - (int) (fix_cmd_end -
+ fix_priv_tables_cmd),
+ " --user=", user, port_socket, " mysql < ", script_line, NullS);
+ *fix_cmd_end= 0;
+
+ if ((error= system(fix_priv_tables_cmd)))
+ {
+ /* Problem is that the 'Duplicate column' error */
+ /* which is not a bug for the script makes 'mysql' return */
+ /* an error */
+ /* printf("Error executing '%s'\n", fix_priv_tables_cmd); */
+ }
+
+err_exit:
+ if (upgrade_defaults_created)
+ my_delete(upgrade_defaults_path, MYF(0));
+ my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
+ return error;
+} /* main */
diff --git a/client/mysqlmanager-pwgen.c b/client/mysqlmanager-pwgen.c
deleted file mode 100644
index 1d942e207ad..00000000000
--- a/client/mysqlmanager-pwgen.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#define MANAGER_PWGEN_VERSION "1.4"
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-const char* outfile=0,*user="root";
-
-static struct my_option my_long_options[] =
-{
- {"output-file", 'o', "Write the output to the file with the given name.",
- (gptr*) &outfile, (gptr*) &outfile, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0,
- 0, 0},
- {"user", 'u', "Put given user in the password file.", (gptr*) &user,
- (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"help", '?', "Display this message and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG,
- 0, 0, 0, 0, 0, 0},
- {"version", 'V', "Display version info.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
- 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
-};
-
-static void die(const char* fmt, ...)
-{
- va_list args;
- DBUG_ENTER("die");
- va_start(args, fmt);
- if (fmt)
- {
- fprintf(stderr, "%s: ", my_progname);
- vfprintf(stderr, fmt, args);
- fprintf(stderr, "\n");
- fflush(stderr);
- }
- va_end(args);
- exit(1);
-}
-
-static void print_version(void)
-{
- printf("%s Ver %s Distrib %s, for %s (%s)\n",my_progname,
- MANAGER_PWGEN_VERSION,
- MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE);
-}
-
-void usage()
-{
- print_version();
- printf("MySQL AB, by Sasha\n");
- printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
- printf("Generates a password file to be used by mysqltest.\n\n");
- printf("Usage: %s [OPTIONS]\n", my_progname);
- my_print_help(my_long_options);
- my_print_variables(my_long_options);
-}
-
-static my_bool
-get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
- char *argument __attribute__((unused)))
-{
- switch (optid) {
- case '?':
- usage();
- exit(0);
- case 'V':
- print_version();
- exit(0);
- }
- return 0;
-}
-
-
-int parse_args(int argc, char** argv)
-{
- int ho_error;
-
- if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
- exit(ho_error);
-
- return 0;
-}
-
-void get_pass(char* pw, int len)
-{
- FILE* fp;
- char* pw_end=pw+len;
- /*
- /dev/random is more secure than rand() because the seed is easy to
- predict, so we resort to rand() only if /dev/random is not available
- */
- if ((fp=fopen("/dev/random","r")))
- {
- fread(pw,len,1,fp);
- fclose(fp);
- while (pw
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#ifndef MYSQL_MANAGER_PORT
-#define MYSQL_MANAGER_PORT 9305
-#endif
-
-static void die(const char* fmt, ...);
-
-const char* user="root",*host="localhost";
-char* pass=0;
-my_bool quiet=0;
-uint port=MYSQL_MANAGER_PORT;
-static const char *load_default_groups[]= { "mysqlmanagerc",0 };
-char** default_argv;
-MYSQL_MANAGER *manager;
-FILE* fp, *fp_out;
-
-static struct my_option my_long_options[] =
-{
- {"host", 'h', "Connect to host.", (gptr*) &host, (gptr*) &host, 0,
- GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"user", 'u', "User for login.", (gptr*) &user, (gptr*) &user, 0,
- GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"password", 'p', "Password to use when connecting to server.",
- 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
- {"port", 'P', "Port number to use for connection.", (gptr*) &port,
- (gptr*) &port, 0, GET_UINT, REQUIRED_ARG, MYSQL_MANAGER_PORT, 0, 0, 0, 0,
- 0},
- {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG,
- 0, 0, 0, 0, 0, 0},
- {"version", 'V', "Output version information and exit.", 0, 0, 0,
- GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
- {"quiet", 'q', "Suppress all normal output.", (gptr*) &quiet, (gptr*) &quiet,
- 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
-};
-
-static void die(const char* fmt, ...)
-{
- va_list args;
- DBUG_ENTER("die");
- va_start(args, fmt);
- if (fmt)
- {
- fprintf(stderr, "%s: ", my_progname);
- vfprintf(stderr, fmt, args);
- fprintf(stderr, "\n");
- fflush(stderr);
- }
- va_end(args);
- exit(1);
-}
-
-static void print_version(void)
-{
- printf("%s Ver %s Distrib %s, for %s (%s)\n",my_progname,
- MANAGER_CLIENT_VERSION,
- MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE);
-}
-
-void usage()
-{
- print_version();
- printf("MySQL AB, by Sasha\n");
- printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
- printf("Command-line client for MySQL manager daemon.\n\n");
- printf("Usage: %s [OPTIONS] < command_file\n", my_progname);
- my_print_help(my_long_options);
- printf(" --no-defaults Don't read default options from any options file.\n");
- my_print_variables(my_long_options);
-}
-
-
-static my_bool
-get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
- char *argument)
-{
- my_bool tty_password=0;
-
- switch (optid) {
- case 'p':
- if (argument)
- {
- my_free(pass, MYF(MY_ALLOW_ZERO_PTR));
- pass= my_strdup(argument, MYF(MY_FAE));
- while (*argument) *argument++= 'x'; /* Destroy argument */
- }
- else
- tty_password=1;
- break;
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(0);
- }
- return 0;
-}
-
-
-int parse_args(int argc, char **argv)
-{
- int ho_error;
-
- load_defaults("my",load_default_groups,&argc,&argv);
- default_argv= argv;
-
- if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
- exit(ho_error);
-
- return 0;
-}
-
-
-int main(int argc, char** argv)
-{
- MY_INIT(argv[0]);
- fp=stdin;
- fp_out=stdout;
- parse_args(argc,argv);
- if (!(manager=mysql_manager_init(0)))
- die("Failed in mysql_manager_init()");
- if (!mysql_manager_connect(manager,host,user,pass,port))
- die("Could not connect to MySQL manager: %s (%d)",manager->last_error,
- manager->last_errno);
- for (;!feof(fp);)
- {
- char buf[4096];
- if (!fgets(buf,sizeof(buf),fp))
- break;
- if (!quiet)
- fprintf(fp_out,"<<%s",buf);
- if (mysql_manager_command(manager,buf,strlen(buf)))
- die("Error in command: %s (%d)",manager->last_error,manager->last_errno);
- while (!manager->eof)
- {
- if (mysql_manager_fetch_line(manager,buf,sizeof(buf)))
- die("Error fetching result line: %s (%d)", manager->last_error,
- manager->last_errno);
- if (!quiet)
- fprintf(fp_out,">>%s\n",buf);
- }
- }
- mysql_manager_close(manager);
- return 0;
-}
diff --git a/client/mysqlslap.c b/client/mysqlslap.c
index 904bf432071..d9b4230348e 100644
--- a/client/mysqlslap.c
+++ b/client/mysqlslap.c
@@ -254,10 +254,6 @@ int main(int argc, char **argv)
MY_INIT(argv[0]);
- /* Seed the random number generator if we will be using it. */
- if (auto_generate_sql)
- srandom((uint)time(NULL));
-
load_defaults("my",load_default_groups,&argc,&argv);
defaults_argv=argv;
if (get_options(&argc,&argv))
@@ -267,6 +263,10 @@ int main(int argc, char **argv)
exit(1);
}
+ /* Seed the random number generator if we will be using it. */
+ if (auto_generate_sql)
+ srandom((uint)time(NULL));
+
/* globals? Yes, so we only have to run strlen once */
delimiter_length= strlen(delimiter);
@@ -300,7 +300,8 @@ int main(int argc, char **argv)
NULL, opt_mysql_port,
opt_mysql_unix_port, client_flag)))
{
- fprintf(stderr,"%s: %s\n",my_progname,mysql_error(&mysql));
+ fprintf(stderr,"%s: Error when connecting to server: %s\n",
+ my_progname,mysql_error(&mysql));
free_defaults(defaults_argv);
my_end(0);
exit(1);
@@ -752,8 +753,12 @@ get_options(int *argc,char ***argv)
if (!user)
user= (char *)"root";
- if (create_string || auto_generate_sql )
+ if (create_string || auto_generate_sql)
+ {
+ if (verbose >= 1)
+ fprintf(stderr, "Turning off preserve-schema!\n");
opt_preserve= FALSE;
+ }
if (auto_generate_sql && (create_string || user_supplied_query))
{
@@ -800,6 +805,14 @@ get_options(int *argc,char ***argv)
DBUG_PRINT("info", ("auto-generated insert is %s", query_statements->string));
query_statements->next= build_query_string();
DBUG_PRINT("info", ("auto-generated is %s", query_statements->next->string));
+ if (verbose >= 1)
+ {
+ fprintf(stderr, "auto-generated insert is:\n");
+ fprintf(stderr, "%s\n", query_statements->string);
+ fprintf(stderr, "auto-generated is:\n");
+ fprintf(stderr, "%s\n", query_statements->next->string);
+ }
+
}
else
{
@@ -868,37 +881,48 @@ get_options(int *argc,char ***argv)
}
+static int run_query(MYSQL *mysql, const char *query, int len)
+{
+ if (opt_only_print)
+ {
+ printf("%.*s;\n", len, query);
+ return 0;
+ }
+
+ if (verbose >= 2)
+ printf("%.*s;\n", len, query);
+ return mysql_real_query(mysql, query, len);
+}
+
+
+
static int
create_schema(MYSQL *mysql, const char *db, statement *stmt,
statement *engine_stmt)
{
char query[HUGE_STRING_LENGTH];
statement *ptr;
-
+ int len;
DBUG_ENTER("create_schema");
- snprintf(query, HUGE_STRING_LENGTH, "CREATE SCHEMA `%s`", db);
+ len= snprintf(query, HUGE_STRING_LENGTH, "CREATE SCHEMA `%s`", db);
DBUG_PRINT("info", ("query %s", query));
- if (opt_only_print)
+
+ if (run_query(mysql, query, len))
{
- printf("%s;\n", query);
- }
- else
- {
- if (mysql_query(mysql, query))
- {
- fprintf(stderr,"%s: Cannot create schema %s : %s\n", my_progname, db,
- mysql_error(mysql));
- exit(1);
- }
+ fprintf(stderr,"%s: Cannot create schema %s : %s\n", my_progname, db,
+ mysql_error(mysql));
+ exit(1);
}
- if (opt_only_print)
+ if (opt_only_print)
{
printf("use %s;\n", db);
}
else
{
+ if (verbose >= 2)
+ printf("%s;\n", query);
if (mysql_select_db(mysql, db))
{
fprintf(stderr,"%s: Cannot select schema '%s': %s\n",my_progname, db,
@@ -909,65 +933,46 @@ create_schema(MYSQL *mysql, const char *db, statement *stmt,
if (engine_stmt)
{
- snprintf(query, HUGE_STRING_LENGTH, "set storage_engine=`%s`",
- engine_stmt->string);
- if (opt_only_print)
+ len= snprintf(query, HUGE_STRING_LENGTH, "set storage_engine=`%s`",
+ engine_stmt->string);
+ if (run_query(mysql, query, len))
{
- printf("%s;\n", query);
- }
- else
- {
- if (mysql_query(mysql, query))
- {
- fprintf(stderr,"%s: Cannot set default engine: %s\n", my_progname,
- mysql_error(mysql));
- exit(1);
- }
+ fprintf(stderr,"%s: Cannot set default engine: %s\n", my_progname,
+ mysql_error(mysql));
+ exit(1);
}
}
for (ptr= stmt; ptr && ptr->length; ptr= ptr->next)
{
- if (opt_only_print)
+ if (run_query(mysql, ptr->string, ptr->length))
{
- printf("%.*s;\n", (uint)ptr->length, ptr->string);
- }
- else
- {
- if (mysql_real_query(mysql, ptr->string, ptr->length))
- {
- fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
- my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
- exit(1);
- }
+ fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
+ my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
+ exit(1);
}
}
DBUG_RETURN(0);
}
-
static int
drop_schema(MYSQL *mysql, const char *db)
{
char query[HUGE_STRING_LENGTH];
-
+ int len;
DBUG_ENTER("drop_schema");
- snprintf(query, HUGE_STRING_LENGTH, "DROP SCHEMA IF EXISTS `%s`", db);
- if (opt_only_print)
+ len= snprintf(query, HUGE_STRING_LENGTH, "DROP SCHEMA IF EXISTS `%s`", db);
+
+ if (run_query(mysql, query, len))
{
- printf("%s;\n", query);
- }
- else
- {
- if (mysql_query(mysql, query))
- {
- fprintf(stderr,"%s: Cannot drop database '%s' ERROR : %s\n",
- my_progname, db, mysql_error(mysql));
- exit(1);
- }
+ fprintf(stderr,"%s: Cannot drop database '%s' ERROR : %s\n",
+ my_progname, db, mysql_error(mysql));
+ exit(1);
}
+
+
DBUG_RETURN(0);
}
@@ -1033,7 +1038,7 @@ run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit)
case 0:
/* child */
DBUG_PRINT("info", ("fork returned 0, calling task(\"%s\"), pid %d gid %d",
- stmts->string, pid, getgid()));
+ stmts ? stmts->string : "", pid, getgid()));
if (verbose >= 2)
fprintf(stderr,
"%s: fork returned 0, calling task pid %d gid %d\n",
@@ -1119,7 +1124,7 @@ run_task(thread_context *con)
statement *ptr;
DBUG_ENTER("run_task");
- DBUG_PRINT("info", ("task script \"%s\"", con->stmt->string));
+ DBUG_PRINT("info", ("task script \"%s\"", con->stmt ? con->stmt->string : ""));
if (!(mysql= mysql_init(NULL)))
goto end;
@@ -1132,42 +1137,36 @@ run_task(thread_context *con)
my_lock(lock_file, F_RDLCK, 0, F_TO_EOF, MYF(0));
if (!opt_only_print)
{
- if (!(mysql= mysql_real_connect(mysql, host, user, opt_password,
- create_schema_string,
- opt_mysql_port,
- opt_mysql_unix_port,
- 0)))
+ if (!(mysql_real_connect(mysql, host, user, opt_password,
+ create_schema_string,
+ opt_mysql_port,
+ opt_mysql_unix_port,
+ 0)))
{
fprintf(stderr,"%s: %s\n",my_progname,mysql_error(mysql));
goto end;
}
}
DBUG_PRINT("info", ("connected."));
-
+ if (verbose >= 3)
+ fprintf(stderr, "connected!\n");
queries= 0;
limit_not_met:
for (ptr= con->stmt; ptr && ptr->length; ptr= ptr->next)
{
- if (opt_only_print)
+ if (run_query(mysql, ptr->string, ptr->length))
{
- printf("%.*s;\n", (uint)ptr->length, ptr->string);
+ fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
+ my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
+ goto end;
}
- else
+ if (mysql_field_count(mysql))
{
- if (mysql_real_query(mysql, ptr->string, ptr->length))
- {
- fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
- my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
- goto end;
- }
- if (mysql_field_count(mysql))
- {
- result= mysql_store_result(mysql);
- while ((row = mysql_fetch_row(result)))
- counter++;
- mysql_free_result(result);
- }
+ result= mysql_store_result(mysql);
+ while ((row = mysql_fetch_row(result)))
+ counter++;
+ mysql_free_result(result);
}
queries++;
@@ -1175,8 +1174,8 @@ limit_not_met:
goto end;
}
- if (con->limit && queries < con->limit)
- goto limit_not_met;
+ if (!con->stmt && con->limit && queries < con->limit)
+ goto limit_not_met;
end:
diff --git a/client/mysqltest.c b/client/mysqltest.c
index 50d814e3f9b..cfd69e45ba7 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -1596,9 +1596,9 @@ wait_for_position:
It may be that the slave SQL thread has not started yet, though START
SLAVE has been issued ?
*/
- if (tries++ == 3)
+ if (tries++ == 30)
die("could not sync with master ('%s' returned NULL)", query_buf);
- sleep(1); /* So at most we will wait 3 seconds and make 4 tries */
+ sleep(1); /* So at most we will wait 30 seconds and make 31 tries */
mysql_free_result(res);
goto wait_for_position;
}
@@ -1664,14 +1664,14 @@ int do_save_master_pos()
{
ulonglong epoch=0, tmp_epoch= 0;
int count= 0;
-
- do
+ int do_continue= 1;
+ while (do_continue)
{
const char binlog[]= "binlog";
const char latest_trans_epoch[]=
"latest_trans_epoch=";
- const char latest_applied_binlog_epoch[]=
- "latest_applied_binlog_epoch=";
+ const char latest_handled_binlog_epoch[]=
+ "latest_handled_binlog_epoch=";
if (count)
sleep(1);
if (mysql_query(mysql, query= "show engine ndb status"))
@@ -1701,26 +1701,32 @@ int do_save_master_pos()
start_lineno, latest_trans_epoch, query);
}
/* latest_applied_binlog_epoch */
- while (*status && strncmp(status, latest_applied_binlog_epoch,
- sizeof(latest_applied_binlog_epoch)-1))
+ while (*status && strncmp(status, latest_handled_binlog_epoch,
+ sizeof(latest_handled_binlog_epoch)-1))
status++;
if (*status)
{
- status+= sizeof(latest_applied_binlog_epoch)-1;
+ status+= sizeof(latest_handled_binlog_epoch)-1;
tmp_epoch= strtoull(status, (char**) 0, 10);
}
else
die("line %u: result does not contain '%s' in '%s'",
- start_lineno, latest_applied_binlog_epoch, query);
+ start_lineno, latest_handled_binlog_epoch, query);
break;
}
}
- mysql_free_result(res);
if (!row)
die("line %u: result does not contain '%s' in '%s'",
start_lineno, binlog, query);
count++;
- } while (tmp_epoch < epoch && count <= 3);
+ if (tmp_epoch >= epoch)
+ do_continue= 0;
+ else if (count > 30)
+ {
+ break;
+ }
+ mysql_free_result(res);
+ }
}
}
#endif
@@ -5088,6 +5094,35 @@ static void init_var_hash(MYSQL *mysql)
DBUG_VOID_RETURN;
}
+static void mark_progress(int line)
+{
+#ifdef NOT_YET
+ static FILE* fp = NULL;
+ static double first;
+
+ struct timeval tv;
+ double now;
+
+ if (!fp)
+ {
+
+ fp = fopen("/tmp/mysqltest_progress.log", "wt");
+
+ if (!fp)
+ {
+ abort();
+ }
+
+ gettimeofday(&tv, NULL);
+ first = tv.tv_sec * 1e6 + tv.tv_usec;
+ }
+
+ gettimeofday(&tv, NULL);
+ now = tv.tv_sec * 1e6 + tv.tv_usec;
+
+ fprintf(fp, "%d %f\n", parser.current_line, (now - first) / 1e6);
+#endif
+}
int main(int argc, char **argv)
{
@@ -5447,6 +5482,7 @@ int main(int argc, char **argv)
}
parser.current_line += current_line_inc;
+ mark_progress(parser.current_line);
}
start_lineno= 0;
diff --git a/cmakelists.txt b/cmakelists.txt
index 70b017c757d..0e91f49be90 100644
--- a/cmakelists.txt
+++ b/cmakelists.txt
@@ -3,6 +3,9 @@ PROJECT(MySql)
# This reads user configuration, generated by configure.js.
INCLUDE(win/configure.data)
+# Hardcode support for CSV storage engine
+SET(WITH_CSV_STORAGE_ENGINE TRUE)
+
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
@@ -18,6 +21,12 @@ IF(WITH_BLACKHOLE_STORAGE_ENGINE)
SET (mysql_se_decls "${mysql_se_decls}, blackhole_hton")
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_blackhole.cc")
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
+IF(WITH_CSV_STORAGE_ENGINE)
+ ADD_DEFINITIONS(-D WITH_CSV_STORAGE_ENGINE)
+ SET (mysql_se_htons "${mysql_se_htons}, &tina_hton")
+ SET (mysql_se_decls "${mysql_se_decls}, tina_hton")
+ SET (mysql_se_ha_src ${mysql_se_ha_src} "../storage/csv/ha_tina.cc")
+ENDIF(WITH_CSV_STORAGE_ENGINE)
IF(WITH_EXAMPLE_STORAGE_ENGINE)
ADD_DEFINITIONS(-D WITH_EXAMPLE_STORAGE_ENGINE)
SET (mysql_se_htons "${mysql_se_htons}, &example_hton")
diff --git a/config/ac-macros/yassl.m4 b/config/ac-macros/yassl.m4
index c736f2f10f2..906a65a2fc3 100644
--- a/config/ac-macros/yassl.m4
+++ b/config/ac-macros/yassl.m4
@@ -1,8 +1,3 @@
-AC_CONFIG_FILES(extra/yassl/Makefile dnl
-extra/yassl/taocrypt/Makefile dnl
-extra/yassl/taocrypt/src/Makefile dnl
-extra/yassl/src/Makefile)
-
AC_DEFUN([MYSQL_CHECK_YASSL], [
AC_MSG_CHECKING(for yaSSL)
AC_ARG_WITH([yassl], [ --with-yassl Include the yaSSL support],,)
@@ -14,7 +9,11 @@ AC_DEFUN([MYSQL_CHECK_YASSL], [
AC_MSG_ERROR([Cannot configure MySQL to use yaSSL and OpenSSL simultaneously.])
fi
AC_MSG_RESULT([using bundled yaSSL])
- yassl_dir="extra/yassl"
+ AC_CONFIG_FILES(extra/yassl/Makefile dnl
+ extra/yassl/taocrypt/Makefile dnl
+ extra/yassl/taocrypt/src/Makefile dnl
+ extra/yassl/src/Makefile)
+ yassl_dir="yassl"
yassl_libs="-L\$(top_srcdir)/extra/yassl/src -lyassl -L\$(top_srcdir)/extra/yassl/taocrypt/src -ltaocrypt"
yassl_includes="-I\$(top_srcdir)/extra/yassl/include"
AC_DEFINE([HAVE_OPENSSL], [1], [Defined by configure. Using yaSSL for OpenSSL emulation.])
diff --git a/config/ac-macros/zlib.m4 b/config/ac-macros/zlib.m4
index a8c54c845a1..23cc132aca8 100644
--- a/config/ac-macros/zlib.m4
+++ b/config/ac-macros/zlib.m4
@@ -63,7 +63,7 @@ case $SYSTEM_TYPE in
;;
*)
AC_ARG_WITH([zlib-dir],
- AC_HELP_STRING([--with-zlib-dir=DIR],
+ AC_HELP_STRING([--with-zlib-dir=no|bundled|DIR],
[Provide MySQL with a custom location of
compression library. Given DIR, zlib binary is
assumed to be in $DIR/lib and header files
@@ -113,6 +113,10 @@ case $SYSTEM_TYPE in
fi
;;
esac
+if test -n "$zlib_dir"
+then
+ AC_CONFIG_FILES(zlib/Makefile)
+fi
])
dnl ------------------------------------------------------------------------
diff --git a/configure.in b/configure.in
index 250d7f6d1c2..6984f5b5f89 100644
--- a/configure.in
+++ b/configure.in
@@ -2218,23 +2218,7 @@ then
[Access checks in embedded library])
fi
-AC_ARG_WITH(extra-tools,
- [ --without-extra-tools Skip building utilites in the tools directory.],
- [with_tools=$withval],
- [with_tools=yes]
-)
-
tools_dirs=""
-if test "$with_tools" = "yes"
-then
- if test "$THREAD_SAFE_CLIENT" = "no"
- then
- AC_MSG_WARN([extra-tools disabled because --enable-thread-safe-client wasn't used])
- else
- tools_dirs="tools"
- AC_CONFIG_FILES(tools/Makefile)
- fi
-fi
AC_ARG_WITH([mysqlmanager],
AC_HELP_STRING([--with-mysqlmanager], [Build the mysqlmanager binary: yes/no (default: build if server is built.)]),
@@ -2304,22 +2288,6 @@ fi
AC_SUBST(man_dirs)
AC_SUBST(man1_files)
-# Shall we build the bench code?
-AC_ARG_WITH(bench,
- [ --without-bench Skip building of the benchmark suite.],
- [with_bench=$withval],
- [with_bench=yes]
-)
-
-if test "$with_bench" = "yes"
-then
- bench_dirs="sql-bench"
-else
- bench_dirs=""
-fi
-bench_dirs="$bench_dirs mysql-test"
-AC_SUBST(bench_dirs)
-
# Don't build readline, i have it already
AC_ARG_WITH(readline,
[ --without-readline Use system readline instead of bundled copy.],
@@ -2333,6 +2301,12 @@ AC_ARG_WITH(libedit,
[ with_libedit=undefined ]
)
+if test "$with_readline/$with_libedit" = "undefined/undefined" -a ! -e "$srcdir/cmd-line-utils"
+then
+ with_readline=no
+ with_libedit=no
+fi
+
#
# We support next variants of compilation:
# --with-readline
@@ -2408,6 +2382,16 @@ else
versions of libedit or readline])
fi
fi
+#
+# if either readline or libedit is enabled - generate Makefile's for both
+# (to make sure both are included in 'make dist')
+#
+if test -n "$readline_basedir"
+then
+ AC_CONFIG_FILES(cmd-line-utils/Makefile dnl
+ cmd-line-utils/libedit/Makefile dnl
+ cmd-line-utils/readline/Makefile)
+fi
fi
AC_SUBST(readline_dir)
@@ -2420,7 +2404,7 @@ MYSQL_CHECK_BIG_TABLES
MYSQL_CHECK_MAX_INDEXES
MYSQL_CHECK_REPLICATION
-MYSQL_STORAGE_ENGINE(innobase,,innodb,,,,storage/innobase,ha_innodb.o,[ dnl
+MYSQL_STORAGE_ENGINE(innobase,,innodb,,,,innobase,ha_innodb.o,[ dnl
\$(top_builddir)/storage/innobase/usr/libusr.a dnl
\$(top_builddir)/storage/innobase/srv/libsrv.a dnl
\$(top_builddir)/storage/innobase/dict/libdict.a dnl
@@ -2462,24 +2446,24 @@ MYSQL_STORAGE_ENGINE(innobase,,innodb,,,,storage/innobase,ha_innodb.o,[ dnl
other_configures="$other_configures storage/innobase/configure"
])
-MYSQL_STORAGE_ENGINE(berkeley,,berkeley-db,,,,storage/bdb,,,[
+MYSQL_STORAGE_ENGINE(berkeley,,berkeley-db,,,,bdb,,,[
MYSQL_SETUP_BERKELEY_DB
])
-MYSQL_STORAGE_ENGINE(example,,,,,,storage/example,no,
+MYSQL_STORAGE_ENGINE(example,,,,,,example,no,
\$(top_builddir)/storage/example/libexample.a,[
AC_CONFIG_FILES(storage/example/Makefile)
])
-MYSQL_STORAGE_ENGINE(archive,,,,,,storage/archive,,
+MYSQL_STORAGE_ENGINE(archive,,,,,,archive,,
\$(top_builddir)/storage/archive/libarchive.a, [
AC_CONFIG_FILES(storage/archive/Makefile)
])
-MYSQL_STORAGE_ENGINE(csv,,,"yes",,tina_hton,storage/csv,no,
+MYSQL_STORAGE_ENGINE(csv,,,"yes",,tina_hton,csv,no,
\$(top_builddir)/storage/csv/libcsv.a,[
AC_CONFIG_FILES(storage/csv/Makefile)
])
MYSQL_STORAGE_ENGINE(blackhole)
MYSQL_STORAGE_ENGINE(federated)
-MYSQL_STORAGE_ENGINE(ndbcluster,,ndbcluster,,,,storage/ndb,,,[
+MYSQL_STORAGE_ENGINE(ndbcluster,,ndbcluster,,,,ndb,,,[
MYSQL_SETUP_NDBCLUSTER
])
MYSQL_STORAGE_ENGINE(partition,,partition)
@@ -2539,7 +2523,7 @@ then
AC_SUBST(THREAD_LOBJECTS)
server_scripts="mysqld_safe mysql_install_db"
sql_server_dirs="strings mysys dbug extra regex"
- mysql_se_dirs="storage/myisam storage/myisammrg storage/heap $mysql_se_dirs"
+ mysql_se_dirs="myisam myisammrg heap $mysql_se_dirs"
sql_server="$sql_server vio sql"
fi
@@ -2602,24 +2586,22 @@ AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
# Output results
AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
+ unittest/Makefile dnl
+ unittest/mytap/Makefile unittest/mytap/t/Makefile dnl
+ unittest/mysys/Makefile unittest/examples/Makefile dnl
strings/Makefile regex/Makefile storage/Makefile storage/heap/Makefile dnl
storage/myisam/Makefile storage/myisammrg/Makefile dnl
- os2/Makefile os2/include/Makefile os2/include/sys/Makefile dnl
man/Makefile BUILD/Makefile vio/Makefile dnl
libmysql/Makefile client/Makefile dnl
pstack/Makefile pstack/aout/Makefile sql/Makefile sql/share/Makefile dnl
- sql/handlerton.cc sql-common/Makefile SSL/Makefile dnl
+ sql/handlerton.cc sql-common/Makefile dnl
dbug/Makefile scripts/Makefile dnl
- include/Makefile sql-bench/Makefile dnl
+ include/Makefile dnl
server-tools/Makefile server-tools/instance-manager/Makefile dnl
tests/Makefile Docs/Makefile support-files/Makefile dnl
support-files/MacOSX/Makefile mysql-test/Makefile dnl
mysql-test/ndb/Makefile netware/Makefile dnl
include/mysql_version.h dnl
- cmd-line-utils/Makefile dnl
- cmd-line-utils/libedit/Makefile dnl
- zlib/Makefile dnl
- cmd-line-utils/readline/Makefile dnl
plugin/Makefile dnl
plugin/fulltext/Makefile dnl
win/Makefile)
diff --git a/dbug/dbug.c b/dbug/dbug.c
index dc5b06a63e2..52de4b4a92d 100644
--- a/dbug/dbug.c
+++ b/dbug/dbug.c
@@ -2215,7 +2215,7 @@ static unsigned long Clock()
return ru.ru_utime.tv_sec*1000 + ru.ru_utime.tv_usec/1000;
}
-#elif defined(MSDOS) || defined(__WIN__) || defined(OS2)
+#elif defined(MSDOS) || defined(__WIN__)
static ulong Clock()
{
diff --git a/extra/Makefile.am b/extra/Makefile.am
index 0aaa8c4d127..4b483128439 100644
--- a/extra/Makefile.am
+++ b/extra/Makefile.am
@@ -23,10 +23,7 @@ BUILT_SOURCES= $(top_builddir)/include/mysqld_error.h \
$(top_builddir)/include/mysqld_ername.h
pkginclude_HEADERS= $(BUILT_SOURCES)
CLEANFILES = $(BUILT_SOURCES)
-# We never use SUBDIRS here, but needed for automake 1.6.3
-# to generate code to handle DIST_SUBDIRS
-SUBDIRS=
-DIST_SUBDIRS= yassl
+SUBDIRS = @yassl_dir@
# This will build mysqld_error.h and sql_state.h
$(top_builddir)/include/mysqld_error.h: comp_err$(EXEEXT)
diff --git a/extra/resolveip.c b/extra/resolveip.c
index f8cff2a976c..eb05886d5b1 100644
--- a/extra/resolveip.c
+++ b/extra/resolveip.c
@@ -32,7 +32,7 @@
#include
#include
-#if !defined(_AIX) && !defined(HAVE_UNIXWARE7_THREADS) && !defined(HAVE_UNIXWARE7_POSIX) && !defined(h_errno)
+#if !defined(_AIX) && !defined(h_errno)
extern int h_errno;
#endif
diff --git a/extra/yassl/include/openssl/rsa.h b/extra/yassl/include/openssl/rsa.h
index 1ab9d13b89f..fe64e655bdc 100644
--- a/extra/yassl/include/openssl/rsa.h
+++ b/extra/yassl/include/openssl/rsa.h
@@ -1,7 +1,7 @@
/* rsa.h for openSSL */
-#ifndef ysSSL_rsa_h__
+#ifndef yaSSL_rsa_h__
#define yaSSL_rsa_h__
enum { RSA_F4 = 1 };
diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h
index 1c8291c2f13..8a87196b7ed 100644
--- a/extra/yassl/include/openssl/ssl.h
+++ b/extra/yassl/include/openssl/ssl.h
@@ -23,7 +23,7 @@
*
*/
-#ifndef ysSSL_openssl_h__
+#ifndef yaSSL_openssl_h__
#define yaSSL_openssl_h__
#include /* ERR_print fp */
diff --git a/extra/yassl/include/yassl_int.hpp b/extra/yassl/include/yassl_int.hpp
index 60a78a3970e..e75294ad073 100644
--- a/extra/yassl/include/yassl_int.hpp
+++ b/extra/yassl/include/yassl_int.hpp
@@ -123,8 +123,6 @@ public:
friend sslFactory& GetSSL_Factory(); // singleton creator
private:
- static sslFactory instance_;
-
sslFactory(const sslFactory&); // hide copy
sslFactory& operator=(const sslFactory&); // and assign
};
@@ -216,8 +214,6 @@ public:
friend Sessions& GetSessions(); // singleton creator
private:
- static Sessions instance_;
-
Sessions(const Sessions&); // hide copy
Sessions& operator=(const Sessions&); // and assign
};
diff --git a/extra/yassl/include/yassl_types.hpp b/extra/yassl/include/yassl_types.hpp
index ec9e6fb7ceb..66cc6aa3c68 100644
--- a/extra/yassl/include/yassl_types.hpp
+++ b/extra/yassl/include/yassl_types.hpp
@@ -34,6 +34,11 @@
namespace yaSSL {
+
+// Delete static singleton memory holders
+void CleanUp();
+
+
// library allocation
struct new_t {}; // yaSSL New type
extern new_t ys; // pass in parameter
diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp
index d7df438b8df..16c9bde2003 100644
--- a/extra/yassl/src/handshake.cpp
+++ b/extra/yassl/src/handshake.cpp
@@ -648,8 +648,6 @@ void build_certHashes(SSL& ssl, Hashes& hashes)
}
-mySTL::auto_ptr null_buffer(ysDelete);
-
// do process input requests
mySTL::auto_ptr
DoProcessReply(SSL& ssl, mySTL::auto_ptr buffered)
@@ -659,7 +657,8 @@ DoProcessReply(SSL& ssl, mySTL::auto_ptr buffered)
if (!ready) {
// Nothing to receive after blocking wait => error
ssl.SetError(receive_error);
- return buffered= null_buffer;
+ buffered.reset(0);
+ return buffered;
}
// add buffered data if its there
@@ -667,10 +666,10 @@ DoProcessReply(SSL& ssl, mySTL::auto_ptr buffered)
input_buffer buffer(buffSz + ready);
if (buffSz) {
buffer.assign(buffered.get()->get_buffer(), buffSz);
- buffered = null_buffer;
+ buffered.reset(0);
}
- // add new (ys) data
+ // add new data
uint read = ssl.getSocket().receive(buffer.get_buffer() + buffSz, ready);
buffer.add_size(read);
uint offset = 0;
@@ -703,11 +702,15 @@ DoProcessReply(SSL& ssl, mySTL::auto_ptr buffered)
mySTL::auto_ptr msg(mf.CreateObject(hdr.type_), ysDelete);
if (!msg.get()) {
ssl.SetError(factory_error);
- return buffered = null_buffer;
+ buffered.reset(0);
+ return buffered;
}
buffer >> *msg;
msg->Process(buffer, ssl);
- if (ssl.GetError()) return buffered = null_buffer;
+ if (ssl.GetError()) {
+ buffered.reset(0);
+ return buffered;
+ }
}
offset += hdr.length_ + RECORD_HEADER;
}
diff --git a/extra/yassl/src/template_instnt.cpp b/extra/yassl/src/template_instnt.cpp
index 5ee57e76aed..c55ca39bec2 100644
--- a/extra/yassl/src/template_instnt.cpp
+++ b/extra/yassl/src/template_instnt.cpp
@@ -87,6 +87,8 @@ template void ysDelete(BulkCipher*);
template void ysDelete(Digest*);
template void ysDelete(X509*);
template void ysDelete(Message*);
+template void ysDelete(sslFactory*);
+template void ysDelete(Sessions*);
template void ysArrayDelete(unsigned char*);
template void ysArrayDelete(char*);
}
diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp
index 740618ce701..87d990b3506 100644
--- a/extra/yassl/src/yassl_int.cpp
+++ b/extra/yassl/src/yassl_int.cpp
@@ -1361,19 +1361,31 @@ SSL_SESSION::~SSL_SESSION()
}
-Sessions Sessions::instance_; // simple singleton
+static Sessions* sessionsInstance = 0;
Sessions& GetSessions()
{
- return Sessions::instance_;
+ if (!sessionsInstance)
+ sessionsInstance = new (ys) Sessions;
+ return *sessionsInstance;
}
-sslFactory sslFactory::instance_; // simple singleton
+static sslFactory* sslFactoryInstance = 0;
sslFactory& GetSSL_Factory()
-{
- return sslFactory::instance_;
+{
+ if (!sslFactoryInstance)
+ sslFactoryInstance = new (ys) sslFactory;
+ return *sslFactoryInstance;
+}
+
+
+void CleanUp()
+{
+ TaoCrypt::CleanUp();
+ ysDelete(sslFactoryInstance);
+ ysDelete(sessionsInstance);
}
diff --git a/extra/yassl/taocrypt/cmakelists.txt b/extra/yassl/taocrypt/cmakelists.txt
index 6f4d0395ff6..3ad9195b372 100644
--- a/extra/yassl/taocrypt/cmakelists.txt
+++ b/extra/yassl/taocrypt/cmakelists.txt
@@ -1,8 +1,5 @@
INCLUDE_DIRECTORIES(../mySTL include)
-SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /GX-")
-SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GX-")
-
ADD_LIBRARY(taocrypt src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp
src/des.cpp src/dh.cpp src/dsa.cpp src/file.cpp src/hash.cpp src/integer.cpp src/md2.cpp
src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp
diff --git a/extra/yassl/taocrypt/include/integer.hpp b/extra/yassl/taocrypt/include/integer.hpp
index 76034c3ae8f..d3bd731e2bd 100644
--- a/extra/yassl/taocrypt/include/integer.hpp
+++ b/extra/yassl/taocrypt/include/integer.hpp
@@ -275,8 +275,6 @@ private:
AlignedWordBlock reg_;
Sign sign_;
- static const Integer zero_;
- static const Integer one_;
};
inline bool operator==(const Integer& a, const Integer& b)
diff --git a/extra/yassl/taocrypt/include/misc.hpp b/extra/yassl/taocrypt/include/misc.hpp
index f705cc99970..26383d4c96b 100644
--- a/extra/yassl/taocrypt/include/misc.hpp
+++ b/extra/yassl/taocrypt/include/misc.hpp
@@ -34,6 +34,11 @@
namespace TaoCrypt {
+
+// Delete static singleton holders
+void CleanUp();
+
+
// library allocation
struct new_t {}; // TaoCrypt New type
extern new_t tc; // pass in parameter
diff --git a/extra/yassl/taocrypt/include/runtime.hpp b/extra/yassl/taocrypt/include/runtime.hpp
index 254e67a7f64..d9d7877bd93 100644
--- a/extra/yassl/taocrypt/include/runtime.hpp
+++ b/extra/yassl/taocrypt/include/runtime.hpp
@@ -25,11 +25,27 @@
-#if !defined(yaSSL_NEW_HPP) && defined(__GNUC__)
-#if !(defined(__ICC) || defined(__INTEL_COMPILER))
-
+#ifndef yaSSL_NEW_HPP
#define yaSSL_NEW_HPP
+
+#ifdef __sun
+
+#include
+
+// Handler for pure virtual functions
+namespace __Crun {
+ static void pure_error(void)
+ {
+ assert("Pure virtual method called." == "Aborted");
+ }
+} // namespace __Crun
+
+#endif // __sun
+
+
+#if defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER))
+
#if __GNUC__ > 2
extern "C" {
@@ -47,6 +63,6 @@ static int __cxa_pure_virtual()
} // extern "C"
#endif // __GNUC__ > 2
-#endif // ! _ICC
-#endif // yaSSL_NEW_HPP && __GNUC__
+#endif // compiler check
+#endif // yaSSL_NEW_HPP
diff --git a/extra/yassl/taocrypt/src/algebra.cpp b/extra/yassl/taocrypt/src/algebra.cpp
index 45bbcfa662a..8f4ce051a43 100644
--- a/extra/yassl/taocrypt/src/algebra.cpp
+++ b/extra/yassl/taocrypt/src/algebra.cpp
@@ -76,7 +76,9 @@ const Integer& AbstractEuclideanDomain::Mod(const Element &a,
const Integer& AbstractEuclideanDomain::Gcd(const Element &a,
const Element &b) const
{
- Element g[3]={b, a};
+ mySTL::vector g(3);
+ g[0]= b;
+ g[1]= a;
unsigned int i0=0, i1=1, i2=2;
while (!Equal(g[i1], this->Identity()))
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index 71324b04b92..4ade5491530 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -2709,19 +2709,32 @@ unsigned int Integer::Encode(byte* output, unsigned int outputLen,
}
-const Integer Integer::zero_;
+static Integer* zero = 0;
const Integer &Integer::Zero()
{
- return zero_;
+ if (!zero)
+ zero = new (tc) Integer;
+ return *zero;
}
-const Integer Integer::one_(1,2);
+static Integer* one = 0;
const Integer &Integer::One()
{
- return one_;
+ if (!one)
+ one = new (tc) Integer(1,2);
+ return *one;
+}
+
+
+// Clean up static singleton holders, not a leak, but helpful to have gone
+// when checking for leaks
+void CleanUp()
+{
+ tcDelete(one);
+ tcDelete(zero);
}
diff --git a/extra/yassl/taocrypt/src/template_instnt.cpp b/extra/yassl/taocrypt/src/template_instnt.cpp
index 9a3c12badfc..59814d03209 100644
--- a/extra/yassl/taocrypt/src/template_instnt.cpp
+++ b/extra/yassl/taocrypt/src/template_instnt.cpp
@@ -41,6 +41,7 @@ template class RSA_Decryptor;
template class RSA_Encryptor;
template class RSA_Encryptor;
template void tcDelete(HASH*);
+template void tcDelete(Integer*);
template void tcArrayDelete(byte*);
template AllocatorWithCleanup::pointer StdReallocate >(AllocatorWithCleanup&, byte*, AllocatorWithCleanup::size_type, AllocatorWithCleanup::size_type, bool);
template void tcArrayDelete(word*);
diff --git a/include/Makefile.am b/include/Makefile.am
index fbd06c6c574..e1ddadb933a 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -23,7 +23,7 @@ pkginclude_HEADERS = my_dbug.h m_string.h my_sys.h my_list.h my_xml.h \
my_getopt.h sslopt-longopts.h my_dir.h typelib.h \
sslopt-vars.h sslopt-case.h sql_common.h keycache.h \
mysql_time.h mysql/plugin.h $(BUILT_SOURCES)
-noinst_HEADERS = config-win.h config-os2.h config-netware.h \
+noinst_HEADERS = config-win.h config-netware.h \
heap.h my_bitmap.h my_uctype.h \
myisam.h myisampack.h myisammrg.h ft_global.h\
mysys_err.h my_base.h help_start.h help_end.h \
diff --git a/include/config-os2.h b/include/config-os2.h
deleted file mode 100644
index 0402074acc0..00000000000
--- a/include/config-os2.h
+++ /dev/null
@@ -1,835 +0,0 @@
-/* Copyright (C) 2000 MySQL AB & Yuri Dario
- All the above parties has a full, independent copyright to
- the following code, including the right to use the code in
- any manner without any demands from the other parties.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* Defines for OS2 to make it compatible for MySQL */
-
-#ifndef __CONFIG_OS2_H__
-#define __CONFIG_OS2_H__
-
-#include
-#include
-#include
-#include
-
-/* Define to name of system eg solaris*/
-#define SYSTEM_TYPE "IBM OS/2 Warp"
-/* Define to machine type name eg sun10 */
-#define MACHINE_TYPE "i686"
-/* Name of package */
-#define PACKAGE "mysql"
-/* Version number of package */
-#define VERSION MYSQL_SERVER_VERSION
-/* Default socket */
-#define MYSQL_UNIX_ADDR "\\socket\\MySQL"
-
-#define FN_LIBCHAR '\\'
-#define FN_ROOTDIR "\\"
-#define MY_NFILE 1024 /* This is only used to save filenames */
-
-#define HAVE_ACCESS
-
-#define DEFAULT_MYSQL_HOME "c:\\mysql"
-#define DEFAULT_BASEDIR "C:\\"
-#define SHAREDIR "share"
-#define DEFAULT_CHARSET_HOME "C:/mysql/"
-#define _POSIX_PATH_MAX 255
-#define DWORD ULONG
-
-#define O_SHARE 0x1000 /* Open file in sharing mode */
-#define FILE_BINARY O_BINARY /* my_fopen in binary mode */
-#define S_IROTH S_IREAD /* for my_lib */
-
-#define CANT_DELETE_OPEN_FILES /* saves open files in a list, for delayed delete */
-
-#define O_NONBLOCK 0x10
-
-#define NO_OPEN_3 /* For my_create() */
-#define SIGQUIT SIGTERM /* No SIGQUIT */
-#define SIGALRM 14 /* Alarm */
-
-#define NO_FCNTL_NONBLOCK
-
-#define EFBIG E2BIG
-/*#define ENFILE EMFILE */
-/*#define ENAMETOOLONG (EOS2ERR+2) */
-/*#define ETIMEDOUT 145 */
-/*#define EPIPE 146 */
-#define EROFS 147
-
-#define sleep(A) DosSleep((A)*1000)
-#define closesocket(A) soclose(A)
-
-#define F_OK 0
-#define W_OK 2
-
-#define bzero(x,y) memset((x),'\0',(y))
-#define bcopy(x,y,z) memcpy((y),(x),(z))
-#define bcmp(x,y,z) memcmp((y),(x),(z))
-
-#define F_RDLCK 4 /* Read lock. */
-#define F_WRLCK 2 /* Write lock. */
-#define F_UNLCK 0 /* Remove lock. */
-
-#define S_IFMT 0x17000 /* Mask for file type */
-#define F_TO_EOF 0L /* Param to lockf() to lock rest of file */
-
-#define HUGE_PTR
-
-#ifdef __cplusplus
-extern "C"
-#endif
-double _cdecl rint( double nr);
-
-DWORD TlsAlloc( void);
-BOOL TlsFree( DWORD);
-PVOID TlsGetValue( DWORD);
-BOOL TlsSetValue( DWORD, PVOID);
-
-/* support for > 2GB file size */
-#define SIZEOF_OFF_T 8
-#define lseek(A,B,C) _lseek64( A, B, C)
-#define tell(A) _lseek64( A, 0, SEEK_CUR)
-
-void* dlopen( char* path, int flag);
-char* dlerror( void);
-void* dlsym( void* hmod, char* fn);
-void dlclose( void* hmod);
-
-/* Some typedefs */
-typedef unsigned long long os_off_t;
-
-/* config.h. Generated automatically by configure. */
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define if using alloca.c. */
-/* #undef C_ALLOCA */
-
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define if you have alloca, as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define if you have and it should be used (not on Ultrix). */
-/* #define HAVE_ALLOCA_H 1 */
-
-/* Define if you don't have vprintf but do have _doprnt. */
-/* #undef HAVE_DOPRNT */
-
-/* Define if you have a working `mmap' system call. */
-/* #undef HAVE_MMAP */
-
-/* Define if system calls automatically restart after interruption
- by a signal. */
-/* #undef HAVE_RESTARTABLE_SYSCALLS */
-
-/* Define if your struct stat has st_rdev. */
-#define HAVE_ST_RDEV 1
-
-/* Define if you have that is POSIX.1 compatible. */
-/* #define HAVE_SYS_WAIT_H 1 */
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#define HAVE_TZNAME 1
-
-/* Define if utime(file, NULL) sets file's timestamp to the present. */
-#define HAVE_UTIME_NULL 1
-
-/* Define if you have the vprintf function. */
-#define HAVE_VPRINTF 1
-
-/* Define as __inline if that's what the C compiler calls it. */
-/* #undef inline */
-
-/* Define to `long' if doesn't define. */
-/* #undef off_t */
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if doesn't define. */
-/* #undef size_t */
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-#define STACK_DIRECTION -1
-
-/* Define if the `S_IS*' macros in do not work properly. */
-/* #undef STAT_MACROS_BROKEN */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both and . */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define if your declares struct tm. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-/* #undef WORDS_BIGENDIAN */
-
-/* Version of .frm files */
-#define DOT_FRM_VERSION 6
-
-/* READLINE: */
-#define FIONREAD_IN_SYS_IOCTL 1
-
-/* READLINE: Define if your system defines TIOCGWINSZ in sys/ioctl.h. */
-/* #undef GWINSZ_IN_SYS_IOCTL */
-
-/* Do we have FIONREAD */
-#define FIONREAD_IN_SYS_IOCTL 1
-
-/* atomic_add() from (Linux only) */
-/* #undef HAVE_ATOMIC_ADD */
-
-/* atomic_sub() from (Linux only) */
-/* #undef HAVE_ATOMIC_SUB */
-
-/* bool is not defined by all C++ compilators */
-#define HAVE_BOOL 1
-
-/* Have berkeley db installed */
-/* #define HAVE_BERKELEY_DB 1 */
-
-/* DSB style signals ? */
-/* #undef HAVE_BSD_SIGNALS */
-
-/* Can netinet be included */
-/* #undef HAVE_BROKEN_NETINET_INCLUDES */
-
-/* READLINE: */
-/* #undef HAVE_BSD_SIGNALS */
-
-/* ZLIB and compress: */
-#define HAVE_COMPRESS 1
-
-/* Define if we are using OSF1 DEC threads */
-/* #undef HAVE_DEC_THREADS */
-
-/* Define if we are using OSF1 DEC threads on 3.2 */
-/* #undef HAVE_DEC_3_2_THREADS */
-
-/* fp_except from ieeefp.h */
-/* #undef HAVE_FP_EXCEPT */
-
-/* READLINE: */
-/* #undef HAVE_GETPW_DECLS */
-
-/* Solaris define gethostbyname_r with 5 arguments. glibc2 defines
- this with 6 arguments */
-/* #undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE */
-
-/* In OSF 4.0f the 3'd argument to gethostname_r is hostent_data * */
-/* #undef HAVE_GETHOSTBYNAME_R_RETURN_INT */
-
-/* Define if int8, int16 and int32 types exist */
-/* #undef HAVE_INT_8_16_32 */
-
-/* Define if have -lwrap */
-/* #undef HAVE_LIBWRAP */
-
-/* Define if we are using Xavier Leroy's LinuxThreads */
-/* #undef HAVE_LINUXTHREADS */
-
-/* Do we use user level threads */
-/* #undef HAVE_mit_thread */
-
-/* For some non posix threads */
-/* #undef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC */
-
-/* For some non posix threads */
-/* #undef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT */
-
-/* READLINE: */
-#define HAVE_POSIX_SIGNALS 0
-
-/* sigwait with one argument */
-/* #undef HAVE_NONPOSIX_SIGWAIT */
-
-/* pthread_attr_setscope */
-#define HAVE_PTHREAD_ATTR_SETSCOPE 1
-
-/* POSIX readdir_r */
-/* #undef HAVE_READDIR_R */
-
-/* POSIX sigwait */
-/* #undef HAVE_SIGWAIT */
-
-/* crypt */
-#define HAVE_CRYPT 1
-
-/* Solaris define gethostbyaddr_r with 7 arguments. glibc2 defines
- this with 8 arguments */
-/* #undef HAVE_SOLARIS_STYLE_GETHOST */
-
-/* Timespec has a ts_sec instead of tv_sev */
-#define HAVE_TIMESPEC_TS_SEC 1
-
-/* Have the tzname variable */
-#define HAVE_TZNAME 1
-
-/* Define if the system files define uchar */
-/* #undef HAVE_UCHAR */
-
-/* Define if the system files define uint */
-/* #undef HAVE_UINT */
-
-/* Define if the system files define ulong */
-/* #undef HAVE_ULONG */
-
-/* UNIXWARE7 threads are not posix */
-/* #undef HAVE_UNIXWARE7_THREADS */
-
-/* new UNIXWARE7 threads that are not yet posix */
-/* #undef HAVE_UNIXWARE7_POSIX */
-
-/* READLINE: */
-/* #undef HAVE_USG_SIGHOLD */
-
-/* Define if want -lwrap */
-/* #undef LIBWRAP */
-
-/* mysql client protocoll version */
-#define PROTOCOL_VERSION 10
-
-/* Define if qsort returns void */
-#define QSORT_TYPE_IS_VOID 1
-
-/* Define as the return type of qsort (int or void). */
-#define RETQSORTTYPE void
-
-/* Define as the base type of the last arg to accept */
-#define SOCKET_SIZE_TYPE int
-
-/* Last argument to get/setsockopt */
-/* #undef SOCKOPT_OPTLEN_TYPE */
-
-/* #undef SPEED_T_IN_SYS_TYPES */
-/* #undef SPRINTF_RETURNS_PTR */
-#define SPRINTF_RETURNS_INT 1
-/* #undef SPRINTF_RETURNS_GARBAGE */
-
-/* #undef STRUCT_DIRENT_HAS_D_FILENO */
-#define STRUCT_DIRENT_HAS_D_INO 1
-
-/* Define if you want to have threaded code. This may be undef on client code */
-#define THREAD 1
-
-/* Should be client be thread safe */
-/* #undef THREAD_SAFE_CLIENT */
-
-/* READLINE: */
-/* #undef TIOCSTAT_IN_SYS_IOCTL */
-
-/* Use multi-byte character routines */
-/* #undef USE_MB */
-/* #undef USE_MB_IDENT */
-
-/* Use MySQL RAID */
-/* #undef USE_RAID */
-
-/* Use strcoll() functions when comparing and sorting. */
-/* #undef USE_STRCOLL */
-
-/* READLINE: */
-#define VOID_SIGHANDLER 1
-
-/* The number of bytes in a char. */
-#define SIZEOF_CHAR 1
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long long. */
-#define SIZEOF_LONG_LONG 8
-
-/* Define if you have the alarm function. */
-#define HAVE_ALARM 1
-
-/* Define if you have the atod function. */
-/* #undef HAVE_ATOD */
-
-/* Define if you have the bcmp function. */
-#define HAVE_BCMP 1
-
-/* Define if you have the bfill function. */
-/* #undef HAVE_BFILL */
-
-/* Define if you have the bmove function. */
-/* #undef HAVE_BMOVE */
-
-/* Define if you have the bzero function. */
-#define HAVE_BZERO 1
-
-/* Define if you have the chsize function. */
-#define HAVE_CHSIZE 1
-
-/* Define if you have the cuserid function. */
-/* #define HAVE_CUSERID 1 */
-
-/* Define if you have the dlerror function. */
-#define HAVE_DLERROR 1
-
-/* Define if you have the dlopen function. */
-#define HAVE_DLOPEN 1
-
-/* Define if you have the fchmod function. */
-/* #undef HAVE_FCHMOD */
-
-/* Define if you have the fcntl function. */
-/* #define HAVE_FCNTL 1 */
-
-/* Define if you have the fconvert function. */
-/* #undef HAVE_FCONVERT */
-
-/* Define if you have the finite function. */
-/* #undef HAVE_FINITE */
-
-/* Define if you have the fpresetsticky function. */
-/* #undef HAVE_FPRESETSTICKY */
-
-/* Define if you have the fpsetmask function. */
-/* #undef HAVE_FPSETMASK */
-
-/* Define if you have the fseeko function. */
-/* #undef HAVE_FSEEKO */
-
-/* Define if you have the ftruncate function. */
-/* #define HAVE_FTRUNCATE 1 */
-
-/* Define if you have the getcwd function. */
-#define HAVE_GETCWD 1
-
-/* Define if you have the gethostbyaddr_r function. */
-/* #undef HAVE_GETHOSTBYADDR_R */
-
-/* Define if you have the gethostbyname_r function. */
-/* #undef HAVE_GETHOSTBYNAME_R */
-
-/* Define if you have the getpagesize function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define if you have the getpass function. */
-/*#define HAVE_GETPASS 1 */
-
-/* Define if you have the getpassphrase function. */
-/* #undef HAVE_GETPASSPHRASE */
-
-/* Define if you have the getpwnam function. */
-/* #define HAVE_GETPWNAM 1 */
-
-/* Define if you have the getpwuid function. */
-/* #define HAVE_GETPWUID 1 */
-
-/* Define if you have the getrlimit function. */
-/* #undef HAVE_GETRLIMIT */
-
-/* Define if you have the getrusage function. */
-/* #undef HAVE_GETRUSAGE */
-
-/* Define if you have the getwd function. */
-#define HAVE_GETWD 1
-
-/* Define to 1 if you have the `gmtime_r' function. */
-#define HAVE_GMTIME_R 1
-
-/* Define if you have the index function. */
-#define HAVE_INDEX 1
-
-/* Define if you have the initgroups function. */
-/* #undef HAVE_INITGROUPS */
-
-/* Define if you have the localtime_r function. */
-#define HAVE_LOCALTIME_R 1
-
-/* Define if you have the locking function. */
-/* #undef HAVE_LOCKING */
-
-/* Define if you have the longjmp function. */
-#define HAVE_LONGJMP 1
-
-/* Define if you have the lrand48 function. */
-/* #undef HAVE_LRAND48 */
-
-/* Define if you have the lstat function. */
-/* #undef HAVE_LSTAT */
-
-/* Define if you have the madvise function. */
-/* #undef HAVE_MADVISE */
-
-/* Define if you have the memcpy function. */
-#define HAVE_MEMCPY 1
-
-/* Define if you have the memmove function. */
-#define HAVE_MEMMOVE 1
-
-/* Define if you have the mkstemp function. */
-/* #define HAVE_MKSTEMP 1 */
-
-/* Define if you have the mlockall function. */
-/* #undef HAVE_MLOCKALL */
-
-/* Define if you have the perror function. */
-#define HAVE_PERROR 1
-
-/* Define if you have the poll function. */
-/* #undef HAVE_POLL */
-
-/* Define if you have the pread function. */
-/* #undef HAVE_PREAD */
-
-/* Define if you have the pthread_attr_create function. */
-/* #undef HAVE_PTHREAD_ATTR_CREATE */
-
-/* Define if you have the pthread_attr_setprio function. */
-#define HAVE_PTHREAD_ATTR_SETPRIO 1
-
-/* Define if you have the pthread_attr_setschedparam function. */
-/* #undef HAVE_PTHREAD_ATTR_SETSCHEDPARAM */
-
-/* Define if you have the pthread_attr_setstacksize function. */
-#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
-
-/* Define if you have the pthread_condattr_create function. */
-/* #undef HAVE_PTHREAD_CONDATTR_CREATE */
-
-/* Define if you have the pthread_getsequence_np function. */
-/* #undef HAVE_PTHREAD_GETSEQUENCE_NP */
-
-/* Define if you have the pthread_init function. */
-/* #undef HAVE_PTHREAD_INIT */
-
-/* Define if you have the pthread_rwlock_rdlock function. */
-/* #undef HAVE_PTHREAD_RWLOCK_RDLOCK */
-
-/* Define if you have the pthread_setprio function. */
-#define HAVE_PTHREAD_SETPRIO 1
-
-/* Define if you have the pthread_setprio_np function. */
-/* #undef HAVE_PTHREAD_SETPRIO_NP */
-
-/* Define if you have the pthread_setschedparam function. */
-/* #undef HAVE_PTHREAD_SETSCHEDPARAM */
-
-/* Define if you have the pthread_sigmask function. */
-#define HAVE_PTHREAD_SIGMASK 1
-
-/* Define if you have the putenv function. */
-#define HAVE_PUTENV 1
-
-/* Define if you have the readlink function. */
-/* #undef HAVE_READLINK */
-
-/* Define if you have the realpath function. */
-/* #undef HAVE_REALPATH */
-
-/* Define if you have the rename function. */
-#define HAVE_RENAME 1
-
-/* Define if you have the rint function. */
-#define HAVE_RINT 1
-
-/* Define if you have the rwlock_init function. */
-/* #undef HAVE_RWLOCK_INIT */
-
-/* Define if you have the select function. */
-#define HAVE_SELECT 1
-
-/* Define if you have the setenv function. */
-/* #undef HAVE_SETENV */
-
-/* Define if you have the setlocale function. */
-#define HAVE_SETLOCALE 1
-
-/* Define if you have the setupterm function. */
-/* #undef HAVE_SETUPTERM */
-
-/* Define if you have the sighold function. */
-/* #undef HAVE_SIGHOLD */
-
-/* Define if you have the sigset function. */
-/* #undef HAVE_SIGSET */
-
-/* Define if you have the sigthreadmask function. */
-/* #undef HAVE_SIGTHREADMASK */
-
-/* Define if you have the snprintf function. */
-/* #define HAVE_SNPRINTF 1 */
-
-/* Define if you have the socket function. */
-#define HAVE_SOCKET 1
-
-/* Define if you have the stpcpy function. */
-/* #undef HAVE_STPCPY */
-
-/* Define if you have the strcasecmp function. */
-/* #undef HAVE_STRCASECMP */
-
-/* Define if you have the strcoll function. */
-#define HAVE_STRCOLL 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
-/* Define if you have the strnlen function. */
-/* #undef HAVE_STRNLEN */
-
-/* Define if you have the strpbrk function. */
-#define HAVE_STRPBRK 1
-
-/* Define if you have the strstr function. */
-#define HAVE_STRSTR 1
-
-/* Define if you have the strtok_r function. */
-/* #undef HAVE_STRTOK_R */
-
-/* Define if you have the strtol function. */
-#define HAVE_STRTOL 1
-
-/* Define if you have the strtoul function. */
-#define HAVE_STRTOUL 1
-
-/* Define if you have the strtoull function. */
-/* #undef HAVE_STRTOULL */
-
-/* Define if you have the tcgetattr function. */
-#define HAVE_TCGETATTR 1
-
-/* Define if you have the tell function. */
-#define HAVE_TELL 1
-
-/* Define if you have the tempnam function. */
-#define HAVE_TEMPNAM 1
-
-/* Define if you have the thr_setconcurrency function. */
-/* #undef HAVE_THR_SETCONCURRENCY */
-
-/* Define if you have the vidattr function. */
-/* #undef HAVE_VIDATTR */
-
-/* Define if you have the header file. */
-/* #define HAVE_ALLOCA_H 1 */
-
-/* Define if you have the header file. */
-#define HAVE_ARPA_INET_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_ASM_TERMBITS_H */
-
-/* Define if you have the header file. */
-#define HAVE_CRYPT_H 1
-
-/* Define if you have the header file. */
-/* #define HAVE_CURSES_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_DIRENT_H 1 */
-
-/* Define if you have the header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the header file. */
-#define HAVE_FLOAT_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_FLOATINGPOINT_H */
-
-/* Define if you have the header file. */
-/* #define HAVE_GRP_H 1 */
-
-/* Define if you have the header file. */
-/* #undef HAVE_IEEEFP_H */
-
-/* Define if you have the header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the header file. */
-#define HAVE_LOCALE_H 1
-
-/* Define if you have the header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_NDIR_H */
-
-/* Define if you have the header file. */
-#define HAVE_NETINET_IN_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_PATHS_H */
-
-/* Define if you have the header file. */
-/* #define HAVE_PWD_H 1 */
-
-/* Define if you have the header file. */
-/* #undef HAVE_SCHED_H */
-
-/* Define if you have the header file. */
-/* #undef HAVE_SELECT_H */
-
-/* Define if you have the header file. */
-#define HAVE_STDARG_H 1
-
-/* Define if you have the header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define if you have the header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define if you have the header file. */
-#define HAVE_STRING_H 1
-
-/* Define if you have the header file. */
-/* #define HAVE_STRINGS_H 1 */
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYNCH_H */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_DIR_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_FILE_H 1 */
-
-/* Define if you have the header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_MMAN_H */
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_NDIR_H */
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_PTE_H */
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_PTEM_H */
-
-/* Define if you have the header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define if you have the header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_STREAM_H */
-
-/* Define if you have the header file. */
-#define HAVE_SYS_TIMEB_H 1
-
-/* Define if you have the header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define if you have the header file. */
-#define HAVE_SYS_UN_H 1
-
-/* Define if you have the header file. */
-#define HAVE_SYS_UTIME_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_VADVISE_H */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_WAIT_H 1 */
-
-/* Define if you have the header file. */
-/* #undef HAVE_TERM_H */
-
-/* Define if you have the header file. */
-/* #undef HAVE_TERMBITS_H */
-
-/* Define if you have the header file. */
-/* #define HAVE_TERMCAP_H 1 */
-
-/* Define if you have the header file. */
-/* /#define HAVE_TERMIO_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_TERMIOS_H 1 */
-
-/* Define if you have the header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define if you have the header file. */
-#define HAVE_UTIME_H 1
-
-/* Define if you have the header file. */
-#define HAVE_VARARGS_H 1
-
-/* Define if you have the bind library (-lbind). */
-/* #undef HAVE_LIBBIND */
-
-/* Define if you have the c_r library (-lc_r). */
-/* #undef HAVE_LIBC_R */
-
-/* Define if you have the compat library (-lcompat). */
-/* #undef HAVE_LIBCOMPAT */
-
-/* Define if you have the crypt library (-lcrypt). */
-#define HAVE_LIBCRYPT 1
-
-/* Define if you have the dl library (-ldl). */
-#define HAVE_LIBDL 1
-
-/* Define if you have the gen library (-lgen). */
-/* #undef HAVE_LIBGEN */
-
-/* Define if you have the m library (-lm). */
-#define HAVE_LIBM 1
-
-/* Define if you have the nsl library (-lnsl). */
-/* #undef HAVE_LIBNSL */
-
-/* Define if you have the nsl_r library (-lnsl_r). */
-/* #undef HAVE_LIBNSL_R */
-
-/* Define if you have the pthread library (-lpthread). */
-/* #undef HAVE_LIBPTHREAD */
-
-/* Define if you have the socket library (-lsocket). */
-/* #undef HAVE_LIBSOCKET */
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _FILE_OFFSET_BITS */
-
-/* Define to make fseeko etc. visible, on some hosts. */
-/* #undef _LARGEFILE_SOURCE */
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _LARGE_FILES */
-
-#endif /* __CONFIG_OS2_H__ */
diff --git a/include/config-win.h b/include/config-win.h
index 14afa38c8a7..b6fb1077cc6 100644
--- a/include/config-win.h
+++ b/include/config-win.h
@@ -122,12 +122,12 @@ functions */
/* Type information */
-#if defined(__EMX__) || !defined(HAVE_UINT)
+#if !defined(HAVE_UINT)
#undef HAVE_UINT
#define HAVE_UINT
typedef unsigned short ushort;
typedef unsigned int uint;
-#endif /* defined(__EMX__) || !defined(HAVE_UINT) */
+#endif /* !defined(HAVE_UINT) */
typedef unsigned __int64 ulonglong; /* Microsofts 64 bit types */
typedef __int64 longlong;
diff --git a/include/errmsg.h b/include/errmsg.h
index 1dd5759c104..4018e3ee01d 100644
--- a/include/errmsg.h
+++ b/include/errmsg.h
@@ -29,9 +29,7 @@ extern const char *client_errors[]; /* Error messages */
#define CR_MIN_ERROR 2000 /* For easier client code */
#define CR_MAX_ERROR 2999
-#if defined(OS2) && defined(MYSQL_SERVER)
-#define CER(X) client_errors[(X)-CR_MIN_ERROR]
-#elif !defined(ER)
+#if !defined(ER)
#define ER(X) client_errors[(X)-CR_MIN_ERROR]
#endif
#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */
diff --git a/include/m_string.h b/include/m_string.h
index c02ce92cd88..e73f5c11487 100644
--- a/include/m_string.h
+++ b/include/m_string.h
@@ -34,25 +34,12 @@
/* need by my_vsnprintf */
#include
-/* Correct some things for UNIXWARE7 */
-#ifdef HAVE_UNIXWARE7_THREADS
-#undef HAVE_STRINGS_H
-#undef HAVE_MEMORY_H
-#define HAVE_MEMCPY
-#ifndef HAVE_MEMMOVE
-#define HAVE_MEMMOVE
-#endif
-#undef HAVE_BCMP
-#undef bcopy
-#undef bcmp
-#undef bzero
-#endif /* HAVE_UNIXWARE7_THREADS */
#ifdef _AIX
#undef HAVE_BCMP
#endif
/* This is needed for the definitions of bzero... on solaris */
-#if defined(HAVE_STRINGS_H) && !defined(HAVE_mit_thread)
+#if defined(HAVE_STRINGS_H)
#include
#endif
@@ -84,7 +71,7 @@
# define bmove_align(A,B,C) memcpy((A),(B),(C))
#endif
-#if defined(__cplusplus) && !defined(OS2)
+#if defined(__cplusplus)
extern "C" {
#endif
@@ -95,7 +82,7 @@ extern "C" {
extern void *(*my_str_malloc)(size_t);
extern void (*my_str_free)(void *);
-#if defined(HAVE_STPCPY) && !defined(HAVE_mit_thread)
+#if defined(HAVE_STPCPY)
#define strmov(A,B) stpcpy((A),(B))
#ifndef stpcpy
extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 */
@@ -243,7 +230,7 @@ longlong my_strtoll10(const char *nptr, char **endptr, int *error);
#ifdef HAVE_LONG_LONG
extern char *longlong2str(longlong val,char *dst,int radix);
extern char *longlong10_to_str(longlong val,char *dst,int radix);
-#if (!defined(HAVE_STRTOULL) || defined(HAVE_mit_thread)) || defined(NO_STRTOLL_PROTO)
+#if (!defined(HAVE_STRTOULL) || defined(NO_STRTOLL_PROTO))
extern longlong strtoll(const char *str, char **ptr, int base);
extern ulonglong strtoull(const char *str, char **ptr, int base);
#endif
@@ -256,7 +243,7 @@ extern int my_vsnprintf( char *str, size_t n,
const char *format, va_list ap );
extern int my_snprintf(char* to, size_t n, const char* fmt, ...);
-#if defined(__cplusplus) && !defined(OS2)
+#if defined(__cplusplus)
}
#endif
#endif
diff --git a/include/my_bitmap.h b/include/my_bitmap.h
index 8afeb1b8107..428ca7dc702 100644
--- a/include/my_bitmap.h
+++ b/include/my_bitmap.h
@@ -60,6 +60,8 @@ extern void bitmap_set_prefix(MY_BITMAP *map, uint prefix_size);
extern void bitmap_intersect(MY_BITMAP *map, const MY_BITMAP *map2);
extern void bitmap_subtract(MY_BITMAP *map, const MY_BITMAP *map2);
extern void bitmap_union(MY_BITMAP *map, const MY_BITMAP *map2);
+extern void bitmap_xor(MY_BITMAP *map, const MY_BITMAP *map2);
+extern void bitmap_invert(MY_BITMAP *map);
extern uint bitmap_lock_set_next(MY_BITMAP *map);
extern void bitmap_lock_clear_bit(MY_BITMAP *map, uint bitmap_bit);
diff --git a/include/my_global.h b/include/my_global.h
index ecee9c637c9..cd0eda8aa45 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -24,13 +24,6 @@
#define HAVE_EXTERNAL_CLIENT
#endif
-#if defined( __EMX__) && !defined( MYSQL_SERVER)
-/* moved here to use below VOID macro redefinition */
-#define INCL_BASE
-#define INCL_NOPMAPI
-#include
-#endif /* __EMX__ */
-
#ifdef __CYGWIN__
/* We use a Unix API, so pretend it's not Windows */
#undef WIN
@@ -72,8 +65,6 @@
#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)
#include
-#elif defined(OS2)
-#include
#elif defined(__NETWARE__)
#include
#include
@@ -215,10 +206,8 @@
/* The client defines this to avoid all thread code */
#if defined(UNDEF_THREADS_HACK)
#undef THREAD
-#undef HAVE_mit_thread
#undef HAVE_LINUXTHREADS
#undef HAVE_NPTL
-#undef HAVE_UNIXWARE7_THREADS
#endif
#ifdef HAVE_THREADS_WITHOUT_SOCKETS
@@ -263,7 +252,7 @@
#endif
#endif
-#if defined(THREAD) && !defined(__WIN__) && !defined(OS2)
+#if defined(THREAD) && !defined(__WIN__)
#ifndef _POSIX_PTHREAD_SEMANTICS
#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */
#endif
@@ -274,10 +263,6 @@
#if !defined(_THREAD_SAFE) && !defined(_AIX)
#define _THREAD_SAFE /* Required for OSF1 */
#endif
-#ifndef HAVE_mit_thread
-#ifdef HAVE_UNIXWARE7_THREADS
-#include
-#else
#if defined(HPUX10) || defined(HPUX11)
C_MODE_START /* HPUX needs this, signal.h bug */
#include
@@ -285,8 +270,6 @@ C_MODE_END
#else
#include /* AIX must have this included first */
#endif
-#endif /* HAVE_UNIXWARE7_THREADS */
-#endif /* HAVE_mit_thread */
#if !defined(SCO) && !defined(_REENTRANT)
#define _REENTRANT 1 /* Threads requires reentrant code */
#endif
@@ -468,9 +451,7 @@ extern "C" int madvise(void *addr, size_t len, int behav);
#define POSIX_MISTAKE 1 /* regexp: Fix stupid spec error */
#define USE_REGEX 1 /* We want the use the regex library */
/* Do not define for ultra sparcs */
-#ifndef OS2
#define USE_BMOVE512 1 /* Use this unless system bmove is faster */
-#endif
#define QUOTE_ARG(x) #x /* Quote argument (before cpp) */
#define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */
@@ -515,7 +496,7 @@ int __void__;
#define min(a, b) ((a) < (b) ? (a) : (b))
#endif
-#if defined(__EMX__) || !defined(HAVE_UINT)
+#if !defined(HAVE_UINT)
#undef HAVE_UINT
#define HAVE_UINT
typedef unsigned int uint;
@@ -618,21 +599,11 @@ C_MODE_START
typedef int (*qsort_cmp)(const void *,const void *);
typedef int (*qsort_cmp2)(void*, const void *,const void *);
C_MODE_END
-#ifdef HAVE_mit_thread
-#define qsort_t void
-#undef QSORT_TYPE_IS_VOID
-#define QSORT_TYPE_IS_VOID
-#else
#define qsort_t RETQSORTTYPE /* Broken GCC cant handle typedef !!!! */
-#endif
-#ifdef HAVE_mit_thread
-#define size_socket socklen_t /* Type of last arg to accept */
-#else
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
typedef SOCKET_SIZE_TYPE size_socket;
-#endif
#ifndef SOCKOPT_OPTLEN_TYPE
#define SOCKOPT_OPTLEN_TYPE size_socket
@@ -693,14 +664,9 @@ typedef SOCKET_SIZE_TYPE size_socket;
#define FN_DEVCHAR ':'
#ifndef FN_LIBCHAR
-#ifdef __EMX__
-#define FN_LIBCHAR '\\'
-#define FN_ROOTDIR "\\"
-#else
#define FN_LIBCHAR '/'
#define FN_ROOTDIR "/"
#endif
-#endif
#define MY_NFILE 64 /* This is only used to save filenames */
#ifndef OS_FILE_LIMIT
#define OS_FILE_LIMIT 65535
@@ -747,11 +713,7 @@ typedef SOCKET_SIZE_TYPE size_socket;
#undef remove /* Crashes MySQL on SCO 5.0.0 */
#ifndef __WIN__
-#ifdef OS2
-#define closesocket(A) soclose(A)
-#else
#define closesocket(A) close(A)
-#endif
#ifndef ulonglong2double
#define ulonglong2double(A) ((double) (ulonglong) (A))
#define my_off_t2double(A) ((double) (my_off_t) (A))
@@ -764,21 +726,10 @@ typedef SOCKET_SIZE_TYPE size_socket;
#define ulong_to_double(X) ((double) (ulong) (X))
#define SET_STACK_SIZE(X) /* Not needed on real machines */
-#if !defined(HAVE_mit_thread) && !defined(HAVE_STRTOK_R)
+#if !defined(HAVE_STRTOK_R)
#define strtok_r(A,B,C) strtok((A),(B))
#endif
-/* Remove some things that mit_thread break or doesn't support */
-#if defined(HAVE_mit_thread) && defined(THREAD)
-#undef HAVE_PREAD
-#undef HAVE_REALPATH
-#undef HAVE_MLOCK
-#undef HAVE_TEMPNAM /* Use ours */
-#undef HAVE_PTHREAD_SETPRIO
-#undef HAVE_FTRUNCATE
-#undef HAVE_READLINK
-#endif
-
/* This is from the old m-machine.h file */
#if SIZEOF_LONG_LONG > 4
@@ -960,7 +911,7 @@ typedef ulonglong my_off_t;
typedef unsigned long my_off_t;
#endif
#define MY_FILEPOS_ERROR (~(my_off_t) 0)
-#if !defined(__WIN__) && !defined(OS2)
+#if !defined(__WIN__)
typedef off_t os_off_t;
#endif
@@ -973,16 +924,6 @@ typedef off_t os_off_t;
#define SOCKET_EADDRINUSE WSAEADDRINUSE
#define SOCKET_ENFILE ENFILE
#define SOCKET_EMFILE EMFILE
-#elif defined(OS2)
-#define socket_errno sock_errno()
-#define SOCKET_EINTR SOCEINTR
-#define SOCKET_EAGAIN SOCEINPROGRESS
-#define SOCKET_ETIMEDOUT SOCKET_EINTR
-#define SOCKET_EWOULDBLOCK SOCEWOULDBLOCK
-#define SOCKET_EADDRINUSE SOCEADDRINUSE
-#define SOCKET_ENFILE SOCENFILE
-#define SOCKET_EMFILE SOCEMFILE
-#define closesocket(A) soclose(A)
#else /* Unix */
#define socket_errno errno
#define closesocket(A) close(A)
diff --git a/include/my_net.h b/include/my_net.h
index 71914964e46..f953a832e6b 100644
--- a/include/my_net.h
+++ b/include/my_net.h
@@ -53,12 +53,6 @@ C_MODE_START
#endif
#endif
-#if defined(__EMX__)
-#include
-#define ioctlsocket(A,B,C) ioctl((A),(B),(void *)(C),sizeof(*(C)))
-#undef HAVE_FCNTL
-#endif /* defined(__EMX__) */
-
#if defined(MSDOS) || defined(__WIN__)
#define O_NONBLOCK 1 /* For emulation of fcntl() */
#endif
diff --git a/include/my_no_pthread.h b/include/my_no_pthread.h
index 5691de08783..c47da5b1978 100644
--- a/include/my_no_pthread.h
+++ b/include/my_no_pthread.h
@@ -26,11 +26,7 @@
even in non-threaded builds.
Case in point: 'mf_keycache.c'
*/
-#if defined(__WIN__) || defined(OS2)
-
-#elif defined(HAVE_UNIXWARE7_THREADS)
-/* #include Currently, not relevant. Enable if needed. */
-
+#if defined(__WIN__)
#else /* Normal threads */
#include
diff --git a/include/my_pthread.h b/include/my_pthread.h
index 9146cab8589..acd1d2b558b 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -31,19 +31,9 @@ extern "C" {
#define EXTERNC
#endif /* __cplusplus */
-#if defined(__WIN__) || defined(OS2)
+#if defined(__WIN__)
-#ifdef OS2
-typedef ULONG HANDLE;
-typedef ULONG DWORD;
-typedef int sigset_t;
-#endif
-
-#ifdef OS2
-typedef HMTX pthread_mutex_t;
-#else
typedef CRITICAL_SECTION pthread_mutex_t;
-#endif
typedef HANDLE pthread_t;
typedef struct thread_attr {
DWORD dwStackSize ;
@@ -62,30 +52,19 @@ typedef struct st_pthread_link {
typedef struct {
uint32 waiting;
-#ifdef OS2
- HEV semaphore;
-#else
HANDLE semaphore;
-#endif
} pthread_cond_t;
-#ifndef OS2
struct timespec { /* For pthread_cond_timedwait() */
time_t tv_sec;
long tv_nsec;
};
-#endif
typedef int pthread_mutexattr_t;
#define win_pthread_self my_thread_var->pthread_self
-#ifdef OS2
-#define pthread_handler_t EXTERNC void * _Optlink
-typedef void * (_Optlink *pthread_handler)(void *);
-#else
#define pthread_handler_t EXTERNC void * __cdecl
typedef void * (__cdecl *pthread_handler)(void *);
-#endif
void win_pthread_init(void);
int win_pthread_setspecific(void *A,void *B,uint length);
@@ -107,10 +86,8 @@ struct tm *gmtime_r(const time_t *timep,struct tm *tmp);
void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/
-#ifndef OS2
#define ETIMEDOUT 145 /* Win32 doesn't have this */
#define getpid() GetCurrentThreadId()
-#endif
#define pthread_self() win_pthread_self
#define HAVE_LOCALTIME_R 1
#define _REENTRANT 1
@@ -145,15 +122,6 @@ void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/
#endif /* USE_TLS */
#define pthread_equal(A,B) ((A) == (B))
-#ifdef OS2
-extern int pthread_mutex_init (pthread_mutex_t *, const pthread_mutexattr_t *);
-extern int pthread_mutex_lock (pthread_mutex_t *);
-extern int pthread_mutex_unlock (pthread_mutex_t *);
-extern int pthread_mutex_destroy (pthread_mutex_t *);
-#define my_pthread_setprio(A,B) DosSetPriority(PRTYS_THREAD,PRTYC_NOCHANGE, B, A)
-#define pthread_kill(A,B) raise(B)
-#define pthread_exit(A) pthread_dummy()
-#else
#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0)
#define pthread_mutex_lock(A) (EnterCriticalSection(A),0)
#define pthread_mutex_trylock(A) (WaitForSingleObject((A), 0) == WAIT_TIMEOUT)
@@ -161,7 +129,6 @@ extern int pthread_mutex_destroy (pthread_mutex_t *);
#define pthread_mutex_destroy(A) DeleteCriticalSection(A)
#define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B))
#define pthread_kill(A,B) pthread_dummy(0)
-#endif /* OS2 */
/* Dummy defines for easier code */
#define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
@@ -175,68 +142,6 @@ extern int pthread_mutex_destroy (pthread_mutex_t *);
/*#define my_pthread_getprio(pthread_t thread_id) pthread_dummy(0) */
#define my_pthread_getprio(thread_id) pthread_dummy(0)
-#elif defined(HAVE_UNIXWARE7_THREADS)
-
-#include
-#include
-
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#define HAVE_NONPOSIX_SIGWAIT
-#define pthread_t thread_t
-#define pthread_cond_t cond_t
-#define pthread_mutex_t mutex_t
-#define pthread_key_t thread_key_t
-typedef int pthread_attr_t; /* Needed by Unixware 7.0.0 */
-
-#define pthread_key_create(A,B) thr_keycreate((A),(B))
-#define pthread_key_delete(A) thr_keydelete(A)
-
-#define pthread_handler_t EXTERNC void *
-#define pthread_key(T,V) pthread_key_t V
-
-void * my_pthread_getspecific_imp(pthread_key_t key);
-#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B))
-#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,V)
-
-#define pthread_setspecific(A,B) thr_setspecific(A,B)
-#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,V)
-
-#define pthread_create(A,B,C,D) thr_create(NULL,65536L,(C),(D),THR_DETACHED,(A))
-#define pthread_cond_init(a,b) cond_init((a),USYNC_THREAD,NULL)
-#define pthread_cond_destroy(a) cond_destroy(a)
-#define pthread_cond_signal(a) cond_signal(a)
-#define pthread_cond_wait(a,b) cond_wait((a),(b))
-#define pthread_cond_timedwait(a,b,c) cond_timedwait((a),(b),(c))
-#define pthread_cond_broadcast(a) cond_broadcast(a)
-
-#define pthread_mutex_init(a,b) mutex_init((a),USYNC_THREAD,NULL)
-#define pthread_mutex_lock(a) mutex_lock(a)
-#define pthread_mutex_unlock(a) mutex_unlock(a)
-#define pthread_mutex_destroy(a) mutex_destroy(a)
-
-#define pthread_self() thr_self()
-#define pthread_exit(A) thr_exit(A)
-#define pthread_equal(A,B) (((A) == (B)) ? 1 : 0)
-#define pthread_kill(A,B) thr_kill((A),(B))
-#define HAVE_PTHREAD_KILL
-
-#define pthread_sigmask(A,B,C) thr_sigsetmask((A),(B),(C))
-
-extern int my_sigwait(const sigset_t *set,int *sig);
-
-#define pthread_detach_this_thread() pthread_dummy(0)
-
-#define pthread_attr_init(A) pthread_dummy(0)
-#define pthread_attr_destroy(A) pthread_dummy(0)
-#define pthread_attr_setscope(A,B) pthread_dummy(0)
-#define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
-#define my_pthread_setprio(A,B) pthread_dummy (0)
-#define my_pthread_getprio(A) pthread_dummy (0)
-#define my_pthread_attr_setprio(A,B) pthread_dummy(0)
-
#else /* Normal threads */
#ifdef HAVE_rts_threads
@@ -257,9 +162,6 @@ extern int my_sigwait(const sigset_t *set,int *sig);
#ifdef HAVE_SYNCH_H
#include
#endif
-#if defined(__EMX__) && (!defined(EMX_PTHREAD_REV) || (EMX_PTHREAD_REV < 2))
-#error Requires at least rev 2 of EMX pthreads library.
-#endif
#ifdef __NETWARE__
void my_pthread_exit(void *status);
@@ -285,21 +187,6 @@ extern int my_pthread_create_detached;
#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL
#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL
#define USE_ALARM_THREAD
-#elif defined(HAVE_mit_thread)
-#define USE_ALARM_THREAD
-#undef HAVE_LOCALTIME_R
-#define HAVE_LOCALTIME_R
-#undef HAVE_GMTIME_R
-#define HAVE_GMTIME_R
-#undef HAVE_PTHREAD_ATTR_SETSCOPE
-#define HAVE_PTHREAD_ATTR_SETSCOPE
-#undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE /* If we are running linux */
-#undef HAVE_RWLOCK_T
-#undef HAVE_RWLOCK_INIT
-#undef HAVE_PTHREAD_RWLOCK_RDLOCK
-#undef HAVE_SNPRINTF
-
-#define my_pthread_attr_setprio(A,B)
#endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */
#if defined(_BSDI_VERSION) && _BSDI_VERSION < 199910
@@ -327,7 +214,7 @@ extern int my_pthread_cond_init(pthread_cond_t *mp,
#define pthread_sigmask(A,B,C) sigthreadmask((A),(B),(C))
#endif
-#if !defined(HAVE_SIGWAIT) && !defined(HAVE_mit_thread) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX)
+#if !defined(HAVE_SIGWAIT) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX)
int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */
#endif
@@ -382,15 +269,12 @@ extern int my_pthread_cond_timedwait(pthread_cond_t *cond,
#define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C))
#endif
-#if defined(OS2)
-#define my_pthread_getspecific(T,A) ((T) &(A))
-#define pthread_setspecific(A,B) win_pthread_setspecific(&(A),(B),sizeof(A))
-#elif !defined( HAVE_NONPOSIX_PTHREAD_GETSPECIFIC)
+#if !defined( HAVE_NONPOSIX_PTHREAD_GETSPECIFIC)
#define my_pthread_getspecific(A,B) ((A) pthread_getspecific(B))
#else
#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B))
void *my_pthread_getspecific_imp(pthread_key_t key);
-#endif /* OS2 */
+#endif
#ifndef HAVE_LOCALTIME_R
struct tm *localtime_r(const time_t *clock, struct tm *res);
diff --git a/include/my_sys.h b/include/my_sys.h
index 26bf31ae10d..51883e8d6f9 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -608,6 +608,7 @@ extern File my_sopen(const char *path, int oflag, int shflag, int pmode);
#define my_access access
#endif
extern int check_if_legal_filename(const char *path);
+extern int check_if_legal_tablename(const char *path);
#ifndef TERMINATE
extern void TERMINATE(FILE *file);
diff --git a/include/mysql.h b/include/mysql.h
index 925a4525378..6217ce631b5 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -409,6 +409,7 @@ MYSQL * STDCALL mysql_init(MYSQL *mysql);
my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
const char *cert, const char *ca,
const char *capath, const char *cipher);
+const char * STDCALL mysql_get_ssl_cipher(MYSQL *mysql);
my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
const char *passwd, const char *db);
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
diff --git a/include/thr_alarm.h b/include/thr_alarm.h
index 7a10d6886ce..c49bc2588d1 100644
--- a/include/thr_alarm.h
+++ b/include/thr_alarm.h
@@ -73,14 +73,6 @@ typedef struct st_thr_alarm_entry
rf_SetTimer crono;
} thr_alarm_entry;
-#elif defined(__EMX__) || defined(OS2)
-
-typedef struct st_thr_alarm_entry
-{
- uint crono;
- uint event;
-} thr_alarm_entry;
-
#else /* System with posix threads */
typedef int thr_alarm_entry;
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index a641bdf2f10..c2d98a81042 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -85,6 +85,7 @@ DEFS = -DDEFAULT_CHARSET_HOME="\"$(MYSQLBASEdir)\"" \
-DDATADIR="\"$(MYSQLDATAdir)\"" \
-DDEFAULT_HOME_ENV=MYSQL_HOME \
-DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX \
+ -DDEFAULT_SYSCONFDIR="\"$(sysconfdir)\"" \
-DSHAREDIR="\"$(MYSQLSHAREdir)\"" $(target_defs)
if HAVE_YASSL
diff --git a/libmysql/dll.c b/libmysql/dll.c
index b0e4b9cab3b..f5db0bb4669 100644
--- a/libmysql/dll.c
+++ b/libmysql/dll.c
@@ -112,26 +112,3 @@ int _export FAR PASCAL libmain(HANDLE hModule,short cbHeapSize,
}
#endif
-
-#ifdef OS2
-
-/*
- This function is called automatically by _DLL_InitTerm
- Every dll runtime enviroment is not tz enabled, so tzset()
- must be called to enable TZ handling
- Also timezone is fixed.
-*/
-
-extern "C" unsigned long _System DllMain(unsigned long modhandle,
- unsigned long flag)
-{
- if (flag == 0) {
- tzset(); /* Set tzname */
- time_t currentTime = time(NULL);
- struct tm *ts = localtime(¤tTime);
- if (ts->tm_isdst > 0)
- _timezone -= 3600;
- }
-}
-
-#endif
diff --git a/libmysql/get_password.c b/libmysql/get_password.c
index e55e77320f0..a48cb6d7a6e 100644
--- a/libmysql/get_password.c
+++ b/libmysql/get_password.c
@@ -36,7 +36,7 @@
#include
#endif /* HAVE_PWD_H */
#else /* ! HAVE_GETPASS */
-#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
+#if !defined(__WIN__) && !defined(__NETWARE__)
#include
#ifdef HAVE_TERMIOS_H /* For tty-password */
#include
@@ -65,7 +65,7 @@
#define getpass(A) getpassphrase(A)
#endif
-#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
+#if defined( __WIN__) || defined(__NETWARE__)
/* were just going to fake it here and get input from the keyboard */
#ifdef __NETWARE__
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index 3406d606692..b750e9cc4b2 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -739,7 +739,7 @@ void read_user_name(char *name)
strmake(name, str ? str : "UNKNOWN_USER", USERNAME_LENGTH);
}
-#elif !defined(MSDOS) && ! defined(VMS) && !defined(__WIN__) && !defined(OS2)
+#elif !defined(MSDOS) && ! defined(VMS) && !defined(__WIN__)
void read_user_name(char *name)
{
diff --git a/libmysql/libmysql.def b/libmysql/libmysql.def
index a469c67c466..cf45e20a697 100644
--- a/libmysql/libmysql.def
+++ b/libmysql/libmysql.def
@@ -65,6 +65,7 @@ EXPORTS
mysql_get_proto_info
mysql_get_server_info
mysql_get_client_version
+ mysql_get_ssl_cipher
mysql_info
mysql_init
mysql_insert_id
diff --git a/libmysql/manager.c b/libmysql/manager.c
index 631bfa26cb2..a88c63123b0 100644
--- a/libmysql/manager.c
+++ b/libmysql/manager.c
@@ -35,9 +35,7 @@
#include
#include
-#if defined(OS2)
-# include
-#elif defined(__NETWARE__)
+#if defined(__NETWARE__)
#include
#include
#include
diff --git a/libmysql/mytest.c b/libmysql/mytest.c
index a1dc13db39f..e1acf3e2136 100644
--- a/libmysql/mytest.c
+++ b/libmysql/mytest.c
@@ -1,54 +1,103 @@
/*C4*/
+
/****************************************************************/
+
/* Author: Jethro Wright, III TS : 3/ 4/1998 9:15 */
+
/* Date: 02/18/1998 */
+
/* mytest.c : do some testing of the libmySQL.DLL.... */
+
/* */
+
/* History: */
+
/* 02/18/1998 jw3 also sprach zarathustra.... */
+
/****************************************************************/
+
+
+
#include
+
#include
+
#include
+
+
#include
+
+
#define DEFALT_SQL_STMT "SELECT * FROM db"
+
#ifndef offsetof
+
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+
#endif
+
+
+
/********************************************************
+
**
+
** main :-
+
**
+
********************************************************/
+
+
int
+
main( int argc, char * argv[] )
+
{
+
+
char szSQL[ 200 ], aszFlds[ 25 ][ 25 ], szDB[ 50 ] ;
+
const char *pszT;
int i, j, k, l, x ;
+
MYSQL * myData ;
+
MYSQL_RES * res ;
+
MYSQL_FIELD * fd ;
+
MYSQL_ROW row ;
+
+
//....just curious....
+
printf( "sizeof( MYSQL ) == %d\n", (int) sizeof( MYSQL ) ) ;
if ( argc == 2 )
+
{
+
strcpy( szDB, argv[ 1 ] ) ;
+
strcpy( szSQL, DEFALT_SQL_STMT ) ;
+
if (!strcmp(szDB,"--debug"))
+
{
+
strcpy( szDB, "mysql" ) ;
+
printf("Some mysql struct information (size and offset):\n");
+
printf("net:\t%3d %3d\n",(int) sizeof(myData->net),
(int) offsetof(MYSQL,net));
printf("host:\t%3d %3d\n",(int) sizeof(myData->host),
@@ -75,101 +124,199 @@ main( int argc, char * argv[] )
printf("options:\t%3d %3d\n",(int) sizeof(myData->options),
(int) offsetof(MYSQL,options));
puts("");
+
}
+
}
+
else if ( argc > 2 ) {
+
strcpy( szDB, argv[ 1 ] ) ;
+
strcpy( szSQL, argv[ 2 ] ) ;
+
}
+
else {
+
strcpy( szDB, "mysql" ) ;
+
strcpy( szSQL, DEFALT_SQL_STMT ) ;
+
}
+
//....
+
+
if ( (myData = mysql_init((MYSQL*) 0)) &&
+
mysql_real_connect( myData, NULL, NULL, NULL, NULL, MYSQL_PORT,
+
NULL, 0 ) )
+
{
+
myData->reconnect= 1;
if ( mysql_select_db( myData, szDB ) < 0 ) {
+
printf( "Can't select the %s database !\n", szDB ) ;
+
mysql_close( myData ) ;
+
return 2 ;
+
}
+
}
+
else {
+
printf( "Can't connect to the mysql server on port %d !\n",
+
MYSQL_PORT ) ;
+
mysql_close( myData ) ;
+
return 1 ;
+
}
+
//....
+
if ( ! mysql_query( myData, szSQL ) ) {
+
res = mysql_store_result( myData ) ;
+
i = (int) mysql_num_rows( res ) ; l = 1 ;
+
printf( "Query: %s\nNumber of records found: %ld\n", szSQL, i ) ;
+
//....we can get the field-specific characteristics here....
+
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
+
strcpy( aszFlds[ x ], fd->name ) ;
+
//....
+
while ( row = mysql_fetch_row( res ) ) {
+
j = mysql_num_fields( res ) ;
+
printf( "Record #%ld:-\n", l++ ) ;
+
for ( k = 0 ; k < j ; k++ )
+
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
+
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
+
puts( "==============================\n" ) ;
+
}
+
mysql_free_result( res ) ;
+
}
+
else printf( "Couldn't execute %s on the server !\n", szSQL ) ;
+
//....
+
puts( "==== Diagnostic info ====" ) ;
+
pszT = mysql_get_client_info() ;
+
printf( "Client info: %s\n", pszT ) ;
+
//....
+
pszT = mysql_get_host_info( myData ) ;
+
printf( "Host info: %s\n", pszT ) ;
+
//....
+
pszT = mysql_get_server_info( myData ) ;
+
printf( "Server info: %s\n", pszT ) ;
+
//....
+
res = mysql_list_processes( myData ) ; l = 1 ;
+
if (res)
+
{
+
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
+
strcpy( aszFlds[ x ], fd->name ) ;
+
while ( row = mysql_fetch_row( res ) ) {
+
j = mysql_num_fields( res ) ;
+
printf( "Process #%ld:-\n", l++ ) ;
+
for ( k = 0 ; k < j ; k++ )
+
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
+
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
+
puts( "==============================\n" ) ;
+
}
+
}
+
else
+
{
+
printf("Got error %s when retreiving processlist\n",mysql_error(myData));
+
}
+
//....
+
res = mysql_list_tables( myData, "%" ) ; l = 1 ;
+
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
+
strcpy( aszFlds[ x ], fd->name ) ;
+
while ( row = mysql_fetch_row( res ) ) {
+
j = mysql_num_fields( res ) ;
+
printf( "Table #%ld:-\n", l++ ) ;
+
for ( k = 0 ; k < j ; k++ )
+
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
+
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
+
puts( "==============================\n" ) ;
+
}
+
//....
+
pszT = mysql_stat( myData ) ;
+
puts( pszT ) ;
+
//....
+
mysql_close( myData ) ;
+
return 0 ;
+
+
}
+
diff --git a/libmysql_r/Makefile.am b/libmysql_r/Makefile.am
index d28f31b2258..a1ccbca48e5 100644
--- a/libmysql_r/Makefile.am
+++ b/libmysql_r/Makefile.am
@@ -29,8 +29,6 @@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
## automake barfs if you don't use $(srcdir) or $(top_srcdir) in include
include $(top_srcdir)/libmysql/Makefile.shared
-libmysql_dir = $(top_srcdir)/libmysql
-
libmysqlclient_r_la_SOURCES = $(target_sources)
libmysqlclient_r_la_LIBADD = $(target_libadd) $(yassl_las)
libmysqlclient_r_la_LDFLAGS = $(target_ldflags)
@@ -38,7 +36,12 @@ libmysqlclient_r_la_LDFLAGS = $(target_ldflags)
# This is called from the toplevel makefile
link_sources:
set -x; \
- for f in `cd $(libmysql_dir) && echo *.[ch]`; do \
+ for f in `cd $(top_srcdir)/libmysql && echo *.[ch]`; do \
rm -f $$f; \
- @LN_CP_F@ $(libmysql_dir)/$$f $$f; \
+ @LN_CP_F@ $(top_srcdir)/libmysql/$$f $$f; \
done
+ for f in `cd $(top_builddir)/libmysql && echo *.[ch]`; do \
+ rm -f $$f; \
+ @LN_CP_F@ $(top_builddir)/libmysql/$$f $$f; \
+ done
+
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index 961eea21d2a..a869a3ccfe9 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -136,12 +136,21 @@ else
then \
$(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \
else \
+ current_dir=`pwd`; \
+ rm -rf tmp; mkdir tmp; \
(for arc in ./libmysqld_int.a $(INC_LIB); do \
- arpath=`echo $$arc|sed 's|[^/]*$$||'`; \
- $(AR) t $$arc|xargs -n 1 find $$arpath -name; \
- $(AR) t $$arc|xargs -n 1 find `dirname $$arpath` -path \*/`basename $$arpath`/\* -name; \
+ arpath=`echo $$arc|sed 's|[^/]*$$||'|sed 's|\.libs/$$||'`; \
+ artmp=`echo $$arc|sed 's|^.*/|tmp/lib-|'`; \
+ for F in `$(AR) t $$arc`; do \
+ if test -e "$$arpath/$$F" ; then echo "$$arpath/$$F"; else \
+ mkdir $$artmp; cd $$artmp > /dev/null; \
+ $(AR) x ../../$$arc; \
+ cd $$current_dir > /dev/null; \
+ ls $$artmp/*; \
+ continue 2; fi; done; \
done; echo $(libmysqld_a_DEPENDENCIES) ) | sort -u | xargs $(AR) cq libmysqld.a ; \
$(RANLIB) libmysqld.a ; \
+ rm -rf tmp; \
fi
endif
diff --git a/libmysqld/cmakelists.txt b/libmysqld/cmakelists.txt
index a11a0dffd33..8bd0e0baa32 100644
--- a/libmysqld/cmakelists.txt
+++ b/libmysqld/cmakelists.txt
@@ -20,6 +20,10 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/zlib
)
+SET_SOURCE_FILES_PROPERTIES(${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
+ ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h
+ PROPERTIES GENERATED 1)
+
ADD_LIBRARY(mysqldemb emb_qcache.cc libmysqld.c lib_sql.cc
../client/get_password.c ../libmysql/errmsg.c
../libmysql/libmysql.c ../sql/password.c ../sql-common/client.c
@@ -54,11 +58,13 @@ ADD_LIBRARY(mysqldemb emb_qcache.cc libmysqld.c lib_sql.cc
../sql/sql_show.cc ../sql/sql_state.c ../sql/sql_string.cc
../sql/sql_tablespace.cc ../sql/sql_table.cc ../sql/sql_test.cc
../sql/sql_trigger.cc ../sql/sql_udf.cc ../sql/sql_union.cc
- ../sql/sql_update.cc ../sql/sql_view.cc ../sql/sql_yacc.cc
+ ../sql/sql_update.cc ../sql/sql_view.cc
../sql/strfunc.cc ../sql/table.cc ../sql/thr_malloc.cc
../sql/time.cc ../sql/tztime.cc ../sql/uniques.cc ../sql/unireg.cc
../sql/partition_info.cc ../vio/vio.c
- ../vio/viosocket.c ../vio/viossl.c ../vio/viosslfactories.c)
+ ../vio/viosocket.c ../vio/viossl.c ../vio/viosslfactories.c
+ ${PROJECT_SOURCE_DIR}/sql/sql_yacc.cc
+ ${PROJECT_SOURCE_DIR}/sql/sql_yacc.h)
# Seems we cannot make a library without at least one source file. So use a
# dummy empty file
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 70022d526a5..9e763df8a0a 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -274,7 +274,6 @@ static int emb_stmt_execute(MYSQL_STMT *stmt)
{
DBUG_ENTER("emb_stmt_execute");
char header[5];
- MYSQL_DATA *res;
THD *thd;
int4store(header, stmt->stmt_id);
@@ -1033,7 +1032,6 @@ void Protocol_simple::prepare_for_resend()
data->embedded_info->prev_ptr= &cur->next;
next_field=cur->data;
next_mysql_field= data->embedded_info->fields_list;
-err:
DBUG_VOID_RETURN;
}
diff --git a/libmysqld/libmysqld.def b/libmysqld/libmysqld.def
index 8b930c1ba1e..0d7eae9cade 100644
--- a/libmysqld/libmysqld.def
+++ b/libmysqld/libmysqld.def
@@ -59,6 +59,7 @@ EXPORTS
mysql_get_host_info
mysql_get_proto_info
mysql_get_server_info
+ mysql_get_ssl_cipher
mysql_info
mysql_init
mysql_insert_id
diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am
index 067435f0189..8ddf7668844 100644
--- a/mysql-test/Makefile.am
+++ b/mysql-test/Makefile.am
@@ -27,14 +27,12 @@ EXTRA_DIST = $(EXTRA_SCRIPTS)
GENSCRIPTS = mysql-test-run install_test_db
PRESCRIPTS = mysql-test-run.pl
test_SCRIPTS = $(GENSCRIPTS) $(PRESCRIPTS)
-test_DATA = std_data/client-key.pem std_data/client-cert.pem std_data/cacert.pem \
- std_data/server-cert.pem std_data/server-key.pem
-CLEANFILES = $(GENSCRIPTS) $(test_DATA)
+test_DATA = std_data/client-key.pem std_data/client-cert.pem \
+ std_data/cacert.pem std_data/server-cert.pem \
+ std_data/server-key.pem
+CLEANFILES = $(GENSCRIPTS)
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I..
-EXTRA_PROGRAMS = mysql_test_run_new
-noinst_HEADERS = my_manage.h
-mysql_test_run_new_SOURCES= mysql_test_run_new.c my_manage.c my_create_tables.c
dist-hook:
@@ -106,17 +104,6 @@ install-data-local:
uninstall-local:
@RM@ -f -r $(DESTDIR)$(testdir)
-std_data/client-key.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/client-cert.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/cacert.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/server-cert.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-std_data/server-key.pem:
- @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
-
SUFFIXES = .sh
.sh:
diff --git a/mysql-test/extra/rpl_tests/rpl_ddl.test b/mysql-test/extra/rpl_tests/rpl_ddl.test
index 0d9f390531f..4aab45db18b 100644
--- a/mysql-test/extra/rpl_tests/rpl_ddl.test
+++ b/mysql-test/extra/rpl_tests/rpl_ddl.test
@@ -507,4 +507,5 @@ DROP DATABASE IF EXISTS mysqltest2;
DROP DATABASE IF EXISTS mysqltest3;
--enable_warnings
+-- source include/master-slave-end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_log.test b/mysql-test/extra/rpl_tests/rpl_log.test
index 0c638281ecb..116bdd1028e 100644
--- a/mysql-test/extra/rpl_tests/rpl_log.test
+++ b/mysql-test/extra/rpl_tests/rpl_log.test
@@ -77,6 +77,11 @@ connection slave;
# to go into the relay log (the master always sends a fake one when replication
# starts).
start slave;
+#
+# This is timing out in pushbuild and should be changed to use
+# wait_slave_status.inc
+#
+sleep 2;
sync_with_master;
flush logs;
stop slave;
diff --git a/mysql-test/extra/rpl_tests/rpl_ndb_2multi_eng.test b/mysql-test/extra/rpl_tests/rpl_ndb_2multi_eng.test
index 014a72db30e..7f19245c0b9 100644
--- a/mysql-test/extra/rpl_tests/rpl_ndb_2multi_eng.test
+++ b/mysql-test/extra/rpl_tests/rpl_ndb_2multi_eng.test
@@ -51,8 +51,8 @@ SHOW CREATE TABLE t1;
# Okay lets see how it holds up to table changes
--echo --- Check that simple Alter statements are replicated correctly --
-ALTER TABLE t1 MODIFY vc TEXT;
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
+ALTER TABLE t1 MODIFY vc TEXT;
--echo --- Show the new improved table on the master ---
@@ -117,6 +117,7 @@ SHOW CREATE TABLE t1;
--echo --- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(t,id);
ALTER TABLE t1 MODIFY vc TEXT;
--echo --- Show the new improved table on the master ---
@@ -183,6 +184,7 @@ SHOW CREATE TABLE t1;
--echo --- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(id);
ALTER TABLE t1 MODIFY vc TEXT;
--echo --- Show the new improved table on the master ---
@@ -239,6 +241,7 @@ SHOW CREATE TABLE t1;
--echo --- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(t,id);
ALTER TABLE t1 MODIFY vc TEXT;
--echo --- Show the new improved table on the master ---
diff --git a/mysql-test/extra/rpl_tests/rpl_row_UUID.test b/mysql-test/extra/rpl_tests/rpl_row_UUID.test
index d1d6178773b..962572d3aec 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_UUID.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_UUID.test
@@ -80,3 +80,4 @@ DROP TABLE test.t2;
# be removed at next testsuite run.
# End of 5.0 test case
+-- source include/master-slave-end.inc
diff --git a/mysql-test/extra/rpl_tests/rpl_row_blob.test b/mysql-test/extra/rpl_tests/rpl_row_blob.test
index 14449e0a018..75a2dc2cf9e 100644
--- a/mysql-test/extra/rpl_tests/rpl_row_blob.test
+++ b/mysql-test/extra/rpl_tests/rpl_row_blob.test
@@ -183,3 +183,9 @@ connection master;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
+# ensure cleanup on slave as well:
+# ndb blob tables consist of several tables
+# if cluster is shutdown while not all tables are
+# properly dropped, the table becomes inconsistent
+# and wrecks later test cases
+--sync_slave_with_master
diff --git a/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test b/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
index 57b74c80b58..3b6fe7a0ef4 100644
--- a/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
+++ b/mysql-test/extra/rpl_tests/rpl_sv_relay_space.test
@@ -14,20 +14,22 @@ source include/master-slave.inc;
#
SHOW VARIABLES LIKE 'relay_log_space_limit';
+# Matz says: I have no idea what this is supposed to test, but it has
+# potential for generating different results with some storage engines
+# that process rows in an order not dependent on the insertion order.
+# For instance, I would assume that distributed storage engines (like
+# NDB) could process rows based on locality.
+
eval CREATE TABLE t1 (name varchar(64), age smallint(3))ENGINE=$engine_type;
-INSERT INTO t1 SET name='Andy', age=31;
-INSERT t1 SET name='Jacob', age=2;
-INSERT into t1 SET name='Caleb', age=1;
+INSERT INTO t1 SET name='Andy', age=31;
+INSERT INTO t1 SET name='Jacob', age=2;
+INSERT INTO t1 SET name='Caleb', age=1;
ALTER TABLE t1 ADD id int(8) ZEROFILL AUTO_INCREMENT PRIMARY KEY;
SELECT * FROM t1 ORDER BY id;
-save_master_pos;
-connection slave;
-sync_with_master;
+sync_slave_with_master;
SELECT * FROM t1 ORDER BY id;
connection master;
-drop table t1;
-save_master_pos;
-connection slave;
-sync_with_master;
+DROP TABLE t1;
+sync_slave_with_master;
# End of 4.1 tests
diff --git a/mysql-test/include/drop-on-restart.inc b/mysql-test/include/drop-on-restart.inc
deleted file mode 100644
index af1d0d893e0..00000000000
--- a/mysql-test/include/drop-on-restart.inc
+++ /dev/null
@@ -1,467 +0,0 @@
-#
-# Stupid temporary way of cleaning up when restarting the server
-#
-
---disable_warnings
---disable_query_log
-
-drop database if exists BANK;
-drop database if exists MySQLTest;
-drop database if exists MySQLtesT;
-drop database if exists TEST_DB;
-drop database if exists `#mysql50#testdb-1`;
-drop database if exists `TEST_$1`;
-drop database if exists `drop-temp+table-test`;
-drop database if exists `test_$1`;
-drop database if exists `testdb-1`;
-drop database if exists `testdb1`;
-drop database if exists client_test_db;
-drop database if exists d1;
-drop database if exists d2;
-drop database if exists db1;
-drop database if exists db1_secret;
-drop database if exists db2;
-drop database if exists federated;
-drop database if exists mysqldump_test_db;
-drop database if exists mysqlslap;
-drop database if exists mysqltest1;
-drop database if exists mysqltest2;
-drop database if exists mysqltest3;
-drop database if exists mysqltest;
-drop database if exists mysqltest;
-drop database if exists mysqltest_1;
-drop database if exists mysqltest_LC2;
-drop database if exists mysqltest_bob;
-drop database if exists mysqltest_db1;
-drop database if exists mysqltest_prometheus;
-drop database if exists mysqltest_sisyfos;
-drop database if exists ndbsynctest;
-drop database if exists ndbtest1;
-drop database if exists rewrite;
-drop database if exists test2;
-drop database if exists test_only_ndb_tables;
-drop database if exists test_test;
-drop database if exists testdb1;
-drop database if exists testtets;
-
-drop function if exists append;
-drop function if exists bug10015_1;
-drop function if exists bug10015_2;
-drop function if exists bug10015_3;
-drop function if exists bug10015_4;
-drop function if exists bug10015_5;
-drop function if exists bug10015_6;
-drop function if exists bug10015_7;
-drop function if exists bug10055;
-drop function if exists bug10100f;
-drop function if exists bug11394;
-drop function if exists bug11394_1;
-drop function if exists bug11394_2;
-drop function if exists bug11554;
-drop function if exists bug11555_1;
-drop function if exists bug11555_2;
-drop function if exists bug11834_1;
-drop function if exists bug11834_2;
-drop function if exists bug12379;
-drop function if exists bug12712;
-drop function if exists bug12812;
-drop function if exists bug12953;
-drop function if exists bug12995;
-drop function if exists bug13012;
-drop function if exists bug131333;
-drop function if exists bug13825_0;
-drop function if exists bug13825_1;
-drop function if exists bug13825_2;
-drop function if exists bug13825_3;
-drop function if exists bug13825_4;
-drop function if exists bug13825_5;
-drop function if exists bug13941;
-drop function if exists bug14233;
-drop function if exists bug14270;
-drop function if exists bug14723;
-drop function if exists bug2267_4;
-drop function if exists bug2564_3;
-drop function if exists bug2564_4;
-drop function if exists bug2674;
-drop function if exists bug2772;
-drop function if exists bug3132;
-drop function if exists bug4487;
-drop function if exists bug5240;
-drop function if exists bug5278;
-drop function if exists bug5893;
-drop function if exists bug6022;
-drop function if exists bug7049_1;
-drop function if exists bug7049_2;
-drop function if exists bug7648;
-drop function if exists bug8408_f;
-drop function if exists bug8409;
-drop function if exists bug8861;
-drop function if exists bug9048;
-drop function if exists bug9056_func1;
-drop function if exists bug9056_func2;
-drop function if exists bug9102;
-drop function if exists bug9559;
-drop function if exists bug9775;
-drop function if exists bug_13627_f;
-drop function if exists bug_9503;
-drop function if exists chistics;
-drop function if exists e;
-drop function if exists f0;
-drop function if exists f10;
-drop function if exists f11;
-drop function if exists f12_1;
-drop function if exists f12_2;
-drop function if exists f1;
-drop function if exists f2;
-drop function if exists f3;
-drop function if exists f4;
-drop function if exists f5;
-drop function if exists f6;
-drop function if exists f7;
-drop function if exists f8;
-drop function if exists f9;
-drop function if exists f_bug11247;
-drop function if exists fac;
-drop function if exists foo;
-drop function if exists fun;
-drop function if exists inc;
-drop function if exists mul;
-drop function if exists sp_vars_check_ret1;
-drop function if exists sp_vars_check_ret2;
-drop function if exists sp_vars_check_ret3;
-drop function if exists sp_vars_check_ret4;
-drop function if exists sub1;
-drop function if exists sub2;
-drop function if exists test.f1;
-
-drop procedure if exists BUG3259_2 ;
-drop procedure if exists Bug3259_3 ;
-drop procedure if exists ` bug15658`;
-drop procedure if exists `a'b`;
-drop procedure if exists a0;
-drop procedure if exists a;
-drop procedure if exists avg;
-drop procedure if exists b2;
-drop procedure if exists b;
-drop procedure if exists bar;
-drop procedure if exists bug10015_8;
-drop procedure if exists bug10100p;
-drop procedure if exists bug10100pc;
-drop procedure if exists bug10100pd;
-drop procedure if exists bug10100pt;
-drop procedure if exists bug10100pv;
-drop procedure if exists bug10100t;
-drop procedure if exists bug10136;
-drop procedure if exists bug10537;
-drop procedure if exists bug10961;
-drop procedure if exists bug10969;
-drop procedure if exists bug11158;
-drop procedure if exists bug11333;
-drop procedure if exists bug11394;
-drop procedure if exists bug11529;
-drop procedure if exists bug11587;
-drop procedure if exists bug12168;
-drop procedure if exists bug12297;
-drop procedure if exists bug12379_1;
-drop procedure if exists bug12379_2;
-drop procedure if exists bug12379_3;
-drop procedure if exists bug12589_1;
-drop procedure if exists bug12589_2;
-drop procedure if exists bug12589_3;
-drop procedure if exists bug12712;
-drop procedure if exists bug12849_1;
-drop procedure if exists bug12849_2;
-drop procedure if exists bug12979_1;
-drop procedure if exists bug12979_2;
-drop procedure if exists bug13012;
-drop procedure if exists bug13037_p1;
-drop procedure if exists bug13037_p2;
-drop procedure if exists bug13037_p3;
-drop procedure if exists bug13095;
-drop procedure if exists bug13124;
-drop procedure if exists bug131333;
-drop procedure if exists bug13510_1;
-drop procedure if exists bug13510_2;
-drop procedure if exists bug13510_3;
-drop procedure if exists bug13510_4;
-drop procedure if exists bug13549_1;
-drop procedure if exists bug13549_2;
-drop procedure if exists bug13729;
-drop procedure if exists bug13825_0;
-drop procedure if exists bug13825_1;
-drop procedure if exists bug13825_2;
-drop procedure if exists bug13941;
-drop procedure if exists bug14210;
-drop procedure if exists bug14233;
-drop procedure if exists bug14304;
-drop procedure if exists bug14376;
-drop procedure if exists bug14498_1;
-drop procedure if exists bug14498_2;
-drop procedure if exists bug14498_3;
-drop procedure if exists bug14498_4;
-drop procedure if exists bug14498_5;
-drop procedure if exists bug14643_1;
-drop procedure if exists bug14643_2;
-drop procedure if exists bug14723;
-drop procedure if exists bug14840_1;
-drop procedure if exists bug14840_2;
-drop procedure if exists bug1495;
-drop procedure if exists bug15011;
-drop procedure if exists bug15091;
-drop procedure if exists bug15231_1;
-drop procedure if exists bug15231_2;
-drop procedure if exists bug15231_3;
-drop procedure if exists bug15231_4;
-drop procedure if exists bug15441;
-drop procedure if exists bug1547;
-drop procedure if exists bug1656;
-drop procedure if exists bug1862;
-drop procedure if exists bug1863;
-drop procedure if exists bug1874;
-drop procedure if exists bug2227;
-drop procedure if exists bug2260;
-drop procedure if exists bug2267_1;
-drop procedure if exists bug2267_2;
-drop procedure if exists bug2267_3;
-drop procedure if exists bug2267_4;
-drop procedure if exists bug2460_1;
-drop procedure if exists bug2460_2;
-drop procedure if exists bug2564_1;
-drop procedure if exists bug2564_2;
-drop procedure if exists bug2614;
-drop procedure if exists bug2656_1;
-drop procedure if exists bug2656_2;
-drop procedure if exists bug2773;
-drop procedure if exists bug2776_1;
-drop procedure if exists bug2776_2;
-drop procedure if exists bug2780;
-drop procedure if exists bug3157;
-drop procedure if exists bug3259_1 ;
-drop procedure if exists bug3294;
-drop procedure if exists bug3368;
-drop procedure if exists bug336;
-drop procedure if exists bug3426;
-drop procedure if exists bug3448;
-drop procedure if exists bug3583;
-drop procedure if exists bug3734 ;
-drop procedure if exists bug3788;
-drop procedure if exists bug3843;
-drop procedure if exists bug3863;
-drop procedure if exists bug4318;
-drop procedure if exists bug4579_1;
-drop procedure if exists bug4579_2;
-drop procedure if exists bug4726;
-drop procedure if exists bug4902;
-drop procedure if exists bug4902_2;
-drop procedure if exists bug4904;
-drop procedure if exists bug4905;
-drop procedure if exists bug4941;
-drop procedure if exists bug5251;
-drop procedure if exists bug5258;
-drop procedure if exists bug5258_aux;
-drop procedure if exists bug5287;
-drop procedure if exists bug5307;
-drop procedure if exists bug5963;
-drop procedure if exists bug5967;
-drop procedure if exists bug6029;
-drop procedure if exists bug6063;
-drop procedure if exists bug6127;
-drop procedure if exists bug6129;
-drop procedure if exists bug6642;
-drop procedure if exists bug6807;
-drop procedure if exists bug6857;
-drop procedure if exists bug6866;
-drop procedure if exists bug6898;
-drop procedure if exists bug6900;
-drop procedure if exists bug6900_9074;
-drop procedure if exists bug7013;
-drop procedure if exists bug7049_1;
-drop procedure if exists bug7049_2;
-drop procedure if exists bug7049_3;
-drop procedure if exists bug7049_4;
-drop procedure if exists bug7088_1;
-drop procedure if exists bug7088_2;
-drop procedure if exists bug7293;
-drop procedure if exists bug7299;
-drop procedure if exists bug7743;
-drop procedure if exists bug8116;
-drop procedure if exists bug822;
-drop procedure if exists bug8408_p;
-drop procedure if exists bug8540;
-drop procedure if exists bug8692;
-drop procedure if exists bug8757;
-drop procedure if exists bug8762;
-drop procedure if exists bug8776_1;
-drop procedure if exists bug8776_2;
-drop procedure if exists bug8776_3;
-drop procedure if exists bug8776_4;
-drop procedure if exists bug8849;
-drop procedure if exists bug8850;
-drop procedure if exists bug8937;
-drop procedure if exists bug9004_1;
-drop procedure if exists bug9004_2;
-drop procedure if exists bug9056_proc1;
-drop procedure if exists bug9056_proc2;
-drop procedure if exists bug9073;
-drop procedure if exists bug9074;
-drop procedure if exists bug9367;
-drop procedure if exists bug9486;
-drop procedure if exists bug9538;
-drop procedure if exists bug9565;
-drop procedure if exists bug9565_sub;
-drop procedure if exists bug9566;
-drop procedure if exists bug9598_1;
-drop procedure if exists bug9598_2;
-drop procedure if exists bug9674_1;
-drop procedure if exists bug9674_2;
-drop procedure if exists bug9841;
-drop procedure if exists bug9856;
-drop procedure if exists bug9902;
-drop procedure if exists c1;
-drop procedure if exists c2;
-drop procedure if exists c3;
-drop procedure if exists c4;
-drop procedure if exists c;
-drop procedure if exists cbv1;
-drop procedure if exists cbv2;
-drop procedure if exists chistics;
-drop procedure if exists code_sample;
-drop procedure if exists create_select;
-drop procedure if exists cur1;
-drop procedure if exists cur2;
-drop procedure if exists d;
-drop procedure if exists dummy;
-drop procedure if exists e;
-drop procedure if exists empty;
-drop procedure if exists f1;
-drop procedure if exists f;
-drop procedure if exists fib;
-drop procedure if exists fn3;
-drop procedure if exists foo42;
-drop procedure if exists g;
-drop procedure if exists goto1;
-drop procedure if exists goto2;
-drop procedure if exists goto3;
-drop procedure if exists goto4;
-drop procedure if exists goto5;
-drop procedure if exists goto6;
-drop procedure if exists h;
-drop procedure if exists hndlr1;
-drop procedure if exists hndlr2;
-drop procedure if exists hndlr3;
-drop procedure if exists hndlr4;
-drop procedure if exists i;
-drop procedure if exists ifac;
-drop procedure if exists inc2;
-drop procedure if exists inc;
-drop procedure if exists incr;
-drop procedure if exists into_dumpfile;
-drop procedure if exists into_outfile;
-drop procedure if exists into_tes2;
-drop procedure if exists into_test3;
-drop procedure if exists into_test4;
-drop procedure if exists into_test;
-drop procedure if exists iotest;
-drop procedure if exists ip;
-drop procedure if exists locset;
-drop procedure if exists mixset;
-drop procedure if exists modes;
-drop procedure if exists mysqltest1.p1;
-drop procedure if exists mysqltest1.p2;
-drop procedure if exists nullset;
-drop procedure if exists opp;
-drop procedure if exists p1;
-drop procedure if exists p2;
-drop procedure if exists p3;
-drop procedure if exists p4;
-drop procedure if exists p5;
-drop procedure if exists p6;
-drop procedure if exists p;
-drop procedure if exists p_bug11247;
-drop procedure if exists rc;
-drop procedure if exists scope;
-drop procedure if exists sel1;
-drop procedure if exists sel2;
-drop procedure if exists setcontext;
-drop procedure if exists sp1;
-drop procedure if exists sp2;
-drop procedure if exists sp3;
-drop procedure if exists sp4;
-drop procedure if exists sp_vars_check_assignment;
-drop procedure if exists sp_vars_check_dflt;
-drop procedure if exists sub1;
-drop procedure if exists sub2;
-drop procedure if exists sub3;
-drop procedure if exists sudoku_solve;
-drop procedure if exists test.longprocedure;
-drop procedure if exists test.p1;
-drop procedure if exists test.p2;
-drop procedure if exists test.p3;
-drop procedure if exists test.p4;
-drop procedure if exists test.p5;
-drop procedure if exists test.p6;
-drop procedure if exists test.p7;
-drop procedure if exists two;
-drop procedure if exists zap;
-drop procedure if exists zip;
-
-drop table if exists T1;
-drop table if exists `"t"1`,t1aa,t2aa;
-drop table if exists ```a`;
-drop table if exists `t1 test`;
-drop table if exists `t1a``b`,v1,v2,v3,v4,v5,v6;
-drop table if exists `t2 test`;
-drop table if exists a;
-drop table if exists bug13095_t1;
-drop table if exists bug13894;
-drop table if exists bug14672;
-drop table if exists federated.alter_me;
-drop table if exists federated.archive_table;
-drop table if exists federated.bug_13118_table;
-drop table if exists federated.normal_table;
-drop table if exists federated.t1;
-drop table if exists gis_point,gis_line,gis_polygon,gis_multi_point,gis_multi_line,gis_multi_polygon,gis_geometrycollection,gis_geometry;
-drop table if exists mysqltest1.t1;
-drop table if exists mysqltest1.t2;
-drop table if exists mysqltest1.t3;
-drop table if exists mysqltest1.t4;
-drop table if exists mysqltest_bar;
-drop table if exists mysqltest_foo;
-drop table if exists new_t2;
-drop table if exists not_exist;
-drop table if exists r1;
-drop table if exists t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t21,t70;
-drop table if exists t00,t03,t04;
-drop table if exists t0_template;
-drop table if exists t1Aa,t2Aa,v1Aa,v2Aa;
-drop table if exists t1_1,t1_2,t9_1,t9_2,t1aa,t2aa;
-drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c;
-drop table if exists t1aa,t2aa;
-drop table if exists t2aA,t1Aa;
-drop table if exists test,test1,test2;
-drop table if exists v1,v2,v3;
-
-drop temporary table if exists test.t1;
-
-# This doesn't work
-#drop trigger if exists `test trig`;
-#drop trigger if exists test.t1_bd;
-#drop trigger if exists test.t1_bi;
-#drop trigger if exists test.t1_bi_t2;
-#drop trigger if exists test.t1_bu;
-#drop trigger if exists test.t2_ad;
-#drop trigger if exists test.t2_ai;
-#drop trigger if exists test.t2_au;
-#drop trigger if exists test.t3_bi_t2;
-
-drop view if exists bug13095_v1;
-drop view if exists mysqltest1.v1;
-drop view if exists mysqltest1.v2;
-drop view if exists mysqltest1.v3;
-drop view if exists mysqltest1.v4;
-drop view if exists t1,t2,`t1a``b`;
-drop view if exists t1Aa,t2Aa,v1Aa,v2Aa;
-drop view if exists v0,v1,v2,v3,v4,v5,v6;
-
---enable_query_log
---enable_warnings
diff --git a/mysql-test/include/get_binlog_dump_thread_id.inc b/mysql-test/include/get_binlog_dump_thread_id.inc
new file mode 100644
index 00000000000..830a88b5db6
--- /dev/null
+++ b/mysql-test/include/get_binlog_dump_thread_id.inc
@@ -0,0 +1,9 @@
+--exec $MYSQL test -e 'show processlist' | grep 'Binlog Dump' | cut -f1 > $MYSQLTEST_VARDIR/tmp/bl_dump_thread_id
+--disable_warnings
+drop table if exists t999;
+--enable_warnings
+create temporary table t999 (f int);
+--replace_result $MYSQLTEST_VARDIR "."
+eval LOAD DATA INFILE "$MYSQLTEST_VARDIR/tmp/bl_dump_thread_id" into table t999;
+let $id = `select f from t999`;
+drop table t999;
diff --git a/mysql-test/include/master-slave-end.inc b/mysql-test/include/master-slave-end.inc
new file mode 100644
index 00000000000..74e4c7b608a
--- /dev/null
+++ b/mysql-test/include/master-slave-end.inc
@@ -0,0 +1,6 @@
+--connection master
+--sync_slave_with_master
+--connection slave
+--disable_query_log
+STOP SLAVE;
+--enable_query_log
diff --git a/mysql-test/include/ndb_setup_slave.inc b/mysql-test/include/ndb_setup_slave.inc
new file mode 100644
index 00000000000..b1efeded90b
--- /dev/null
+++ b/mysql-test/include/ndb_setup_slave.inc
@@ -0,0 +1,27 @@
+#
+# now setup replication to continue from last epoch
+# 1. get apply_status epoch from slave
+# 2. get corresponding _next_ binlog postition from master
+# 3. change master on slave
+
+# 1.
+--connection slave
+--replace_column 1
+SELECT @the_epoch:=MAX(epoch) FROM cluster.apply_status;
+--let $the_epoch= `select @the_epoch`
+
+# 2.
+--connection master
+--replace_result $the_epoch
+--replace_column 1
+eval SELECT @the_pos:=Position,@the_file:=SUBSTRING_INDEX(FILE, '/', -1)
+ FROM cluster.binlog_index WHERE epoch > $the_epoch ORDER BY epoch ASC LIMIT 1;
+--let $the_pos= `SELECT @the_pos`
+--let $the_file= `SELECT @the_file`
+
+# 3.
+--connection slave
+--replace_result $the_pos
+eval CHANGE MASTER TO
+ master_log_file = '$the_file',
+ master_log_pos = $the_pos ;
diff --git a/mysql-test/include/rpl_multi_engine3.inc b/mysql-test/include/rpl_multi_engine3.inc
index be89c1907f3..cc1b3f13025 100644
--- a/mysql-test/include/rpl_multi_engine3.inc
+++ b/mysql-test/include/rpl_multi_engine3.inc
@@ -41,7 +41,7 @@ SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
# Must give injector thread a little time to get update
# into the binlog other wise we will miss the update.
-sleep 3;
+sleep 10;
sync_slave_with_master;
--echo --- Check Update on slave ---
diff --git a/mysql-test/init_db.sql b/mysql-test/init_db.sql
deleted file mode 100644
index 63483af00d6..00000000000
--- a/mysql-test/init_db.sql
+++ /dev/null
@@ -1,58 +0,0 @@
-CREATE DATABASE mysql;
-CREATE DATABASE test;
-
-USE mysql;
-
-
-CREATE TABLE db (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,PRIMARY KEY Host (Host,Db,User),KEY User (User)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges';
-
-INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');
-INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');
-
-
-CREATE TABLE host (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,PRIMARY KEY Host (Host,Db)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges';
-
-CREATE TABLE user (Host char(60) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Password char(41) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,File_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,ssl_cipher BLOB NOT NULL,x509_issuer BLOB NOT NULL,x509_subject BLOB NOT NULL,max_questions int(11) unsigned DEFAULT 0 NOT NULL,max_updates int(11) unsigned DEFAULT 0 NOT NULL,max_connections int(11) unsigned DEFAULT 0 NOT NULL,PRIMARY KEY Host (Host,User)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges';
-
-INSERT INTO user VALUES ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
-INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
-INSERT INTO user VALUES ('%','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0);
-
-CREATE TABLE func (name char(64) binary DEFAULT '' NOT NULL,ret tinyint(1) DEFAULT '0' NOT NULL,dl char(128) DEFAULT '' NOT NULL,type enum ('function','aggregate') NOT NULL,PRIMARY KEY (name)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions';
-
-CREATE TABLE tables_priv (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Table_name char(64) binary DEFAULT '' NOT NULL,Grantor char(77) DEFAULT '' NOT NULL,Timestamp timestamp(14),Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL,Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,PRIMARY KEY (Host,Db,User,Table_name),KEY Grantor (Grantor)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges';
-
-CREATE TABLE columns_priv (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Table_name char(64) binary DEFAULT '' NOT NULL,Column_name char(64) binary DEFAULT '' NOT NULL,Timestamp timestamp(14),Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,PRIMARY KEY (Host,Db,User,Table_name,Column_name)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges';
-
-CREATE TABLE help_topic (help_topic_id int unsigned not null,name varchar(64) not null,help_category_id smallint unsigned not null,description text not null,example text not null,url varchar(128) not null,primary key (help_topic_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help topics';
-
-CREATE TABLE help_category (help_category_id smallint unsigned not null,name varchar(64) not null,parent_category_id smallint unsigned null,url varchar(128) not null,primary key (help_category_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help categories';
-
-CREATE TABLE help_keyword (help_keyword_id int unsigned not null,name varchar(64) not null,primary key (help_keyword_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help keywords';
-
-CREATE TABLE help_relation (help_topic_id int unsigned not null references help_topic,help_keyword_id int unsigned not null references help_keyword,primary key (help_keyword_id, help_topic_id)) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation';
-
-CREATE TABLE time_zone_name (Name char(64) NOT NULL,Time_zone_id int unsigned NOT NULL,PRIMARY KEY Name (Name)) engine=MyISAM CHARACTER SET utf8 comment='Time zone names';
-
-INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES ('MET', 1), ('UTC', 2), ('Universal', 2), ('Europe/Moscow',3), ('leap/Europe/Moscow',4), ('Japan', 5);
-
-
-CREATE TABLE time_zone (Time_zone_id int unsigned NOT NULL auto_increment,Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,PRIMARY KEY TzId (Time_zone_id)) engine=MyISAM CHARACTER SET utf8 comment='Time zones';
-
-INSERT INTO time_zone (Time_zone_id, Use_leap_seconds) VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N');
-
-
-CREATE TABLE time_zone_transition (Time_zone_id int unsigned NOT NULL,Transition_time bigint signed NOT NULL,Transition_type_id int unsigned NOT NULL,PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
-
-INSERT INTO time_zone_transition (Time_zone_id, Transition_time, Transition_type_id) VALUES (1, -1693706400, 0) ,(1, -1680483600, 1),(1, -1663455600, 2) ,(1, -1650150000, 3),(1, -1632006000, 2) ,(1, -1618700400, 3),(1, -938905200, 2) ,(1, -857257200, 3),(1, -844556400, 2) ,(1, -828226800, 3),(1, -812502000, 2) ,(1, -796777200, 3),(1, 228877200, 2) ,(1, 243997200, 3),(1, 260326800, 2) ,(1, 276051600, 3),(1, 291776400, 2) ,(1, 307501200, 3),(1, 323830800, 2) ,(1, 338950800, 3),(1, 354675600, 2) ,(1, 370400400, 3),(1, 386125200, 2) ,(1, 401850000, 3),(1, 417574800, 2) ,(1, 433299600, 3),(1, 449024400, 2) ,(1, 465354000, 3),(1, 481078800, 2) ,(1, 496803600, 3),(1, 512528400, 2) ,(1, 528253200, 3),(1, 543978000, 2) ,(1, 559702800, 3),(1, 575427600, 2) ,(1, 591152400, 3),(1, 606877200, 2) ,(1, 622602000, 3),(1, 638326800, 2) ,(1, 654656400, 3),(1, 670381200, 2) ,(1, 686106000, 3),(1, 701830800, 2) ,(1, 717555600, 3),(1, 733280400, 2) ,(1, 749005200, 3),(1, 764730000, 2) ,(1, 780454800, 3),(1, 796179600, 2) ,(1, 811904400, 3),(1, 828234000, 2) ,(1, 846378000, 3),(1, 859683600, 2) ,(1, 877827600, 3),(1, 891133200, 2) ,(1, 909277200, 3),(1, 922582800, 2) ,(1, 941331600, 3),(1, 954032400, 2) ,(1, 972781200, 3),(1, 985482000, 2) ,(1, 1004230800, 3),(1, 1017536400, 2) ,(1, 1035680400, 3),(1, 1048986000, 2) ,(1, 1067130000, 3),(1, 1080435600, 2) ,(1, 1099184400, 3),(1, 1111885200, 2) ,(1, 1130634000, 3),(1, 1143334800, 2) ,(1, 1162083600, 3),(1, 1174784400, 2) ,(1, 1193533200, 3),(1, 1206838800, 2) ,(1, 1224982800, 3),(1, 1238288400, 2) ,(1, 1256432400, 3),(1, 1269738000, 2) ,(1, 1288486800, 3),(1, 1301187600, 2) ,(1, 1319936400, 3),(1, 1332637200, 2) ,(1, 1351386000, 3),(1, 1364691600, 2) ,(1, 1382835600, 3),(1, 1396141200, 2) ,(1, 1414285200, 3),(1, 1427590800, 2) ,(1, 1445734800, 3),(1, 1459040400, 2) ,(1, 1477789200, 3),(1, 1490490000, 2) ,(1, 1509238800, 3),(1, 1521939600, 2) ,(1, 1540688400, 3),(1, 1553994000, 2) ,(1, 1572138000, 3),(1, 1585443600, 2) ,(1, 1603587600, 3),(1, 1616893200, 2) ,(1, 1635642000, 3),(1, 1648342800, 2) ,(1, 1667091600, 3),(1, 1679792400, 2) ,(1, 1698541200, 3),(1, 1711846800, 2) ,(1, 1729990800, 3),(1, 1743296400, 2) ,(1, 1761440400, 3),(1, 1774746000, 2) ,(1, 1792890000, 3),(1, 1806195600, 2) ,(1, 1824944400, 3),(1, 1837645200, 2) ,(1, 1856394000, 3),(1, 1869094800, 2) ,(1, 1887843600, 3),(1, 1901149200, 2) ,(1, 1919293200, 3),(1, 1932598800, 2) ,(1, 1950742800, 3),(1, 1964048400, 2) ,(1, 1982797200, 3),(1, 1995498000, 2) ,(1, 2014246800, 3),(1, 2026947600, 2) ,(1, 2045696400, 3),(1, 2058397200, 2) ,(1, 2077146000, 3),(1, 2090451600, 2) ,(1, 2108595600, 3),(1, 2121901200, 2) ,(1, 2140045200, 3),(3, -1688265000, 2) ,(3, -1656819048, 1),(3, -1641353448, 2) ,(3, -1627965048, 3),(3, -1618716648, 1) ,(3, -1596429048, 3),(3, -1593829848, 5) ,(3, -1589860800, 4),(3, -1542427200, 5) ,(3, -1539493200, 6),(3, -1525323600, 5) ,(3, -1522728000, 4),(3, -1491188400, 7) ,(3, -1247536800, 4),(3, 354920400, 5) ,(3, 370728000, 4),(3, 386456400, 5) ,(3, 402264000, 4),(3, 417992400, 5) ,(3, 433800000, 4),(3, 449614800, 5) ,(3, 465346800, 8),(3, 481071600, 9) ,(3, 496796400, 8),(3, 512521200, 9) ,(3, 528246000, 8),(3, 543970800, 9) ,(3, 559695600, 8),(3, 575420400, 9) ,(3, 591145200, 8),(3, 606870000, 9) ,(3, 622594800, 8),(3, 638319600, 9) ,(3, 654649200, 8),(3, 670374000, 10) ,(3, 686102400, 11),(3, 695779200, 8) ,(3, 701812800, 5),(3, 717534000, 4) ,(3, 733273200, 9),(3, 748998000, 8) ,(3, 764722800, 9),(3, 780447600, 8) ,(3, 796172400, 9),(3, 811897200, 8) ,(3, 828226800, 9),(3, 846370800, 8) ,(3, 859676400, 9),(3, 877820400, 8) ,(3, 891126000, 9),(3, 909270000, 8) ,(3, 922575600, 9),(3, 941324400, 8) ,(3, 954025200, 9),(3, 972774000, 8) ,(3, 985474800, 9),(3, 1004223600, 8) ,(3, 1017529200, 9),(3, 1035673200, 8) ,(3, 1048978800, 9),(3, 1067122800, 8) ,(3, 1080428400, 9),(3, 1099177200, 8) ,(3, 1111878000, 9),(3, 1130626800, 8) ,(3, 1143327600, 9),(3, 1162076400, 8) ,(3, 1174777200, 9),(3, 1193526000, 8) ,(3, 1206831600, 9),(3, 1224975600, 8) ,(3, 1238281200, 9),(3, 1256425200, 8) ,(3, 1269730800, 9),(3, 1288479600, 8) ,(3, 1301180400, 9),(3, 1319929200, 8) ,(3, 1332630000, 9),(3, 1351378800, 8) ,(3, 1364684400, 9),(3, 1382828400, 8) ,(3, 1396134000, 9),(3, 1414278000, 8) ,(3, 1427583600, 9),(3, 1445727600, 8) ,(3, 1459033200, 9),(3, 1477782000, 8) ,(3, 1490482800, 9),(3, 1509231600, 8) ,(3, 1521932400, 9),(3, 1540681200, 8) ,(3, 1553986800, 9),(3, 1572130800, 8) ,(3, 1585436400, 9),(3, 1603580400, 8) ,(3, 1616886000, 9),(3, 1635634800, 8) ,(3, 1648335600, 9),(3, 1667084400, 8) ,(3, 1679785200, 9),(3, 1698534000, 8) ,(3, 1711839600, 9),(3, 1729983600, 8) ,(3, 1743289200, 9),(3, 1761433200, 8) ,(3, 1774738800, 9),(3, 1792882800, 8) ,(3, 1806188400, 9),(3, 1824937200, 8) ,(3, 1837638000, 9),(3, 1856386800, 8) ,(3, 1869087600, 9),(3, 1887836400, 8) ,(3, 1901142000, 9),(3, 1919286000, 8) ,(3, 1932591600, 9),(3, 1950735600, 8) ,(3, 1964041200, 9),(3, 1982790000, 8) ,(3, 1995490800, 9),(3, 2014239600, 8) ,(3, 2026940400, 9),(3, 2045689200, 8) ,(3, 2058390000, 9),(3, 2077138800, 8) ,(3, 2090444400, 9),(3, 2108588400, 8) ,(3, 2121894000, 9),(3, 2140038000, 8),(4, -1688265000, 2) ,(4, -1656819048, 1),(4, -1641353448, 2) ,(4, -1627965048, 3),(4, -1618716648, 1) ,(4, -1596429048, 3),(4, -1593829848, 5) ,(4, -1589860800, 4),(4, -1542427200, 5) ,(4, -1539493200, 6),(4, -1525323600, 5) ,(4, -1522728000, 4),(4, -1491188400, 7) ,(4, -1247536800, 4),(4, 354920409, 5) ,(4, 370728010, 4),(4, 386456410, 5) ,(4, 402264011, 4),(4, 417992411, 5) ,(4, 433800012, 4),(4, 449614812, 5) ,(4, 465346812, 8),(4, 481071612, 9) ,(4, 496796413, 8),(4, 512521213, 9) ,(4, 528246013, 8),(4, 543970813, 9) ,(4, 559695613, 8),(4, 575420414, 9) ,(4, 591145214, 8),(4, 606870014, 9) ,(4, 622594814, 8),(4, 638319615, 9) ,(4, 654649215, 8),(4, 670374016, 10) ,(4, 686102416, 11),(4, 695779216, 8) ,(4, 701812816, 5),(4, 717534017, 4) ,(4, 733273217, 9),(4, 748998018, 8) ,(4, 764722818, 9),(4, 780447619, 8) ,(4, 796172419, 9),(4, 811897219, 8) ,(4, 828226820, 9),(4, 846370820, 8) ,(4, 859676420, 9),(4, 877820421, 8) ,(4, 891126021, 9),(4, 909270021, 8) ,(4, 922575622, 9),(4, 941324422, 8) ,(4, 954025222, 9),(4, 972774022, 8) ,(4, 985474822, 9),(4, 1004223622, 8) ,(4, 1017529222, 9),(4, 1035673222, 8) ,(4, 1048978822, 9),(4, 1067122822, 8) ,(4, 1080428422, 9),(4, 1099177222, 8) ,(4, 1111878022, 9),(4, 1130626822, 8) ,(4, 1143327622, 9),(4, 1162076422, 8) ,(4, 1174777222, 9),(4, 1193526022, 8) ,(4, 1206831622, 9),(4, 1224975622, 8) ,(4, 1238281222, 9),(4, 1256425222, 8) ,(4, 1269730822, 9),(4, 1288479622, 8) ,(4, 1301180422, 9),(4, 1319929222, 8) ,(4, 1332630022, 9),(4, 1351378822, 8) ,(4, 1364684422, 9),(4, 1382828422, 8) ,(4, 1396134022, 9),(4, 1414278022, 8) ,(4, 1427583622, 9),(4, 1445727622, 8) ,(4, 1459033222, 9),(4, 1477782022, 8) ,(4, 1490482822, 9),(4, 1509231622, 8) ,(4, 1521932422, 9),(4, 1540681222, 8) ,(4, 1553986822, 9),(4, 1572130822, 8) ,(4, 1585436422, 9),(4, 1603580422, 8) ,(4, 1616886022, 9),(4, 1635634822, 8) ,(4, 1648335622, 9),(4, 1667084422, 8) ,(4, 1679785222, 9),(4, 1698534022, 8) ,(4, 1711839622, 9),(4, 1729983622, 8) ,(4, 1743289222, 9),(4, 1761433222, 8) ,(4, 1774738822, 9),(4, 1792882822, 8) ,(4, 1806188422, 9),(4, 1824937222, 8) ,(4, 1837638022, 9),(4, 1856386822, 8) ,(4, 1869087622, 9),(4, 1887836422, 8) ,(4, 1901142022, 9),(4, 1919286022, 8) ,(4, 1932591622, 9),(4, 1950735622, 8) ,(4, 1964041222, 9),(4, 1982790022, 8) ,(4, 1995490822, 9),(4, 2014239622, 8) ,(4, 2026940422, 9),(4, 2045689222, 8) ,(4, 2058390022, 9),(4, 2077138822, 8) ,(4, 2090444422, 9),(4, 2108588422, 8) ,(4, 2121894022, 9),(4, 2140038022, 8);
-
-
-CREATE TABLE time_zone_transition_type (Time_zone_id int unsigned NOT NULL,Transition_type_id int unsigned NOT NULL,Offset int signed DEFAULT 0 NOT NULL,Is_DST tinyint unsigned DEFAULT 0 NOT NULL,Abbreviation char(8) DEFAULT '' NOT NULL,PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
-
-INSERT INTO time_zone_transition_type (Time_zone_id,Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET') ,(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET') ,(2, 0, 0, 0, 'UTC') ,(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST') ,(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST') ,(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD') ,(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET') ,(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD') ,(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET') ,(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST') ,(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST') ,(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD') ,(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET') ,(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD') ,(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET') ,(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST');
-
-CREATE TABLE time_zone_leap_second (Transition_time bigint signed NOT NULL,Correction int signed NOT NULL,PRIMARY KEY TranTime (Transition_time)) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
-
-INSERT INTO time_zone_leap_second (Transition_time, Correction) VALUES (78796800, 1) ,(94694401, 2) ,(126230402, 3) ,(157766403, 4) ,(189302404, 5) ,(220924805, 6) ,(252460806, 7) ,(283996807, 8) ,(315532808, 9) ,(362793609, 10) ,(394329610, 11) ,(425865611, 12) ,(489024012, 13) ,(567993613, 14) ,(631152014, 15) ,(662688015, 16) ,(709948816, 17) ,(741484817, 18) ,(773020818, 19) ,(820454419, 20) ,(867715220, 21) ,(915148821, 22);
-
-
diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl
index 58652960e36..779be3d7081 100644
--- a/mysql-test/lib/mtr_process.pl
+++ b/mysql-test/lib/mtr_process.pl
@@ -144,17 +144,6 @@ sub spawn_impl ($$$$$$$$) {
$SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't
- if ( $::glob_cygwin_shell and $mode eq 'test' )
- {
- # Programs started from mysqltest under Cygwin, are to
- # execute them within Cygwin. Else simple things in test
- # files like
- # --system "echo 1 > file"
- # will fail.
- # FIXME not working :-(
-# $ENV{'COMSPEC'}= "$::glob_cygwin_shell -c";
- }
-
my $log_file_open_mode = '>';
if ($spawn_opts and $spawn_opts->{'append_log_file'})
@@ -164,7 +153,15 @@ sub spawn_impl ($$$$$$$$) {
if ( $output )
{
- if ( ! open(STDOUT,$log_file_open_mode,$output) )
+ if ( $::glob_win32_perl )
+ {
+ # Don't redirect stdout on ActiveState perl since this is
+ # just another thread in the same process.
+ # Should be fixed so that the thread that is created with fork
+ # executes the exe in another process and wait's for it to return.
+ # In the meanwhile, we get all the output from mysqld's to screen
+ }
+ elsif ( ! open(STDOUT,$log_file_open_mode,$output) )
{
mtr_child_error("can't redirect STDOUT to \"$output\": $!");
}
@@ -216,8 +213,7 @@ sub spawn_parent_impl {
{
# Simple run of command, we wait for it to return
my $ret_pid= waitpid($pid,0);
-
- if ( $ret_pid <= 0 )
+ if ( $ret_pid != $pid )
{
mtr_error("$path ($pid) got lost somehow");
}
@@ -245,7 +241,6 @@ sub spawn_parent_impl {
# Someone terminated, don't know who. Collect
# status info first before $? is lost,
# but not $exit_value, this is flagged from
- #
my $timer_name= mtr_timer_timeout($::glob_timers, $ret_pid);
if ( $timer_name )
@@ -310,7 +305,7 @@ sub spawn_parent_impl {
$ret_pid= waitpid($pid,0);
- if ( $ret_pid == -1 )
+ if ( $ret_pid != $pid )
{
mtr_error("$path ($pid) got lost somehow");
}
@@ -361,7 +356,6 @@ sub mtr_kill_leftovers () {
# First, kill all masters and slaves that would conflict with
# this run. Make sure to remove the PID file, if any.
# FIXME kill IM manager first, else it will restart the servers, how?!
-
my @args;
for ( my $idx; $idx < 2; $idx++ )
@@ -650,22 +644,10 @@ sub mtr_mysqladmin_shutdown {
my $adm_shutdown_tmo= shift;
my %mysql_admin_pids;
- my @to_kill_specs;
+ # Start one "mysqladmin shutdown" for each server
foreach my $srv ( @$spec )
{
- if ( mtr_ping_mysqld_server($srv->{'port'}, $srv->{'sockfile'}) )
- {
- push(@to_kill_specs, $srv);
- }
- }
-
-
- foreach my $srv ( @to_kill_specs )
- {
- # FIXME wrong log.....
- # FIXME, stderr.....
- # Shutdown time must be high as slave may be in reconnect
my $args;
mtr_init_args(\$args);
@@ -673,6 +655,7 @@ sub mtr_mysqladmin_shutdown {
mtr_add_arg($args, "--no-defaults");
mtr_add_arg($args, "--user=%s", $::opt_user);
mtr_add_arg($args, "--password=");
+ mtr_add_arg($args, "--silent");
if ( -e $srv->{'sockfile'} )
{
mtr_add_arg($args, "--socket=%s", $srv->{'sockfile'});
@@ -686,26 +669,27 @@ sub mtr_mysqladmin_shutdown {
mtr_add_arg($args, "--protocol=tcp"); # Needed if no --socket
}
mtr_add_arg($args, "--connect_timeout=5");
+ # Shutdown time must be high as slave may be in reconnect
mtr_add_arg($args, "--shutdown_timeout=$adm_shutdown_tmo");
mtr_add_arg($args, "shutdown");
- # We don't wait for termination of mysqladmin
+ # Start mysqladmin in paralell and wait for termination later
my $pid= mtr_spawn($::exe_mysqladmin, $args,
"", $::path_manager_log, $::path_manager_log, "",
{ append_log_file => 1 });
+ # Save the pid of the mysqladmin process
$mysql_admin_pids{$pid}= 1;
}
+ # Wait for all the started mysqladmin to exit
# As mysqladmin is such a simple program, we trust it to terminate.
# I.e. we wait blocking, and wait wait for them all before we go on.
- while (keys %mysql_admin_pids)
+ foreach my $pid (keys %mysql_admin_pids)
{
- foreach my $pid (keys %mysql_admin_pids)
- {
- if ( waitpid($pid,0) > 0 )
- {
- delete $mysql_admin_pids{$pid};
- }
- }
+ my $ret_pid= waitpid($pid,0);
+
+ # If this was any of the mysqladmin's we waited for, delete its
+ # pid from list
+ delete $mysql_admin_pids{$ret_pid} if exists $mysql_admin_pids{$ret_pid};
}
# If we trusted "mysqladmin --shutdown_timeout= ..." we could just
@@ -720,7 +704,7 @@ sub mtr_mysqladmin_shutdown {
TIME:
while ( $timeout-- )
{
- foreach my $srv ( @to_kill_specs )
+ foreach my $srv ( @$spec )
{
$res= 1; # We are optimistic
if ( mtr_ping_mysqld_server($srv->{'port'}, $srv->{'sockfile'}) )
@@ -753,9 +737,9 @@ sub mtr_record_dead_children () {
my $ret_pid;
- # FIXME the man page says to wait for -1 to terminate,
- # but on OS X we get '0' all the time...
- while ( ($ret_pid= waitpid(-1,&WNOHANG)) > 0 )
+ # Wait without blockinng to see if any processes had died
+ # -1 or 0 means there are no more procesess to wait for
+ while ( ($ret_pid= waitpid(-1,&WNOHANG)) != 0 and $ret_pid != -1)
{
mtr_debug("waitpid() catched exit of child $ret_pid");
foreach my $idx (0..1)
@@ -788,7 +772,11 @@ sub start_reap_all {
# here. If a process terminated before setting $SIG{CHLD} (but after
# any attempt to waitpid() it), it will still be a zombie. So we
# have to handle any such process here.
- while(waitpid(-1, &WNOHANG) > 0) { };
+ my $pid;
+ while(($pid= waitpid(-1, &WNOHANG)) != 0 and $pid != -1)
+ {
+ print "start_reap_all: pid: $pid.\n";
+ };
}
sub stop_reap_all {
@@ -842,7 +830,7 @@ sub sleep_until_file_created ($$$) {
}
# Check if it died after the fork() was successful
- if ( $pid > 0 && waitpid($pid,&WNOHANG) == $pid )
+ if ( $pid != 0 && waitpid($pid,&WNOHANG) == $pid )
{
return 0;
}
@@ -904,8 +892,8 @@ sub mtr_exit ($) {
# set ourselves as the group leader at startup (with
# POSIX::setpgrp(0,0)), but then care must be needed to always do
# proper child process cleanup.
- kill('HUP', -$$) if $$ == getpgrp();
- sleep 2;
+ kill('HUP', -$$) if !$::glob_win32_perl and $$ == getpgrp();
+
exit($code);
}
diff --git a/mysql-test/my_create_tables.c b/mysql-test/my_create_tables.c
deleted file mode 100644
index 06a6fabf022..00000000000
--- a/mysql-test/my_create_tables.c
+++ /dev/null
@@ -1,673 +0,0 @@
-#include
-#include
-#ifndef __WIN__
-#include
-#endif
-#include
-#ifdef __NETWARE__
-#include
-#include
-#else
-#include
-#ifndef __WIN__
-#include
-#include
-#else
-#include
-#include
-#include
-#endif
-#endif
-#include
-#include
-#include
-#include
-#include "my_manage.h"
-
-/*
- Synopsis:
- This function testes a exist file
-
-Arguments:
- mdata: path to data
- file_name: name of file
-Output:
- A zero value indicates that file is exist.
-*/
-bool test_sys_file(const char *mdata,const char *file_name)
-{
- struct stat file;
- char path_file_name[PATH_MAX];
- snprintf(path_file_name, PATH_MAX, "%s/%s", mdata, file_name);
- return(stat(path_file_name,&file));
-}
-
-/*
- Synopsis:
- This function creates a file with sql requstes for creating
- system data files.
-
-Arguments:
- mdata: path to data
- output_file: file name for output file
- test: to create system files with test data
-Output:
- A zero value indicates a success.
-*/
-bool create_system_files(const char *mdata,const char *output_file, bool test)
-{
- FILE *out;
-
- out = fopen(output_file, "w+");
-
- if (!out)
- return 1;
-
- if (test_sys_file(mdata,"mysql"))
- {
- fprintf(out,"CREATE DATABASE mysql;\n");
- }
-
- if (test && test_sys_file(mdata,"test"))
- {
- fprintf(out,"CREATE DATABASE test;\n");
- }
-
- fprintf(out,"USE mysql;\n");
-
- if (test_sys_file(mdata,"mysql/db.frm"))
- {
- fprintf(out,
- "CREATE TABLE db ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "PRIMARY KEY Host (Host,Db,User),"
- "KEY User (User))"
- "engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Database privileges';\n");
-
- if (test)
- {
- fprintf(out,"INSERT INTO db VALUES ('%%','test','','Y','Y','Y','Y'"
- ",'Y','Y','N','Y','Y','Y','Y','Y');\n");
- fprintf(out,"INSERT INTO db VALUES ('%%','test\\_%%','','Y','Y','Y'"
- ",'Y','Y','Y','N','Y','Y','Y','Y','Y');\n");
- }
- }
-
- if (test_sys_file(mdata,"mysql/host.frm"))
- {
- fprintf(out,
- "CREATE TABLE host ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "PRIMARY KEY Host (Host,Db))"
- "engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Host privileges; Merged with database privileges';\n");
- }
-
-
- if (test_sys_file(mdata,"mysql/user.frm"))
- {
-#ifdef __WIN__
- WSADATA wsa_data;
-#endif
- char hostname[FN_REFLEN];
-
-#ifdef __WIN__
- if (WSAStartup(MAKEWORD( 2, 2 ),&wsa_data))
- return 1;
-#endif
- if (gethostname(hostname, FN_REFLEN))
- return 1;
-#ifdef __WIN__
- WSACleanup( );
-#endif
-
- if (strchr(hostname, '.') == NULL)
- strcat(hostname, "%");
-
- fprintf(out,
- "CREATE TABLE user ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Password char(41) binary DEFAULT '' NOT NULL,"
- "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "File_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- "ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,"
- "ssl_cipher BLOB NOT NULL,"
- "x509_issuer BLOB NOT NULL,"
- "x509_subject BLOB NOT NULL,"
- "max_questions int(11) unsigned DEFAULT 0 NOT NULL,"
- "max_updates int(11) unsigned DEFAULT 0 NOT NULL,"
- "max_connections int(11) unsigned DEFAULT 0 NOT NULL,"
- "PRIMARY KEY Host (Host,User)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Users and global privileges';\n");
-
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO user VALUES ('localhost','root',''"
- ",'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'"
- ",'Y','Y','Y','Y','Y','','','','',0,0,0);\n");
- fprintf(out,
- "INSERT INTO user VALUES ('%s','root','','Y','Y',"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',"
- "'Y','Y','Y','Y','','','','',0,0,0);\n",hostname);
- fprintf(out,
- "REPLACE INTO user VALUES ('127.0.0.1','root','',"
- "'Y','Y','Y','Y','Y','Y',"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'"
- ",'Y','','','','',0,0,0);\n");
- fprintf(out,"INSERT INTO user (host,user) values ('localhost','');\n");
- fprintf(out,"INSERT INTO user (host,user) values ('%s','');\n",hostname);
- }
- else
- {
- fprintf(out,
- "INSERT INTO user VALUES ('localhost','root','',"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',"
- "'Y','Y','Y','Y','','','','',0,0,0);\n");
-#ifndef __WIN__
- fprintf(out,
- "INSERT INTO user VALUES ('%s','root','','Y','Y',"
- "'Y','Y','Y','Y','Y','Y'"
- "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','',''"
- ",'','',0,0,0);\n",hostname);
- fprintf(out,"INSERT INTO user (host,user) values ('%s','');\n",hostname);
- fprintf(out,"INSERT INTO user (host,user) values ('localhost','');\n");
-#else
- fprintf(out,
- "INSERT INTO user VALUES ('localhost','','','Y','Y','Y'"
- ",'Y','Y','Y','Y','Y','Y'"
- ",'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','',"
- "'','',0,0,0);\n");
-#endif
- }
- }
-
-
- if (test_sys_file(mdata,"mysql/func.frm"))
- {
- fprintf(out,
- "CREATE TABLE func ("
- "name char(64) binary DEFAULT '' NOT NULL,"
- "ret tinyint(1) DEFAULT '0' NOT NULL,"
- "dl char(128) DEFAULT '' NOT NULL,"
- "type enum ('function','aggregate') NOT NULL,"
- "PRIMARY KEY (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='User defined functions';\n");
- }
-
- if (test_sys_file(mdata,"mysql/tables_priv.frm"))
- {
- fprintf(out,
- "CREATE TABLE tables_priv ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Table_name char(64) binary DEFAULT '' NOT NULL,"
- "Grantor char(77) DEFAULT '' NOT NULL,"
- "Timestamp timestamp(14),"
- "Table_priv set('Select','Insert','Update','Delete',"
- "'Create','Drop','Grant','References','Index','Alter')"
- " DEFAULT '' NOT NULL,"
- "Column_priv set('Select','Insert','Update','References')"
- " DEFAULT '' NOT NULL,"
- "PRIMARY KEY (Host,Db,User,Table_name),"
- "KEY Grantor (Grantor)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Table privileges';\n");
- }
-
- if (test_sys_file(mdata,"mysql/columns_priv.frm"))
- {
- fprintf(out,
- "CREATE TABLE columns_priv ("
- "Host char(60) binary DEFAULT '' NOT NULL,"
- "Db char(64) binary DEFAULT '' NOT NULL,"
- "User char(16) binary DEFAULT '' NOT NULL,"
- "Table_name char(64) binary DEFAULT '' NOT NULL,"
- "Column_name char(64) binary DEFAULT '' NOT NULL,"
- "Timestamp timestamp(14),"
- "Column_priv set('Select','Insert','Update','References')"
- " DEFAULT '' NOT NULL,"
- "PRIMARY KEY (Host,Db,User,Table_name,Column_name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 COLLATE utf8_bin "
- "comment='Column privileges';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_topic.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_topic ("
- "help_topic_id int unsigned not null,"
- "name varchar(64) not null,"
- "help_category_id smallint unsigned not null,"
- "description text not null,"
- "example text not null,"
- "url varchar(128) not null,"
- "primary key (help_topic_id),"
- "unique index (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='help topics';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_category.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_category ("
- "help_category_id smallint unsigned not null,"
- "name varchar(64) not null,"
- "parent_category_id smallint unsigned null,"
- "url varchar(128) not null,"
- "primary key (help_category_id),"
- "unique index (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='help categories';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_keyword.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_keyword ("
- "help_keyword_id int unsigned not null,"
- "name varchar(64) not null,"
- "primary key (help_keyword_id),"
- "unique index (name)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='help keywords';\n");
- }
-
- if (test_sys_file(mdata,"mysql/help_relation.frm"))
- {
- fprintf(out,
- "CREATE TABLE help_relation ("
- "help_topic_id int unsigned not null references help_topic,"
- "help_keyword_id int unsigned not null references help_keyword,"
- "primary key (help_keyword_id, help_topic_id)"
- ") engine=MyISAM "
- "CHARACTER SET utf8 "
- "comment='keyword-topic relation';\n");
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_name.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_name ("
- "Name char(64) NOT NULL,"
- "Time_zone_id int unsigned NOT NULL,"
- "PRIMARY KEY Name (Name)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zone names';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES"
- "('MET', 1), ('UTC', 2), ('Universal', 2), "
- "('Europe/Moscow',3), ('leap/Europe/Moscow',4),"
- "('Japan', 5);\n");
-
- }
- }
-
-
- if (test_sys_file(mdata,"mysql/time_zone.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone ("
- "Time_zone_id int unsigned NOT NULL auto_increment,"
- "Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,"
- "PRIMARY KEY TzId (Time_zone_id)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zones';\n");
-
- if (test)
- {
- fprintf(out,"INSERT INTO time_zone (Time_zone_id, Use_leap_seconds)"
- "VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N');\n");
- }
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_transition.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_transition ("
- "Time_zone_id int unsigned NOT NULL,"
- "Transition_time bigint signed NOT NULL,"
- "Transition_type_id int unsigned NOT NULL,"
- "PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zone transitions';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_transition"
- "(Time_zone_id, Transition_time, Transition_type_id)"
- "VALUES"
- " (1, -1693706400, 0) ,(1, -1680483600, 1)"
- ",(1, -1663455600, 2) ,(1, -1650150000, 3)"
- ",(1, -1632006000, 2) ,(1, -1618700400, 3)"
- ",(1, -938905200, 2) ,(1, -857257200, 3)"
- ",(1, -844556400, 2) ,(1, -828226800, 3)"
- ",(1, -812502000, 2) ,(1, -796777200, 3)"
- ",(1, 228877200, 2) ,(1, 243997200, 3)"
- ",(1, 260326800, 2) ,(1, 276051600, 3)"
- ",(1, 291776400, 2) ,(1, 307501200, 3)"
- ",(1, 323830800, 2) ,(1, 338950800, 3)"
- ",(1, 354675600, 2) ,(1, 370400400, 3)"
- ",(1, 386125200, 2) ,(1, 401850000, 3)"
- ",(1, 417574800, 2) ,(1, 433299600, 3)"
- ",(1, 449024400, 2) ,(1, 465354000, 3)"
- ",(1, 481078800, 2) ,(1, 496803600, 3)"
- ",(1, 512528400, 2) ,(1, 528253200, 3)"
- ",(1, 543978000, 2) ,(1, 559702800, 3)"
- ",(1, 575427600, 2) ,(1, 591152400, 3)"
- ",(1, 606877200, 2) ,(1, 622602000, 3)"
- ",(1, 638326800, 2) ,(1, 654656400, 3)"
- ",(1, 670381200, 2) ,(1, 686106000, 3)"
- ",(1, 701830800, 2) ,(1, 717555600, 3)"
- ",(1, 733280400, 2) ,(1, 749005200, 3)"
- ",(1, 764730000, 2) ,(1, 780454800, 3)"
- ",(1, 796179600, 2) ,(1, 811904400, 3)"
- ",(1, 828234000, 2) ,(1, 846378000, 3)"
- ",(1, 859683600, 2) ,(1, 877827600, 3)"
- ",(1, 891133200, 2) ,(1, 909277200, 3)"
- ",(1, 922582800, 2) ,(1, 941331600, 3)"
- ",(1, 954032400, 2) ,(1, 972781200, 3)"
- ",(1, 985482000, 2) ,(1, 1004230800, 3)"
- ",(1, 1017536400, 2) ,(1, 1035680400, 3)"
- ",(1, 1048986000, 2) ,(1, 1067130000, 3)"
- ",(1, 1080435600, 2) ,(1, 1099184400, 3)"
- ",(1, 1111885200, 2) ,(1, 1130634000, 3)"
- ",(1, 1143334800, 2) ,(1, 1162083600, 3)"
- ",(1, 1174784400, 2) ,(1, 1193533200, 3)"
- ",(1, 1206838800, 2) ,(1, 1224982800, 3)"
- ",(1, 1238288400, 2) ,(1, 1256432400, 3)"
- ",(1, 1269738000, 2) ,(1, 1288486800, 3)"
- ",(1, 1301187600, 2) ,(1, 1319936400, 3)"
- ",(1, 1332637200, 2) ,(1, 1351386000, 3)"
- ",(1, 1364691600, 2) ,(1, 1382835600, 3)"
- ",(1, 1396141200, 2) ,(1, 1414285200, 3)"
- ",(1, 1427590800, 2) ,(1, 1445734800, 3)"
- ",(1, 1459040400, 2) ,(1, 1477789200, 3)"
- ",(1, 1490490000, 2) ,(1, 1509238800, 3)"
- ",(1, 1521939600, 2) ,(1, 1540688400, 3)"
- ",(1, 1553994000, 2) ,(1, 1572138000, 3)"
- ",(1, 1585443600, 2) ,(1, 1603587600, 3)"
- ",(1, 1616893200, 2) ,(1, 1635642000, 3)"
- ",(1, 1648342800, 2) ,(1, 1667091600, 3)"
- ",(1, 1679792400, 2) ,(1, 1698541200, 3)"
- ",(1, 1711846800, 2) ,(1, 1729990800, 3)"
- ",(1, 1743296400, 2) ,(1, 1761440400, 3)"
- ",(1, 1774746000, 2) ,(1, 1792890000, 3)"
- ",(1, 1806195600, 2) ,(1, 1824944400, 3)"
- ",(1, 1837645200, 2) ,(1, 1856394000, 3)"
- ",(1, 1869094800, 2) ,(1, 1887843600, 3)"
- ",(1, 1901149200, 2) ,(1, 1919293200, 3)"
- ",(1, 1932598800, 2) ,(1, 1950742800, 3)"
- ",(1, 1964048400, 2) ,(1, 1982797200, 3)"
- ",(1, 1995498000, 2) ,(1, 2014246800, 3)"
- ",(1, 2026947600, 2) ,(1, 2045696400, 3)"
- ",(1, 2058397200, 2) ,(1, 2077146000, 3)"
- ",(1, 2090451600, 2) ,(1, 2108595600, 3)"
- ",(1, 2121901200, 2) ,(1, 2140045200, 3)"
- ",(3, -1688265000, 2) ,(3, -1656819048, 1)"
- ",(3, -1641353448, 2) ,(3, -1627965048, 3)"
- ",(3, -1618716648, 1) ,(3, -1596429048, 3)"
- ",(3, -1593829848, 5) ,(3, -1589860800, 4)"
- ",(3, -1542427200, 5) ,(3, -1539493200, 6)"
- ",(3, -1525323600, 5) ,(3, -1522728000, 4)"
- ",(3, -1491188400, 7) ,(3, -1247536800, 4)"
- ",(3, 354920400, 5) ,(3, 370728000, 4)"
- ",(3, 386456400, 5) ,(3, 402264000, 4)"
- ",(3, 417992400, 5) ,(3, 433800000, 4)"
- ",(3, 449614800, 5) ,(3, 465346800, 8)"
- ",(3, 481071600, 9) ,(3, 496796400, 8)"
- ",(3, 512521200, 9) ,(3, 528246000, 8)"
- ",(3, 543970800, 9) ,(3, 559695600, 8)"
- ",(3, 575420400, 9) ,(3, 591145200, 8)"
- ",(3, 606870000, 9) ,(3, 622594800, 8)"
- ",(3, 638319600, 9) ,(3, 654649200, 8)"
- ",(3, 670374000, 10) ,(3, 686102400, 11)"
- ",(3, 695779200, 8) ,(3, 701812800, 5)"
- ",(3, 717534000, 4) ,(3, 733273200, 9)"
- ",(3, 748998000, 8) ,(3, 764722800, 9)"
- ",(3, 780447600, 8) ,(3, 796172400, 9)"
- ",(3, 811897200, 8) ,(3, 828226800, 9)"
- ",(3, 846370800, 8) ,(3, 859676400, 9)"
- ",(3, 877820400, 8) ,(3, 891126000, 9)"
- ",(3, 909270000, 8) ,(3, 922575600, 9)"
- ",(3, 941324400, 8) ,(3, 954025200, 9)"
- ",(3, 972774000, 8) ,(3, 985474800, 9)"
- ",(3, 1004223600, 8) ,(3, 1017529200, 9)"
- ",(3, 1035673200, 8) ,(3, 1048978800, 9)"
- ",(3, 1067122800, 8) ,(3, 1080428400, 9)"
- ",(3, 1099177200, 8) ,(3, 1111878000, 9)"
- ",(3, 1130626800, 8) ,(3, 1143327600, 9)"
- ",(3, 1162076400, 8) ,(3, 1174777200, 9)"
- ",(3, 1193526000, 8) ,(3, 1206831600, 9)"
- ",(3, 1224975600, 8) ,(3, 1238281200, 9)"
- ",(3, 1256425200, 8) ,(3, 1269730800, 9)"
- ",(3, 1288479600, 8) ,(3, 1301180400, 9)"
- ",(3, 1319929200, 8) ,(3, 1332630000, 9)"
- ",(3, 1351378800, 8) ,(3, 1364684400, 9)"
- ",(3, 1382828400, 8) ,(3, 1396134000, 9)"
- ",(3, 1414278000, 8) ,(3, 1427583600, 9)"
- ",(3, 1445727600, 8) ,(3, 1459033200, 9)"
- ",(3, 1477782000, 8) ,(3, 1490482800, 9)"
- ",(3, 1509231600, 8) ,(3, 1521932400, 9)"
- ",(3, 1540681200, 8) ,(3, 1553986800, 9)"
- ",(3, 1572130800, 8) ,(3, 1585436400, 9)"
- ",(3, 1603580400, 8) ,(3, 1616886000, 9)"
- ",(3, 1635634800, 8) ,(3, 1648335600, 9)"
- ",(3, 1667084400, 8) ,(3, 1679785200, 9)"
- ",(3, 1698534000, 8) ,(3, 1711839600, 9)"
- ",(3, 1729983600, 8) ,(3, 1743289200, 9)"
- ",(3, 1761433200, 8) ,(3, 1774738800, 9)"
- ",(3, 1792882800, 8) ,(3, 1806188400, 9)"
- ",(3, 1824937200, 8) ,(3, 1837638000, 9)"
- ",(3, 1856386800, 8) ,(3, 1869087600, 9)"
- ",(3, 1887836400, 8) ,(3, 1901142000, 9)"
- ",(3, 1919286000, 8) ,(3, 1932591600, 9)"
- ",(3, 1950735600, 8) ,(3, 1964041200, 9)"
- ",(3, 1982790000, 8) ,(3, 1995490800, 9)"
- ",(3, 2014239600, 8) ,(3, 2026940400, 9)"
- ",(3, 2045689200, 8) ,(3, 2058390000, 9)"
- ",(3, 2077138800, 8) ,(3, 2090444400, 9)"
- ",(3, 2108588400, 8) ,(3, 2121894000, 9)"
- ",(3, 2140038000, 8)"
- ",(4, -1688265000, 2) ,(4, -1656819048, 1)"
- ",(4, -1641353448, 2) ,(4, -1627965048, 3)"
- ",(4, -1618716648, 1) ,(4, -1596429048, 3)"
- ",(4, -1593829848, 5) ,(4, -1589860800, 4)"
- ",(4, -1542427200, 5) ,(4, -1539493200, 6)"
- ",(4, -1525323600, 5) ,(4, -1522728000, 4)"
- ",(4, -1491188400, 7) ,(4, -1247536800, 4)"
- ",(4, 354920409, 5) ,(4, 370728010, 4)"
- ",(4, 386456410, 5) ,(4, 402264011, 4)"
- ",(4, 417992411, 5) ,(4, 433800012, 4)"
- ",(4, 449614812, 5) ,(4, 465346812, 8)"
- ",(4, 481071612, 9) ,(4, 496796413, 8)"
- ",(4, 512521213, 9) ,(4, 528246013, 8)"
- ",(4, 543970813, 9) ,(4, 559695613, 8)"
- ",(4, 575420414, 9) ,(4, 591145214, 8)"
- ",(4, 606870014, 9) ,(4, 622594814, 8)"
- ",(4, 638319615, 9) ,(4, 654649215, 8)"
- ",(4, 670374016, 10) ,(4, 686102416, 11)"
- ",(4, 695779216, 8) ,(4, 701812816, 5)"
- ",(4, 717534017, 4) ,(4, 733273217, 9)"
- ",(4, 748998018, 8) ,(4, 764722818, 9)"
- ",(4, 780447619, 8) ,(4, 796172419, 9)"
- ",(4, 811897219, 8) ,(4, 828226820, 9)"
- ",(4, 846370820, 8) ,(4, 859676420, 9)"
- ",(4, 877820421, 8) ,(4, 891126021, 9)"
- ",(4, 909270021, 8) ,(4, 922575622, 9)"
- ",(4, 941324422, 8) ,(4, 954025222, 9)"
- ",(4, 972774022, 8) ,(4, 985474822, 9)"
- ",(4, 1004223622, 8) ,(4, 1017529222, 9)"
- ",(4, 1035673222, 8) ,(4, 1048978822, 9)"
- ",(4, 1067122822, 8) ,(4, 1080428422, 9)"
- ",(4, 1099177222, 8) ,(4, 1111878022, 9)"
- ",(4, 1130626822, 8) ,(4, 1143327622, 9)"
- ",(4, 1162076422, 8) ,(4, 1174777222, 9)"
- ",(4, 1193526022, 8) ,(4, 1206831622, 9)"
- ",(4, 1224975622, 8) ,(4, 1238281222, 9)"
- ",(4, 1256425222, 8) ,(4, 1269730822, 9)"
- ",(4, 1288479622, 8) ,(4, 1301180422, 9)"
- ",(4, 1319929222, 8) ,(4, 1332630022, 9)"
- ",(4, 1351378822, 8) ,(4, 1364684422, 9)"
- ",(4, 1382828422, 8) ,(4, 1396134022, 9)"
- ",(4, 1414278022, 8) ,(4, 1427583622, 9)"
- ",(4, 1445727622, 8) ,(4, 1459033222, 9)"
- ",(4, 1477782022, 8) ,(4, 1490482822, 9)"
- ",(4, 1509231622, 8) ,(4, 1521932422, 9)"
- ",(4, 1540681222, 8) ,(4, 1553986822, 9)"
- ",(4, 1572130822, 8) ,(4, 1585436422, 9)"
- ",(4, 1603580422, 8) ,(4, 1616886022, 9)"
- ",(4, 1635634822, 8) ,(4, 1648335622, 9)"
- ",(4, 1667084422, 8) ,(4, 1679785222, 9)"
- ",(4, 1698534022, 8) ,(4, 1711839622, 9)"
- ",(4, 1729983622, 8) ,(4, 1743289222, 9)"
- ",(4, 1761433222, 8) ,(4, 1774738822, 9)"
- ",(4, 1792882822, 8) ,(4, 1806188422, 9)"
- ",(4, 1824937222, 8) ,(4, 1837638022, 9)"
- ",(4, 1856386822, 8) ,(4, 1869087622, 9)"
- ",(4, 1887836422, 8) ,(4, 1901142022, 9)"
- ",(4, 1919286022, 8) ,(4, 1932591622, 9)"
- ",(4, 1950735622, 8) ,(4, 1964041222, 9)"
- ",(4, 1982790022, 8) ,(4, 1995490822, 9)"
- ",(4, 2014239622, 8) ,(4, 2026940422, 9)"
- ",(4, 2045689222, 8) ,(4, 2058390022, 9)"
- ",(4, 2077138822, 8) ,(4, 2090444422, 9)"
- ",(4, 2108588422, 8) ,(4, 2121894022, 9)"
- ",(4, 2140038022, 8), (5, -1009875600, 1);\n");
-
-
- }
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_transition_type.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_transition_type ("
- "Time_zone_id int unsigned NOT NULL,"
- "Transition_type_id int unsigned NOT NULL,"
- "Offset int signed DEFAULT 0 NOT NULL,"
- "Is_DST tinyint unsigned DEFAULT 0 NOT NULL,"
- "Abbreviation char(8) DEFAULT '' NOT NULL,"
- "PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Time zone transition types';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_transition_type (Time_zone_id,"
- "Transition_type_id, Offset, Is_DST, Abbreviation) VALUES"
- "(1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET')"
- ",(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET')"
- ",(2, 0, 0, 0, 'UTC')"
- ",(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST')"
- ",(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST')"
- ",(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD')"
- ",(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET')"
- ",(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD')"
- ",(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET')"
- ",(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST')"
- ",(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST')"
- ",(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD')"
- ",(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET')"
- ",(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD')"
- ",(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET')"
- ",(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST');\n");
-
- }
- }
-
- if (test_sys_file(mdata,"mysql/time_zone_leap_second.frm"))
- {
- fprintf(out,
- "CREATE TABLE time_zone_leap_second ("
- "Transition_time bigint signed NOT NULL,"
- "Correction int signed NOT NULL,"
- "PRIMARY KEY TranTime (Transition_time)"
- ") engine=MyISAM CHARACTER SET utf8 "
- "comment='Leap seconds information for time zones';\n");
-
- if (test)
- {
- fprintf(out,
- "INSERT INTO time_zone_leap_second "
- "(Transition_time, Correction) VALUES "
- "(78796800, 1) ,(94694401, 2) ,(126230402, 3)"
- ",(157766403, 4) ,(189302404, 5) ,(220924805, 6)"
- ",(252460806, 7) ,(283996807, 8) ,(315532808, 9)"
- ",(362793609, 10) ,(394329610, 11) ,(425865611, 12)"
- ",(489024012, 13) ,(567993613, 14) ,(631152014, 15)"
- ",(662688015, 16) ,(709948816, 17) ,(741484817, 18)"
- ",(773020818, 19) ,(820454419, 20) ,(867715220, 21)"
- ",(915148821, 22);\n");
- }
- }
-
- return fclose(out);
-}
diff --git a/mysql-test/my_manage.c b/mysql-test/my_manage.c
deleted file mode 100644
index e5d1be42f95..00000000000
--- a/mysql-test/my_manage.c
+++ /dev/null
@@ -1,887 +0,0 @@
-/*
- Copyright (c) 2003 Novell, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include
-#include
-#ifndef __WIN__
-#include
-#endif
-#include
-#ifdef __NETWARE__
-#include
-#include
-#else
-#include
-#ifndef __WIN__
-#include
-#include
-#include
-#include /* FIXME HAVE_FNMATCH_H or something */
-#else
-#include
-#include
-#include
-#endif
-#endif
-#include
-#include
-#include
-#include
-
-#include "my_manage.h"
-
-#ifndef __NETWARE__
-#define ASSERT assert
-extern char **environ;
-#endif
-
-
-
-/******************************************************************************
-
- macros
-
-******************************************************************************/
-
-/******************************************************************************
-
- global variables
-
-******************************************************************************/
-
-/******************************************************************************
-
- functions
-
-******************************************************************************/
-
-/******************************************************************************
-
- init_args()
-
- Init an argument list.
-
-******************************************************************************/
-
-void init_args(arg_list_t *al)
-{
- ASSERT(al != NULL);
-
- al->argc= 0;
- al->size= ARG_BUF;
- al->argv= malloc(al->size * sizeof(char *));
- ASSERT(al->argv != NULL);
-
- return;
-}
-
-/******************************************************************************
-
- add_arg()
-
- Add an argument to a list.
-
-******************************************************************************/
-
-void add_arg(arg_list_t *al, const char *format, ...)
-{
- va_list ap;
- char temp[FN_REFLEN];
-
- ASSERT(al != NULL);
-
- /* increase size */
- if (al->argc >= (int)al->size)
- {
- al->size+= ARG_BUF;
- al->argv= realloc(al->argv, al->size * sizeof(char *));
- ASSERT(al->argv != NULL);
- }
-
- if (format)
- {
- va_start(ap, format);
- vsprintf(temp, format, ap);
- va_end(ap);
-
- al->argv[al->argc]= malloc(strlen(temp)+1);
- ASSERT(al->argv[al->argc] != NULL);
- strcpy(al->argv[al->argc], temp);
-
- ++(al->argc);
- }
- else
- {
- al->argv[al->argc]= NULL;
- }
-
- return;
-}
-
-/******************************************************************************
-
- free_args()
-
- Free an argument list.
-
-******************************************************************************/
-
-void free_args(arg_list_t *al)
-{
- int i;
-
- ASSERT(al != NULL);
-
- for (i= 0; i < al->argc; i++)
- {
- ASSERT(al->argv[i] != NULL);
- free(al->argv[i]);
- al->argv[i]= NULL;
- }
-
- free(al->argv);
- al->argc= 0;
- al->argv= NULL;
-
- return;
-}
-
-/******************************************************************************
-
- sleep_until_file_deleted()
-
- Sleep until the given file is no longer found.
-
-******************************************************************************/
-
-#ifndef __WIN__
-int sleep_until_file_deleted(char *pid_file)
-#else
-int sleep_until_file_deleted(HANDLE pid_file)
-#endif
-{
- int err= 0; /* Initiate to supress warning */
-#ifndef __WIN__
- struct stat buf;
- int i;
-
- for (i= 0; (i < TRY_MAX) && (err= !stat(pid_file, &buf)); i++) sleep(1);
-
- if (err != 0) err= errno;
-#else
- err= (WaitForSingleObject(pid_file, TRY_MAX*1000) == WAIT_TIMEOUT);
-#endif
- return err;
-}
-
-/******************************************************************************
-
- sleep_until_file_exists()
-
- Sleep until the given file exists.
-
-******************************************************************************/
-
-#ifndef __WIN__
-int sleep_until_file_exists(char *pid_file)
-#else
-int sleep_until_file_exists(HANDLE pid_file)
-#endif
-{
- int err= 0; /* Initiate to supress warning */
-#ifndef __WIN__
- struct stat buf;
- int i;
-
- for (i= 0; (i < TRY_MAX) && (err= stat(pid_file, &buf)); i++) sleep(1);
-
- if (err != 0) err= errno;
-#else
- err= (WaitForSingleObject(pid_file, TRY_MAX*1000) == WAIT_TIMEOUT);
-#endif
- return err;
-}
-
-/******************************************************************************
-
- wait_for_server_start()
-
- Wait for the server on the given port to start.
-
-******************************************************************************/
-
-int wait_for_server_start(char *bin_dir __attribute__((unused)),
- char *mysqladmin_file,
- char *user, char *password, int port,char *tmp_dir)
-{
- arg_list_t al;
- int err= 0;
- char trash[FN_REFLEN];
-
- /* mysqladmin file */
- snprintf(trash, FN_REFLEN, "%s/trash.out",tmp_dir);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqladmin_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--port=%u", port);
- add_arg(&al, "--user=%s", user);
- add_arg(&al, "--password=%s", password);
- add_arg(&al, "--silent");
- add_arg(&al, "--host=localhost");
-
-#ifndef __NETWARE__
- add_arg(&al, "--connect_timeout=10");
- add_arg(&al, "-w");
- add_arg(&al, "--protocol=tcp");
-#endif
- add_arg(&al, "ping");
-
- /*
- NetWare does not support the connect timeout in the TCP/IP stack
- -- we will try the ping multiple times
- */
-#ifndef __WIN__
- {
- int i;
- for (i= 0;
- (i < TRY_MAX) && (err= spawn(mysqladmin_file, &al, TRUE, NULL,
- trash, NULL, NULL));
- i++)
- sleep(1);
- }
-#else
- err= spawn(mysqladmin_file, &al, TRUE, NULL,trash, NULL, NULL);
-#endif
-
- /* free args */
- free_args(&al);
-
- return err;
-}
-
-/******************************************************************************
-
- spawn()
-
- Spawn the given path with the given arguments.
-
-******************************************************************************/
-
-#ifdef __NETWARE__
-int spawn(char *path, arg_list_t *al, int join, char *input,
- char *output, char *error, char *pid_file)
-{
- pid_t pid;
- int result= 0;
- wiring_t wiring= { FD_UNUSED, FD_UNUSED, FD_UNUSED };
- unsigned long flags= PROC_CURRENT_SPACE | PROC_INHERIT_CWD;
-
- /* open wiring */
- if (input)
- wiring.infd= open(input, O_RDONLY);
-
- if (output)
- wiring.outfd= open(output, O_WRONLY | O_CREAT | O_TRUNC);
-
- if (error)
- wiring.errfd= open(error, O_WRONLY | O_CREAT | O_TRUNC);
-
- /* procve requires a NULL */
- add_arg(al, NULL);
-
- /* go */
- pid= procve(path, flags, NULL, &wiring, NULL, NULL, 0,
- NULL, (const char **)al->argv);
-
- /* close wiring */
- if (wiring.infd != -1)
- close(wiring.infd);
-
- if (wiring.outfd != -1)
- close(wiring.outfd);
-
- if (wiring.errfd != -1)
- close(wiring.errfd);
-
- return result;
-}
-#elif __WIN__
-
-int spawn(char *path, arg_list_t *al, int join, char *input,
- char *output, char *error, HANDLE *pid)
-{
- bool result;
- int i;
- STARTUPINFO startup_info;
- PROCESS_INFORMATION process_information;
- DWORD exit_code;
- char win_args[1024]= "";
-
- /* Skip the first parameter */
- for (i= 1; i < al->argc; i++)
- {
- ASSERT(al->argv[i] != NULL);
- strcat(win_args,al->argv[i]);
- strcat(win_args," ");
- }
-
- memset(&startup_info,0,sizeof(STARTUPINFO));
- startup_info.cb= sizeof(STARTUPINFO);
-
- if (input)
- freopen(input, "rb", stdin);
-
- if (output)
- freopen(output, "wb", stdout);
-
- if (error)
- freopen(error, "wb", stderr);
-
- result= CreateProcess(
- path,
- (LPSTR)&win_args,
- NULL,
- NULL,
- TRUE,
- 0,
- NULL,
- NULL,
- &startup_info,
- &process_information
- );
-
- if (result && process_information.hProcess)
- {
- if (join)
- {
- if (WaitForSingleObject(process_information.hProcess, mysqld_timeout)
- == WAIT_TIMEOUT)
- {
- exit_code= -1;
- }
- else
- {
- GetExitCodeProcess(process_information.hProcess, &exit_code);
- }
- CloseHandle(process_information.hProcess);
- }
- else
- {
- exit_code= 0;
- }
- if (pid != NULL)
- *pid= process_information.hProcess;
- }
- else
- {
- exit_code= -1;
- }
- if (input)
- freopen("CONIN$","rb",stdin);
- if (output)
- freopen("CONOUT$","wb",stdout);
- if (error)
- freopen("CONOUT$","wb",stderr);
-
- return exit_code;
-}
-#else
-int spawn(char *path, arg_list_t *al, int join, char *input,
- char *output, char *error, char *pid_file __attribute__((unused)))
-{
- pid_t pid;
- int res_exec= 0;
- int result= 0;
-
- pid= fork();
-
- if (pid == -1)
- {
- fprintf(stderr, "fork was't created\n");
- /* We can't create the fork...exit with error */
- return EXIT_FAILURE;
- }
-
- if (pid > 0)
- {
- /* The parent process is waiting for child process if join is not zero */
- if (join)
- {
- waitpid(pid, &result, 0);
- if (WIFEXITED(result) != 0)
- {
- result= WEXITSTATUS(result);
- }
- else
- {
- result= EXIT_FAILURE;
- }
- }
- }
- else
- {
-
- /* Child process */
- add_arg(al, NULL);
-
- /* Reassign streams */
- if (input)
- freopen(input, "r", stdin);
-
- if (output)
- freopen(output, "w", stdout);
-
- if (error)
- freopen(error, "w", stderr);
-
- /* Spawn the process */
- if ((res_exec= execve(path, al->argv, environ)) < 0)
- exit(EXIT_FAILURE);
-
- /* Restore streams */
- if (input)
- freopen("/dev/tty", "r", stdin);
-
- if (output)
- freopen("/dev/tty", "w", stdout);
-
- if (error)
- freopen("/dev/tty", "w", stderr);
-
- exit(0);
- }
-
- return result;
-}
-#endif
-/******************************************************************************
-
- stop_server()
-
- Stop the server with the given port and pid file.
-
-******************************************************************************/
-
-int stop_server(char *bin_dir __attribute__((unused)), char *mysqladmin_file,
- char *user, char *password, int port,
-#ifndef __WIN__
- char *pid_file,
-#else
- HANDLE pid_file,
-#endif
- char *tmp_dir)
-{
- arg_list_t al;
- int err= 0;
- char trash[FN_REFLEN];
-
- snprintf(trash, FN_REFLEN, "%s/trash.out",tmp_dir);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqladmin_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--port=%u", port);
- add_arg(&al, "--user=%s", user);
- add_arg(&al, "--password=%s", password);
- add_arg(&al, "-O");
- add_arg(&al, "shutdown_timeout=20");
-#ifndef __NETWARE__
- add_arg(&al, "--protocol=tcp");
-#endif
- add_arg(&al, "shutdown");
-
- /* spawn */
- if ((err= spawn(mysqladmin_file, &al, TRUE, NULL,
- trash, NULL, NULL)) == 0)
- {
- sleep_until_file_deleted(pid_file);
- }
- else
- {
-#ifndef __WIN__
- pid_t pid= get_server_pid(pid_file);
-
- /* shutdown failed - kill server */
- kill_server(pid);
-
- sleep(TRY_MAX);
-
- /* remove pid file if possible */
- err= remove(pid_file);
-#else
- TerminateProcess(pid_file,err);
-#endif
- }
-
- /* free args */
- free_args(&al);
-
- return err;
-}
-
-/******************************************************************************
-
- get_server_pid()
-
- Get the VM id with the given pid file.
-
-******************************************************************************/
-
-#ifndef __WIN__
-pid_t get_server_pid(char *pid_file)
-{
- char buf[FN_REFLEN];
- int fd, err;
- char *p;
- pid_t id= 0;
-
- /* discover id */
- fd= open(pid_file, O_RDONLY);
-
- err= read(fd, buf, FN_REFLEN);
-
- close(fd);
-
- if (err > 0)
- {
- /* terminate string */
- if ((p= strchr(buf, '\n')) != NULL)
- {
- *p= '\0';
-
- /* check for a '\r' */
- if ((p= strchr(buf, '\r')) != NULL)
- {
- *p= '\0';
- }
- }
- else
- {
- buf[err]= '\0';
- }
-
- id= strtol(buf, NULL, 0);
- }
-
- return id;
-}
-
-/******************************************************************************
-
- kill_server()
-
- Force a kill of the server with the given pid.
-
-******************************************************************************/
-
-void kill_server(pid_t pid)
-{
- if (pid > 0)
- {
-#if !defined(__NETWARE__)
- /* Send SIGTERM to pid */
- kill(pid, SIGTERM);
-#else /* __NETWARE__ */
- /* destroy vm */
- NXVmDestroy(pid);
-#endif
- }
-}
-#endif
-/******************************************************************************
-
- del_tree()
-
- Delete the directory and subdirectories.
-
-******************************************************************************/
-
-void del_tree(char *dir)
-{
-#ifndef __WIN__
- DIR *parent= opendir(dir);
- struct dirent *entry;
- char temp[FN_REFLEN];
-
- if (parent == NULL)
- {
- return;
- }
-
- while ((entry= readdir(parent)) != NULL)
- {
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", dir, entry->d_name);
-
- if (entry->d_name[0] == '.')
- {
- /* Skip */
- }
- else
- {
-/* FIXME missing test in acinclude.m4 */
-#ifndef STRUCT_DIRENT_HAS_D_TYPE
- struct stat st;
-
- if (lstat(entry->d_name, &st) == -1)
- {
- /* FIXME error */
- return;
- }
- if (S_ISDIR(st.st_mode))
-#else
- if (S_ISDIR(entry->d_type))
-#endif
- {
- /* delete subdirectory */
- del_tree(temp);
- }
- else
- {
- /* remove file */
- remove(temp);
- }
- }
- }
- /* remove directory */
- rmdir(dir);
-#else
- struct _finddata_t parent;
-#if defined(_MSC_VER) && _MSC_VER > 1200
- intptr_t handle;
-#else
- long handle;
-#endif /* _MSC_VER && _MSC_VER > 1200 */
- char temp[FN_REFLEN];
- char mask[FN_REFLEN];
-
- snprintf(mask,FN_REFLEN,"%s/*.*",dir);
-
- if ((handle=_findfirst(mask,&parent)) == -1L)
- {
- return;
- }
-
- do
- {
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", dir, parent.name);
- if (parent.name[0] == '.')
- {
- /* Skip */
- }
- else
- if (parent.attrib & _A_SUBDIR)
- {
- /* delete subdirectory */
- del_tree(temp);
- }
- else
- {
- /* remove file */
- remove(temp);
- }
- } while (_findnext(handle,&parent) == 0);
-
- _findclose(handle);
-
- /* remove directory */
- _rmdir(dir);
-#endif
-}
-
-/******************************************************************************
-
- removef()
-
-******************************************************************************/
-
-int removef(const char *format, ...)
-{
-#ifdef __NETWARE__
- va_list ap;
- char path[FN_REFLEN];
-
- va_start(ap, format);
-
- vsnprintf(path, FN_REFLEN, format, ap);
-
- va_end(ap);
- return remove(path);
-
-#elif __WIN__
- {
- va_list ap;
- char path[FN_REFLEN];
- struct _finddata_t parent;
-#if defined(_MSC_VER) && _MSC_VER > 1200
- intptr_t handle;
-#else
- long handle;
-#endif /* _MSC_VER && _MSC_VER > 1200 */
- char temp[FN_REFLEN];
- char *p;
-
- va_start(ap, format);
-
- vsnprintf(path, FN_REFLEN, format, ap);
-
- va_end(ap);
-
- p= path + strlen(path);
- while (*p != '\\' && *p != '/' && p > path) p--;
-
- if ((handle=_findfirst(path,&parent)) == -1L)
- {
- /* if there is not files....it's ok */
- return 0;
- }
-
- *p= '\0';
-
- do
- {
- if (! (parent.attrib & _A_SUBDIR))
- {
- snprintf(temp, FN_REFLEN, "%s/%s", path, parent.name);
- remove(temp);
- }
- }while (_findnext(handle,&parent) == 0);
-
- _findclose(handle);
- }
-#else
- DIR *parent;
- struct dirent *entry;
- char temp[FN_REFLEN];
- va_list ap;
- char path[FN_REFLEN];
- char *p;
- /* Get path with mask */
- va_start(ap, format);
-
- vsnprintf(path, FN_REFLEN, format, ap);
-
- va_end(ap);
-
- p= path + strlen(path);
- while (*p != '\\' && *p != '/' && p > path) p--;
- *p= '\0';
- p++;
-
- parent= opendir(path);
-
- if (parent == NULL)
- {
- return 1; /* Error, directory missing */
- }
-
- while ((entry= readdir(parent)) != NULL)
- {
- /* entry is not directory and entry matches with mask */
-#ifndef STRUCT_DIRENT_HAS_D_TYPE
- struct stat st;
-
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", path, entry->d_name);
-
- if (lstat(temp, &st) == -1)
- {
- return 1; /* Error couldn't lstat file */
- }
-
- if (!S_ISDIR(st.st_mode) && !fnmatch(p, entry->d_name,0))
-#else
- if (!S_ISDIR(entry->d_type) && !fnmatch(p, entry->d_name,0))
-#endif
- {
- /* create long name */
- snprintf(temp, FN_REFLEN, "%s/%s", path, entry->d_name);
- /* Delete only files */
- remove(temp);
- }
- }
-#endif
- return 0;
-}
-
-/******************************************************************************
-
- get_basedir()
-
-******************************************************************************/
-
-void get_basedir(char *argv0, char *basedir)
-{
- char temp[FN_REFLEN];
- char *p;
- int position;
-
- ASSERT(argv0 != NULL);
- ASSERT(basedir != NULL);
-
- strcpy(temp, strlwr(argv0));
- while ((p= strchr(temp, '\\')) != NULL) *p= '/';
-
- if ((position= strinstr(temp, "/bin/")) != 0)
- {
- p= temp + position;
- *p= '\0';
- strcpy(basedir, temp);
- }
-}
-
-uint strinstr(reg1 const char *str,reg4 const char *search)
-{
- reg2 my_string i,j;
- my_string start= (my_string) str;
-
- skipp:
- while (*str != '\0')
- {
- if (*str++ == *search)
- {
- i=(my_string) str;
- j= (my_string) search+1;
- while (*j)
- if (*i++ != *j++) goto skipp;
- return ((uint) (str - start));
- }
- }
- return (0);
-}
-
-/******************************************************************************
-
- remove_empty_file()
-
-******************************************************************************/
-
-void remove_empty_file(const char *file_name)
-{
- struct stat file;
-
- if (!stat(file_name,&file))
- {
- if (!file.st_size)
- remove(file_name);
- }
-}
diff --git a/mysql-test/my_manage.h b/mysql-test/my_manage.h
deleted file mode 100644
index 5df77b01af8..00000000000
--- a/mysql-test/my_manage.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- Copyright (c) 2002 Novell, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifndef _MY_MANAGE
-#define _MY_MANAGE
-
-/******************************************************************************
-
- includes
-
-******************************************************************************/
-
-#include
-#ifndef __WIN__
-#include
-#endif
-#ifndef __NETWARE__
-#include
-#include
-#include
-
-#ifndef __WIN__
-#define strnicmp strncasecmp
-#define strlwr(STRARG) (STRARG)
-#else
-int my_vsnprintf_(char *to, size_t n, const char* value, ...);
-#endif
-#endif
-
-/******************************************************************************
-
- macros
-
-******************************************************************************/
-
-#define ARG_BUF 10
-#define TRY_MAX 5
-
-#ifdef __WIN__
-#define PATH_MAX _MAX_PATH
-#define NAME_MAX _MAX_FNAME
-#define kill(A,B) TerminateProcess((HANDLE)A,0)
-#define NOT_NEED_PID 0
-#define MASTER_PID 1
-#define SLAVE_PID 2
-#define mysqld_timeout 60000
-
-int pid_mode;
-bool run_server;
-bool skip_first_param;
-
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#endif
-
-
-/******************************************************************************
-
- structures
-
-******************************************************************************/
-
-typedef struct
-{
-
- int argc;
- char **argv;
-
- size_t size;
-
-} arg_list_t;
-
-#ifdef __WIN__
-typedef int pid_t;
-#endif
-/******************************************************************************
-
- global variables
-
-******************************************************************************/
-
-/******************************************************************************
-
- prototypes
-
-******************************************************************************/
-
-void init_args(arg_list_t *);
-void add_arg(arg_list_t *, const char *, ...);
-void free_args(arg_list_t *);
-
-#ifndef __WIN__
-int sleep_until_file_exists(char *);
-int sleep_until_file_deleted(char *);
-#else
-int sleep_until_file_exists(HANDLE);
-int sleep_until_file_deleted(HANDLE);
-#endif
-int wait_for_server_start(char *, char *, char *, char *, int,char *);
-
-#ifndef __WIN__
-int spawn(char *, arg_list_t *, int, char *, char *, char *, char *);
-#else
-int spawn(char *, arg_list_t *, int , char *, char *, char *, HANDLE *);
-#endif
-
-#ifndef __WIN__
-int stop_server(char *, char *, char *, char *, int, char *,char *);
-pid_t get_server_pid(char *);
-void kill_server(pid_t pid);
-#else
-int stop_server(char *, char *, char *, char *, int, HANDLE,char *);
-#endif
-void del_tree(char *);
-int removef(const char *, ...);
-
-void get_basedir(char *, char *);
-void remove_empty_file(const char *file_name);
-
-bool create_system_files(const char *mdata,const char *output_file, bool test);
-
-#endif /* _MY_MANAGE */
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index c2e2ed8bf98..a9a1d46079c 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -144,7 +144,6 @@ our $glob_use_running_server= 0;
our $glob_use_running_ndbcluster= 0;
our $glob_use_running_ndbcluster_slave= 0;
our $glob_use_embedded_server= 0;
-our $glob_mysqld_restart= 0;
our @glob_test_mode;
our $using_ndbcluster_master= 0;
@@ -285,7 +284,7 @@ our $opt_start_from;
our $opt_strace_client;
-our $opt_timer;
+our $opt_timer= 1;
our $opt_user;
our $opt_user_test;
@@ -503,7 +502,9 @@ sub initial_setup () {
chomp($glob_cygwin_shell);
}
$glob_basedir= dirname($glob_mysql_test_dir);
- $glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
+ # Expect mysql-bench to be located adjacent to the source tree, by default
+ $glob_mysql_bench_dir= "$glob_basedir/../mysql-bench"
+ unless defined $glob_mysql_bench_dir;
# needs to be same length to test logging (FIXME what???)
$path_slave_load_tmpdir= "../../var/tmp";
@@ -531,10 +532,10 @@ sub command_line_setup () {
my $opt_master_myport= 9306;
my $opt_slave_myport= 9308;
- $opt_ndbcluster_port= 9350;
- $opt_ndbcluster_port_slave= 9358;
- my $im_port= 9310;
- my $im_mysqld1_port= 9312;
+ $opt_ndbcluster_port= 9310;
+ $opt_ndbcluster_port_slave= 9311;
+ my $im_port= 9312;
+ my $im_mysqld1_port= 9313;
my $im_mysqld2_port= 9314;
#
@@ -609,7 +610,7 @@ sub command_line_setup () {
# Specify ports
'master_port=i' => \$opt_master_myport,
'slave_port=i' => \$opt_slave_myport,
- 'ndbcluster-port=i' => \$opt_ndbcluster_port,
+ 'ndbcluster-port|ndbcluster_port=i' => \$opt_ndbcluster_port,
'ndbcluster-port-slave=i' => \$opt_ndbcluster_port_slave,
'manager-port=i' => \$opt_manager_port, # Currently not used
'im-port=i' => \$im_port, # Instance Manager port.
@@ -665,6 +666,7 @@ sub command_line_setup () {
# Directories
'tmpdir=s' => \$opt_tmpdir,
'vardir=s' => \$opt_vardir,
+ 'benchdir=s' => \$glob_mysql_bench_dir,
# Misc
'comment=s' => \$opt_comment,
@@ -680,7 +682,7 @@ sub command_line_setup () {
'socket=s' => \$opt_socket,
'start-dirty' => \$opt_start_dirty,
'start-and-exit' => \$opt_start_and_exit,
- 'timer' => \$opt_timer,
+ 'timer!' => \$opt_timer,
'unified-diff|udiff' => \$opt_udiff,
'user-test=s' => \$opt_user_test,
'user=s' => \$opt_user,
@@ -1683,8 +1685,8 @@ sub run_benchmarks ($) {
mtr_add_arg($args, "--create-options=TYPE=ndb");
}
- my $benchdir= "$glob_basedir/sql-bench";
- chdir($benchdir); # FIXME check error
+ chdir($glob_mysql_bench_dir)
+ or mtr_error("Couldn't chdir to '$glob_mysql_bench_dir': $!");
# FIXME write shorter....
@@ -2562,7 +2564,7 @@ sub mysqld_arguments ($$$$$$) {
mtr_add_arg($args, "%s--server-id=%d", $prefix, $id);
mtr_add_arg($args, "%s--socket=%s", $prefix,
$master->[$idx]->{'path_mysock'});
- mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:128M:autoextend", $prefix);
+ mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:10M:autoextend", $prefix);
mtr_add_arg($args, "%s--local-infile", $prefix);
mtr_add_arg($args, "%s--datadir=%s", $prefix,
$master->[$idx]->{'path_myddir'});
@@ -2941,6 +2943,12 @@ sub im_start($$) {
mtr_add_arg($args, "--defaults-file=%s",
$instance_manager->{'defaults_file'});
+ if ( $opt_debug )
+ {
+ mtr_add_arg($args, "--debug=d:t:i:A,%s/log/im.trace",
+ $opt_vardir_trace);
+ }
+
foreach my $opt (@{$opts})
{
mtr_add_arg($args, $opt);
@@ -3194,11 +3202,6 @@ sub run_mysqltest ($) {
mtr_init_args(\$args);
- if ( $opt_valgrind_mysqltest )
- {
- valgrind_arguments($args, \$exe);
- }
-
mtr_add_arg($args, "--no-defaults");
mtr_add_arg($args, "--silent");
mtr_add_arg($args, "-v");
@@ -3314,6 +3317,17 @@ sub run_mysqltest ($) {
# Add arguments that should not go into the MYSQL_TEST env var
# ----------------------------------------------------------------------
+ if ( $opt_valgrind_mysqltest )
+ {
+ # Prefix the Valgrind options to the argument list.
+ # We do this here, since we do not want to Valgrind the nested invocations
+ # of mysqltest; that would mess up the stderr output causing test failure.
+ my @args_saved = @$args;
+ mtr_init_args(\$args);
+ valgrind_arguments($args, \$exe);
+ mtr_add_arg($args, "%s", $_) for @args_saved;
+ }
+
mtr_add_arg($args, "--test-file");
mtr_add_arg($args, $tinfo->{'path'});
@@ -3581,15 +3595,17 @@ Options to control what engine/variation to run
compress Use the compressed protocol between client and server
ssl Use ssl protocol between client and server
skip-ssl Dont start server with support for ssl connections
- bench Run the benchmark suite FIXME
- small-bench FIXME
+ bench Run the benchmark suite
+ small-bench Run the benchmarks with --small-tests --small-tables
Options to control directories to use
- vardir=DIR The directory where files generated from the test run
- is stored(default: ./var). Specifying a ramdisk or tmpfs
- will speed up tests.
+ benchdir=DIR The directory where the benchmark suite is stored
+ (default: ../../mysql-bench)
tmpdir=DIR The directory where temporary files are stored
(default: ./var/tmp).
+ vardir=DIR The directory where files generated from the test run
+ is stored (default: ./var). Specifying a ramdisk or
+ tmpfs will speed up tests.
Options to control what test suites or cases to run
@@ -3604,8 +3620,9 @@ Options to control what test suites or cases to run
skip-rpl Skip the replication test cases.
skip-im Don't start IM, and skip the IM test cases
skip-test=PREFIX Skip test cases which name are prefixed with PREFIX
- big-test Pass "--big-test" to mysqltest which will set the environment
- variable BIG_TEST, which can be checked from test cases.
+ big-test Pass "--big-test" to mysqltest which will set the
+ environment variable BIG_TEST, which can be checked
+ from test cases.
Options that specify ports
@@ -3631,25 +3648,29 @@ Options to run test on running server
Options for debugging the product
- gdb Start the mysqld(s) in gdb
- manual-gdb Let user manually start mysqld in gdb, before running test(s)
- manual-debug Let user manually start mysqld in debugger, before running test(s)
+ client-ddd Start mysqltest client in ddd
+ client-debugger=NAME Start mysqltest in the selected debugger
client-gdb Start mysqltest client in gdb
ddd Start mysqld in ddd
- client-ddd Start mysqltest client in ddd
+ debug Dump trace output for all servers and client programs
debugger=NAME Start mysqld in the selected debugger
- client-debugger=NAME Start mysqltest in the selected debugger
- strace-client FIXME
+ gdb Start the mysqld(s) in gdb
+ manual-debug Let user manually start mysqld in debugger, before
+ running test(s)
+ manual-gdb Let user manually start mysqld in gdb, before running
+ test(s)
master-binary=PATH Specify the master "mysqld" to use
slave-binary=PATH Specify the slave "mysqld" to use
+ strace-client Create strace output for mysqltest client
Options for coverage, profiling etc
gcov FIXME
gprof FIXME
- valgrind Run the "mysqltest" and "mysqld" executables using valgrind
- valgrind-all Same as "valgrind" but will also add "verbose" and "--show-reachable"
- flags to valgrind
+ valgrind Run the "mysqltest" and "mysqld" executables using
+ valgrind
+ valgrind-all Same as "valgrind" but will also add "verbose" and
+ "--show-reachable" flags to valgrind
valgrind-mysqltest Run the "mysqltest" executable with valgrind
valgrind-mysqld Run the "mysqld" executable with valgrind
valgrind-options=ARGS Extra options to give valgrind
@@ -3658,10 +3679,10 @@ Options for coverage, profiling etc
Misc options
comment=STR Write STR to the output
+ notimer Don't show test case execution time
script-debug Debug this script itself
- timer Show test case execution time
- start-and-exit Only initiate and start the "mysqld" servers, use the startup
- settings for the specified test case if any
+ start-and-exit Only initiate and start the "mysqld" servers, use
+ the startup settings for the specified test case if any
start-dirty Only start the "mysqld" servers without initiation
fast Don't try to cleanup from earlier runs
reorder Reorder tests to get less server restarts
@@ -3676,7 +3697,6 @@ Deprecated options
Options not yet described, or that I want to look into more
- debug
local
local-master
netware
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 4485d8ca073..aad71f89ef2 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -7,6 +7,12 @@
# List of failed cases (--force) backported from 4.1 by Joerg
# :-)
+#echo "##################################################";
+#echo "This script is deprecated and will soon be removed";
+#echo "Use mysql-test-run.pl instead";
+#echo "##################################################";
+#echo
+
#++
# Access Definitions
#--
@@ -238,12 +244,9 @@ MASTER_MYPORT=9306
SLAVE_RUNNING=0
SLAVE_MYHOST=127.0.0.1
SLAVE_MYPORT=9308 # leave room for 2 masters for cluster tests
-MYSQL_MANAGER_PORT=9305 # needs to be out of the way of slaves
+MYSQL_MANAGER_LOG=$MYSQL_TEST_DIR/var/log/manager.log
NDBCLUSTER_PORT=9350
NDBCLUSTER_PORT_SLAVE=9358
-MYSQL_MANAGER_PW_FILE=$MYSQL_TEST_DIR/var/tmp/manager.pwd
-MYSQL_MANAGER_LOG=$MYSQL_TEST_DIR/var/log/manager.log
-MYSQL_MANAGER_USER=root
#
# To make it easier for different devs to work on the same host,
@@ -257,14 +260,12 @@ MYSQL_MANAGER_USER=root
#
if [ -n "$MTR_BUILD_THREAD" ] ; then
MASTER_MYPORT=`expr $MTR_BUILD_THREAD '*' 10 + 10000`
- MYSQL_MANAGER_PORT=`expr $MASTER_MYPORT + 2`
SLAVE_MYPORT=`expr $MASTER_MYPORT + 3`
NDBCLUSTER_PORT=`expr $MASTER_MYPORT + 6`
NDBCLUSTER_PORT_SLAVE=`expr $MASTER_MYPORT + 7`
echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD"
echo "Using MASTER_MYPORT = $MASTER_MYPORT"
- echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT"
echo "Using SLAVE_MYPORT = $SLAVE_MYPORT"
echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT"
echo "Using NDBCLUSTER_PORT_SLAVE = $NDBCLUSTER_PORT_SLAVE"
@@ -330,6 +331,8 @@ STRESS_INIT_FILE=""
STRESS_TEST_FILE=""
STRESS_TEST=""
+$ECHO "Logging: $0 $*" # To ensure we see all arguments in the output, for the test analysis tool
+
while test $# -gt 0; do
case "$1" in
--embedded-server)
@@ -347,7 +350,6 @@ while test $# -gt 0; do
--user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;;
--force) FORCE=1 ;;
--timer) USE_TIMER=1 ;;
- --verbose-manager) MANAGER_QUIET_OPT="" ;;
--old-master) MASTER_40_ARGS="";;
--master-binary=*)
MASTER_MYSQLD=`$ECHO "$1" | $SED -e "s;--master-binary=;;"` ;;
@@ -393,7 +395,6 @@ while test $# -gt 0; do
LOCAL_MASTER=1 ;;
--master_port=*) MASTER_MYPORT=`$ECHO "$1" | $SED -e "s;--master_port=;;"` ;;
--slave_port=*) SLAVE_MYPORT=`$ECHO "$1" | $SED -e "s;--slave_port=;;"` ;;
- --manager-port=*) MYSQL_MANAGER_PORT=`$ECHO "$1" | $SED -e "s;--manager_port=;;"` ;;
--ndbcluster_port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster_port=;;"` ;;
--ndbcluster-port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster-port=;;"` ;;
--ndbcluster-port-slave=*) NDBCLUSTER_PORT_SLAVE=`$ECHO "$1" | $SED -e "s;--ndbcluster-port-slave=;;"` ;;
@@ -409,11 +410,6 @@ while test $# -gt 0; do
MYSQL_TEST_SSL_OPTS="--ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
--ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem \
--ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem" ;;
- --no-manager | --skip-manager) USE_MANAGER=0 ;;
- --manager)
- USE_MANAGER=1
- USE_RUNNING_SERVER=0
- ;;
--start-and-exit)
START_AND_EXIT=1
;;
@@ -631,7 +627,6 @@ fi
#--
MYRUN_DIR=$MYSQL_TEST_DIR/var/run
-MANAGER_PID_FILE="$MYRUN_DIR/manager.pid"
MASTER_MYDDIR="$MYSQL_TEST_DIR/var/master-data"
MASTER_MYSOCK="$MYSQL_TMP_DIR/master.sock"
@@ -745,9 +740,6 @@ if [ x$SOURCE_DIST = x1 ] ; then
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$BASEDIR/extra/mysql_waitpid"
MYSQL_MY_PRINT_DEFAULTS="$BASEDIR/extra/my_print_defaults"
- MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc"
- MYSQL_MANAGER="$BASEDIR/tools/mysqltestmanager"
- MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen"
MYSQL="$CLIENT_BINDIR/mysql"
LANGUAGE="$BASEDIR/sql/share/english/"
CHARSETSDIR="$BASEDIR/sql/share/charsets"
@@ -808,9 +800,6 @@ else
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$CLIENT_BINDIR/mysql_waitpid"
MYSQL_MY_PRINT_DEFAULTS="$CLIENT_BINDIR/my_print_defaults"
- MYSQL_MANAGER="$CLIENT_BINDIR/mysqltestmanager"
- MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc"
- MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen"
MYSQL="$CLIENT_BINDIR/mysql"
INSTALL_DB="./install_test_db --bin"
MYSQL_FIX_SYSTEM_TABLES="$CLIENT_BINDIR/mysql_fix_privilege_tables"
@@ -1200,96 +1189,28 @@ abort_if_failed()
fi
}
-start_manager()
+launch_in_background()
{
- if [ $USE_MANAGER = 0 ] ; then
- echo "Manager disabled, skipping manager start."
- $RM -f $MYSQL_MANAGER_LOG
- return
- fi
- $ECHO "Starting MySQL Manager"
- if [ -f "$MANAGER_PID_FILE" ] ; then
- kill `cat $MANAGER_PID_FILE`
- sleep 1
- if [ -f "$MANAGER_PID_FILE" ] ; then
- kill -9 `cat $MANAGER_PID_FILE`
- sleep 1
- fi
- fi
-
- $RM -f $MANAGER_PID_FILE
- MYSQL_MANAGER_PW=`$MYSQL_MANAGER_PWGEN -u $MYSQL_MANAGER_USER \
- -o $MYSQL_MANAGER_PW_FILE`
- $MYSQL_MANAGER --log=$MYSQL_MANAGER_LOG --port=$MYSQL_MANAGER_PORT \
- --password-file=$MYSQL_MANAGER_PW_FILE --pid-file=$MANAGER_PID_FILE
- abort_if_failed "Could not start MySQL manager"
- mysqltest_manager_args="--manager-host=localhost \
- --manager-user=$MYSQL_MANAGER_USER \
- --manager-password=$MYSQL_MANAGER_PW \
- --manager-port=$MYSQL_MANAGER_PORT \
- --manager-wait-timeout=$START_WAIT_TIMEOUT"
- MYSQL_TEST="$MYSQL_TEST $mysqltest_manager_args"
- MYSQL_TEST_ARGS="$MYSQL_TEST_ARGS $mysqltest_manager_args"
- while [ ! -f $MANAGER_PID_FILE ] ; do
- sleep 1
- done
- echo "Manager started"
-}
-
-stop_manager()
-{
- if [ $USE_MANAGER = 0 ] ; then
- return
- fi
- $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT -u$MYSQL_MANAGER_USER \
- -p$MYSQL_MANAGER_PW -P $MYSQL_MANAGER_PORT <> $CUR_MYERR 2>&1 &
- sleep 2 #hack
- return
- fi
- $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \
- --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT <> $CUR_MYERR 2>&1 &
+ sleep 2 #hack
+ return
}
-manager_term()
+shutdown_mysqld()
{
pid=$1
ident=$2
- if [ $USE_MANAGER = 0 ] ; then
- # Shutdown time must be high as slave may be in reconnect
- $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=5 --shutdown_timeout=70 shutdown >> $MYSQL_MANAGER_LOG 2>&1
- res=$?
- # Some systems require an extra connect
- $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=1 ping >> $MYSQL_MANAGER_LOG 2>&1
- if test $res = 0
- then
- wait_for_pid $pid
- fi
- return $res
+ # Shutdown time must be high as slave may be in reconnect
+ $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=5 --shutdown_timeout=70 shutdown >> $MYSQL_MANAGER_LOG 2>&1
+ res=$?
+ # Some systems require an extra connect
+ $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=1 ping >> $MYSQL_MANAGER_LOG 2>&1
+ if test $res = 0
+ then
+ wait_for_pid $pid
fi
- $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \
- --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT < $GDB_MASTER_INIT$1
- manager_launch master ddd -display $DISPLAY --debugger \
+ launch_in_background master ddd -display $DISPLAY --debugger \
"gdb -x $GDB_MASTER_INIT$1" $MASTER_MYSQLD
elif [ x$DO_GDB = x1 ]
then
@@ -1493,11 +1414,11 @@ end
r
EOF
fi ) > $GDB_MASTER_INIT$1
- manager_launch master $XTERM -display $DISPLAY \
+ launch_in_background master $XTERM -display $DISPLAY \
-title "Master" -e gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD
fi
else
- manager_launch master $MASTER_MYSQLD $master_args
+ launch_in_background master $MASTER_MYSQLD $master_args
fi
sleep_until_file_created $MASTER_MYPID$1 $wait_for_master
wait_for_master=$SLEEP_TIME_FOR_SECOND_MASTER
@@ -1630,7 +1551,7 @@ start_slave()
if [ x$DO_DDD = x1 ]
then
$ECHO "set args $slave_args" > $GDB_SLAVE_INIT
- manager_launch $slave_ident ddd -display $DISPLAY --debugger \
+ launch_in_background $slave_ident ddd -display $DISPLAY --debugger \
"gdb -x $GDB_SLAVE_INIT" $SLAVE_MYSQLD
elif [ x$DO_GDB = x1 ]
then
@@ -1651,11 +1572,11 @@ end
r
EOF
fi ) > $GDB_SLAVE_INIT
- manager_launch $slave_ident $XTERM -display $DISPLAY -title "Slave" -e \
+ launch_in_background $slave_ident $XTERM -display $DISPLAY -title "Slave" -e \
gdb -x $GDB_SLAVE_INIT $SLAVE_MYSQLD
fi
else
- manager_launch $slave_ident $SLAVE_MYSQLD $slave_args
+ launch_in_background $slave_ident $SLAVE_MYSQLD $slave_args
fi
eval "SLAVE$1_RUNNING=1"
sleep_until_file_created $slave_pid $wait_for_slave
@@ -1687,7 +1608,7 @@ stop_slave ()
if [ x$this_slave_running = x1 ]
then
pid=`$CAT $slave_pid`
- manager_term $pid $slave_ident
+ shutdown_mysqld $pid $slave_ident
if [ $? != 0 ] && [ -f $slave_pid ]
then # try harder!
$ECHO "slave not cooperating with mysqladmin, will try manual kill"
@@ -1734,7 +1655,7 @@ stop_master ()
# MASTER_RUNNING=0 to get cleanup when calling start_master().
if [ x$USE_EMBEDDED_SERVER != x1 ] ; then
pid=`$CAT $MASTER_MYPID$1`
- manager_term $pid master $1
+ shutdown_mysqld $pid master $1
if [ $? != 0 ] && [ -f $MASTER_MYPID$1 ]
then # try harder!
$ECHO "master not cooperating with mysqladmin, will try manual kill"
@@ -2060,7 +1981,6 @@ run_testcase ()
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then
mysql_stop
- stop_manager
fi
exit 1
fi
@@ -2230,18 +2150,6 @@ then
rm $MASTER_MYPID $MASTER_MYPID"1" $SLAVE_MYPID
fi
- # Kill any running managers
- if [ -f "$MANAGER_PID_FILE" ]
- then
- kill `cat $MANAGER_PID_FILE`
- sleep 1
- if [ -f "$MANAGER_PID_FILE" ]
- then
- kill -9 `cat $MANAGER_PID_FILE`
- sleep 1
- fi
- fi
-
# just to force stopping anything from previous runs
USE_NDBCLUSTER_OPT=$USE_NDBCLUSTER
stop_ndbcluster
@@ -2265,10 +2173,8 @@ then
USE_NDBCLUSTER_OPT=
fi
- start_manager
-
-# Do not automagically start daemons if we are in gdb or running only one test
-# case
+# Do not automagically start daemons if we are in gdb or running only one
+# test case
if [ -z "$DO_GDB" ] && [ -z "$DO_DDD" ]
then
mysql_start
@@ -2315,7 +2221,6 @@ then
fi
cd $savedir
mysql_stop
- stop_manager
exit
fi
@@ -2337,7 +2242,6 @@ then
if [ $USE_RUNNING_SERVER -eq 0 ] ; then
mysql_stop
- stop_manager
fi
exit
@@ -2384,7 +2288,6 @@ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && [ -z "$DO_DDD" ]
then
mysql_stop
fi
-stop_manager
report_stats
$ECHO
diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c
deleted file mode 100644
index 79db71fa274..00000000000
--- a/mysql-test/mysql_test_run_new.c
+++ /dev/null
@@ -1,1933 +0,0 @@
-/*
- Copyright (c) 2002, 2003 Novell, Inc. All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include
-#include
-#include
-#ifndef __WIN__
-#include
-#endif
-#include
-#ifdef __NETWARE__
-#include
-#include
-#endif
-#include
-#include
-#ifndef __WIN__
-#include
-#endif
-#include
-#ifdef __NETWARE__
-#include
-#endif
-#ifdef __WIN__
-#include
-#include
-#include
-#endif
-
-#include "my_manage.h"
-
-/******************************************************************************
-
- macros
-
-******************************************************************************/
-
-#define HEADER "TEST RESULT \n"
-#define DASH "-------------------------------------------------------\n"
-
-#define NW_TEST_SUFFIX ".nw-test"
-#define NW_RESULT_SUFFIX ".nw-result"
-#define TEST_SUFFIX ".test"
-#define RESULT_SUFFIX ".result"
-#define REJECT_SUFFIX ".reject"
-#define OUT_SUFFIX ".out"
-#define ERR_SUFFIX ".err"
-
-const char *TEST_PASS= "[ pass ]";
-const char *TEST_SKIP= "[ skip ]";
-const char *TEST_FAIL= "[ fail ]";
-const char *TEST_BAD= "[ bad ]";
-const char *TEST_IGNORE= "[ignore]";
-
-/******************************************************************************
-
- global variables
-
-******************************************************************************/
-
-#ifdef __NETWARE__
-static char base_dir[FN_REFLEN]= "sys:/mysql";
-#else
-static char base_dir[FN_REFLEN]= "..";
-#endif
-static char db[FN_LEN]= "test";
-static char user[FN_LEN]= "root";
-static char password[FN_LEN]= "";
-
-int master_port= 9306;
-int slave_port= 9307;
-
-#if !defined(__NETWARE__) && !defined(__WIN__)
-static char master_socket[FN_REFLEN]= "./var/tmp/master.sock";
-static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock";
-#endif
-
-#define MAX_COUNT_TESTES 1024
-
-#ifdef __WIN__
-# define sting_compare_func _stricmp
-#else
-# ifdef HAVE_STRCASECMP
-# define sting_compare_func strcasecmp
-# else
-# define sting_compare_func strcmp
-# endif
-#endif
-
-/* comma delimited list of tests to skip or empty string */
-#ifndef __WIN__
-static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix ";
-#else
-/*
- The most ignore testes contain the calls of system command
-
- lowercase_table3 is disabled by Gerg
- system_mysql_db_fix is disabled by Gerg
- sp contains a command system
- rpl_EE_error contains a command system
- rpl_loaddatalocal contains a command system
- ndb_autodiscover contains a command system
- rpl_rotate_logs contains a command system
- repair contains a command system
- rpl_trunc_binlog contains a command system
- mysqldump contains a command system
- rpl000001 makes non-exit loop...temporary skiped
-*/
-static char skip_test[FN_REFLEN]=
-" lowercase_table3 ,"
-" system_mysql_db_fix ,"
-" sp ,"
-" rpl_EE_error ,"
-" rpl_loaddatalocal ,"
-" ndb_autodiscover ,"
-" rpl_rotate_logs ,"
-" repair ,"
-" rpl_trunc_binlog ,"
-" mysqldump ,"
-" rpl000001 ,"
-
-" derived ,"
-" group_by ,"
-" select ,"
-" rpl000015 ,"
-" subselect ";
-#endif
-static char ignore_test[FN_REFLEN]= "";
-
-static char bin_dir[FN_REFLEN];
-static char mysql_test_dir[FN_REFLEN];
-static char test_dir[FN_REFLEN];
-static char mysql_tmp_dir[FN_REFLEN];
-static char result_dir[FN_REFLEN];
-static char master_dir[FN_REFLEN];
-static char slave_dir[FN_REFLEN];
-static char slave1_dir[FN_REFLEN];
-static char slave2_dir[FN_REFLEN];
-static char lang_dir[FN_REFLEN];
-static char char_dir[FN_REFLEN];
-
-static char mysqladmin_file[FN_REFLEN];
-static char mysqld_file[FN_REFLEN];
-static char mysqltest_file[FN_REFLEN];
-#ifndef __WIN__
-static char master_pid[FN_REFLEN];
-static char slave_pid[FN_REFLEN];
-static char sh_file[FN_REFLEN]= "/bin/sh";
-#else
-static HANDLE master_pid;
-static HANDLE slave_pid;
-#endif
-
-static char master_opt[FN_REFLEN]= "";
-static char slave_opt[FN_REFLEN]= "";
-
-static char slave_master_info[FN_REFLEN]= "";
-
-static char master_init_script[FN_REFLEN]= "";
-static char slave_init_script[FN_REFLEN]= "";
-
-/* OpenSSL */
-static char ca_cert[FN_REFLEN];
-static char server_cert[FN_REFLEN];
-static char server_key[FN_REFLEN];
-static char client_cert[FN_REFLEN];
-static char client_key[FN_REFLEN];
-
-int total_skip= 0;
-int total_pass= 0;
-int total_fail= 0;
-int total_test= 0;
-
-int total_ignore= 0;
-
-int use_openssl= FALSE;
-int master_running= FALSE;
-int slave_running= FALSE;
-int skip_slave= TRUE;
-int single_test= TRUE;
-
-int restarts= 0;
-
-FILE *log_fd= NULL;
-
-static char argument[FN_REFLEN];
-
-/******************************************************************************
-
- functions
-
-******************************************************************************/
-
-/******************************************************************************
-
- prototypes
-
-******************************************************************************/
-
-void report_stats();
-void install_db(char *);
-void mysql_install_db();
-void start_master();
-void start_slave();
-void mysql_start();
-void stop_slave();
-void stop_master();
-void mysql_stop();
-void mysql_restart();
-int read_option(char *, char *);
-void run_test(char *);
-void setup(char *);
-void vlog(const char *, va_list);
-void mlog(const char *, ...);
-void log_info(const char *, ...);
-void log_error(const char *, ...);
-void log_errno(const char *, ...);
-void die(const char *);
-char *str_tok(char* dest, char *string, const char *delim);
-#ifndef __WIN__
-void run_init_script(const char *script_name);
-#endif
-/******************************************************************************
-
- report_stats()
-
- Report the gathered statistics.
-
-******************************************************************************/
-
-void report_stats()
-{
- if (total_fail == 0)
- {
- mlog("\nAll %d test(s) were successful.\n", total_test);
- }
- else
- {
- double percent= ((double)total_pass / total_test) * 100;
-
- mlog("\nFailed %u/%u test(s), %.02f%% successful.\n",
- total_fail, total_test, percent);
- mlog("\nThe .out and .err files in %s may give you some\n", result_dir);
- mlog("hint of what when wrong.\n");
- mlog("\nIf you want to report this error, please first read "
- "the documentation\n");
- mlog("at: http://www.mysql.com/doc/M/y/MySQL_test_suite.html\n");
- }
-}
-
-/******************************************************************************
-
- install_db()
-
- Install the a database.
-
-******************************************************************************/
-
-void install_db(char *datadir)
-{
- arg_list_t al;
- int err;
- char input[FN_REFLEN];
- char output[FN_REFLEN];
- char error[FN_REFLEN];
-
- /* input file */
-#ifdef __NETWARE__
- snprintf(input, FN_REFLEN, "%s/bin/init_db.sql", base_dir);
-#else
- snprintf(input, FN_REFLEN, "%s/mysql-test/init_db.sql", base_dir);
-#endif
- snprintf(output, FN_REFLEN, "%s/install.out", datadir);
- snprintf(error, FN_REFLEN, "%s/install.err", datadir);
-
- if (create_system_files(datadir,input, TRUE))
- die("Unable to create init_db.sql.");
- /* args */
- init_args(&al);
- add_arg(&al, mysqld_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--bootstrap");
- add_arg(&al, "--skip-grant-tables");
- add_arg(&al, "--basedir=%s", base_dir);
- add_arg(&al, "--datadir=%s", datadir);
- add_arg(&al, "--skip-innodb");
- add_arg(&al, "--skip-ndbcluster");
- add_arg(&al, "--skip-bdb");
-#ifndef __NETWARE__
- add_arg(&al, "--character-sets-dir=%s", char_dir);
- add_arg(&al, "--language=%s", lang_dir);
-#endif
-// added
- add_arg(&al, "--default-character-set=latin1");
- add_arg(&al, "--innodb_data_file_path=ibdata1:50M");
-
- /* spawn */
- if ((err= spawn(mysqld_file, &al, TRUE, input, output, error, NULL)) != 0)
- {
- die("Unable to create database.");
- }
-
- /* free args */
- free_args(&al);
-}
-
-/******************************************************************************
-
- mysql_install_db()
-
- Install the test databases.
-
-******************************************************************************/
-
-void mysql_install_db()
-{
- char temp[FN_REFLEN];
-
- /* var directory */
- snprintf(temp, FN_REFLEN, "%s/var", mysql_test_dir);
-
- /* create var directory */
-#ifndef __WIN__
- mkdir(temp, S_IRWXU);
- /* create subdirectories */
- mlog("Creating test-suite folders...\n");
- snprintf(temp, FN_REFLEN, "%s/var/run", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-
- snprintf(temp, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-
- snprintf(temp, FN_REFLEN, "%s/var/slave1-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave1-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave1-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-
- snprintf(temp, FN_REFLEN, "%s/var/slave2-data", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave2-data/mysql", mysql_test_dir);
- mkdir(temp, S_IRWXU);
- snprintf(temp, FN_REFLEN, "%s/var/slave2-data/test", mysql_test_dir);
- mkdir(temp, S_IRWXU);
-#else
- mkdir(temp);
- /* create subdirectories */
- mlog("Creating test-suite folders...\n");
- snprintf(temp, FN_REFLEN, "%s/var/run", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/mysql", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/master-data/test", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/mysql", mysql_test_dir);
- mkdir(temp);
- snprintf(temp, FN_REFLEN, "%s/var/slave-data/test", mysql_test_dir);
- mkdir(temp);
-#endif
-
- /* install databases */
- mlog("Creating test databases for master... \n");
- install_db(master_dir);
- mlog("Creating test databases for slave... \n");
- install_db(slave_dir);
- install_db(slave1_dir);
- install_db(slave2_dir);
-}
-
-/******************************************************************************
-
- start_master()
-
- Start the master server.
-
-******************************************************************************/
-
-void start_master()
-{
- arg_list_t al;
- int err;
- char master_out[FN_REFLEN];
- char master_err[FN_REFLEN];
- char temp2[FN_REFLEN];
-
- /* remove old berkeley db log files that can confuse the server */
- removef("%s/log.*", master_dir);
-
- /* remove stale binary logs */
- removef("%s/var/log/*-bin.*", mysql_test_dir);
-
- /* remove stale binary logs */
- removef("%s/var/log/*.index", mysql_test_dir);
-
- /* remove master.info file */
- removef("%s/master.info", master_dir);
-
- /* remove relay files */
- removef("%s/var/log/*relay*", mysql_test_dir);
-
- /* remove relay-log.info file */
- removef("%s/relay-log.info", master_dir);
-
- /* init script */
- if (master_init_script[0] != 0)
- {
-#ifdef __NETWARE__
- /* TODO: use the scripts */
- if (strinstr(master_init_script, "repair_part2-master.sh") != 0)
- {
- FILE *fp;
-
- /* create an empty index file */
- snprintf(temp, FN_REFLEN, "%s/test/t1.MYI", master_dir);
- fp= fopen(temp, "wb+");
-
- fputs("1", fp);
-
- fclose(fp);
- }
-#elif !defined(__WIN__)
- run_init_script(master_init_script);
-#endif
- }
-
- /* redirection files */
- snprintf(master_out, FN_REFLEN, "%s/var/run/master%u.out",
- mysql_test_dir, restarts);
- snprintf(master_err, FN_REFLEN, "%s/var/run/master%u.err",
- mysql_test_dir, restarts);
-#ifndef __WIN__
- snprintf(temp2,FN_REFLEN,"%s/var",mysql_test_dir);
- mkdir(temp2,S_IRWXU);
- snprintf(temp2,FN_REFLEN,"%s/var/log",mysql_test_dir);
- mkdir(temp2,S_IRWXU);
-#else
- snprintf(temp2,FN_REFLEN,"%s/var",mysql_test_dir);
- mkdir(temp2);
- snprintf(temp2,FN_REFLEN,"%s/var/log",mysql_test_dir);
- mkdir(temp2);
-#endif
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqld_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--log-bin=%s/var/log/master-bin",mysql_test_dir);
- add_arg(&al, "--server-id=1");
- add_arg(&al, "--basedir=%s", base_dir);
- add_arg(&al, "--port=%u", master_port);
-#if !defined(__NETWARE__) && !defined(__WIN__)
- add_arg(&al, "--socket=%s",master_socket);
-#endif
- add_arg(&al, "--local-infile");
- add_arg(&al, "--core");
- add_arg(&al, "--log-bin-trust-function-creators");
- add_arg(&al, "--datadir=%s", master_dir);
-#ifndef __WIN__
- add_arg(&al, "--pid-file=%s", master_pid);
-#endif
- add_arg(&al, "--character-sets-dir=%s", char_dir);
- add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
- add_arg(&al, "--language=%s", lang_dir);
-
- add_arg(&al, "--rpl-recovery-rank=1");
- add_arg(&al, "--init-rpl-role=master");
- add_arg(&al, "--default-character-set=latin1");
-// add_arg(&al, "--innodb_data_file_path=ibdata1:50M");
-#ifdef DEBUG /* only for debug builds */
- add_arg(&al, "--debug");
-#endif
-
- if (use_openssl)
- {
- add_arg(&al, "--ssl-ca=%s", ca_cert);
- add_arg(&al, "--ssl-cert=%s", server_cert);
- add_arg(&al, "--ssl-key=%s", server_key);
- }
-
- /* $MASTER_40_ARGS */
- add_arg(&al, "--rpl-recovery-rank=1");
- add_arg(&al, "--init-rpl-role=master");
-
- /* $SMALL_SERVER */
- add_arg(&al, "-O");
- add_arg(&al, "key_buffer_size=1M");
- add_arg(&al, "-O");
- add_arg(&al, "sort_buffer=256K");
- add_arg(&al, "-O");
- add_arg(&al, "max_heap_table_size=1M");
-
- /* $EXTRA_MASTER_OPT */
- if (master_opt[0] != 0)
- {
- char *p;
-
- p= (char *)str_tok(argument, master_opt, " \t");
- if (!strstr(master_opt, "timezone"))
- {
- while (p)
- {
- add_arg(&al, "%s", p);
- p= (char *)str_tok(argument, NULL, " \t");
- }
- }
- }
-
- /* remove the pid file if it exists */
-#ifndef __WIN__
- remove(master_pid);
-#endif
-
- /* spawn */
-#ifdef __WIN__
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- master_out, master_err, &master_pid)) == 0)
-#else
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- master_out, master_err, master_pid)) == 0)
-#endif
- {
- sleep_until_file_exists(master_pid);
-
- if ((err= wait_for_server_start(bin_dir, mysqladmin_file, user, password,
- master_port, mysql_tmp_dir)) == 0)
- {
- master_running= TRUE;
- }
- else
- {
- log_error("The master server went down early.");
- }
- }
- else
- {
- log_error("Unable to start master server.");
- }
-
- /* free_args */
- free_args(&al);
-}
-
-/******************************************************************************
-
- start_slave()
-
- Start the slave server.
-
-******************************************************************************/
-
-void start_slave()
-{
- arg_list_t al;
- int err;
- char slave_out[FN_REFLEN];
- char slave_err[FN_REFLEN];
-
- /* skip? */
- if (skip_slave) return;
-
- /* remove stale binary logs */
- removef("%s/*-bin.*", slave_dir);
-
- /* remove stale binary logs */
- removef("%s/*.index", slave_dir);
-
- /* remove master.info file */
- removef("%s/master.info", slave_dir);
-
- /* remove relay files */
- removef("%s/var/log/*relay*", mysql_test_dir);
-
- /* remove relay-log.info file */
- removef("%s/relay-log.info", slave_dir);
-
- /* init script */
- if (slave_init_script[0] != 0)
- {
-#ifdef __NETWARE__
- /* TODO: use the scripts */
- if (strinstr(slave_init_script, "rpl000016-slave.sh") != 0)
- {
- /* create empty master.info file */
- snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir);
- close(open(temp, O_WRONLY | O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO));
- }
- else if (strinstr(slave_init_script, "rpl000017-slave.sh") != 0)
- {
- FILE *fp;
-
- /* create a master.info file */
- snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir);
- fp= fopen(temp, "wb+");
-
- fputs("master-bin.000001\n", fp);
- fputs("4\n", fp);
- fputs("127.0.0.1\n", fp);
- fputs("replicate\n", fp);
- fputs("aaaaaaaaaaaaaaab\n", fp);
- fputs("9306\n", fp);
- fputs("1\n", fp);
- fputs("0\n", fp);
-
- fclose(fp);
- }
- else if (strinstr(slave_init_script, "rpl_rotate_logs-slave.sh") != 0)
- {
- /* create empty master.info file */
- snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir);
- close(open(temp, O_WRONLY | O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO));
- }
-#elif !defined(__WIN__)
- run_init_script(slave_init_script);
-#endif
- }
-
- /* redirection files */
- snprintf(slave_out, FN_REFLEN, "%s/var/run/slave%u.out",
- mysql_test_dir, restarts);
- snprintf(slave_err, FN_REFLEN, "%s/var/run/slave%u.err",
- mysql_test_dir, restarts);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqld_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--log-bin=slave-bin");
- add_arg(&al, "--relay_log=slave-relay-bin");
- add_arg(&al, "--basedir=%s", base_dir);
-#if !defined(__NETWARE__) && !defined(__WIN__)
- add_arg(&al, "--socket=%s",slave_socket);
-#endif
- add_arg(&al, "--port=%u", slave_port);
- add_arg(&al, "--datadir=%s", slave_dir);
-#ifndef __WIN__
- add_arg(&al, "--pid-file=%s", slave_pid);
-#endif
- add_arg(&al, "--character-sets-dir=%s", char_dir);
- add_arg(&al, "--core");
- add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
- add_arg(&al, "--language=%s", lang_dir);
-
- add_arg(&al, "--exit-info=256");
- add_arg(&al, "--log-slave-updates");
- add_arg(&al, "--init-rpl-role=slave");
- add_arg(&al, "--skip-innodb");
- add_arg(&al, "--skip-slave-start");
- add_arg(&al, "--slave-load-tmpdir=../../var/tmp");
-
- add_arg(&al, "--report-user=%s", user);
- add_arg(&al, "--report-host=127.0.0.1");
- add_arg(&al, "--report-port=%u", slave_port);
-
- add_arg(&al, "--master-retry-count=10");
- add_arg(&al, "-O");
- add_arg(&al, "slave_net_timeout=10");
- add_arg(&al, "--log-slave-updates");
- add_arg(&al, "--log=%s/var/log/slave.log", mysql_test_dir);
- add_arg(&al, "--default-character-set=latin1");
- add_arg(&al, "--skip-ndbcluster");
-
-#ifdef DEBUG /* only for debug builds */
- add_arg(&al, "--debug");
-#endif
-
- if (use_openssl)
- {
- add_arg(&al, "--ssl-ca=%s", ca_cert);
- add_arg(&al, "--ssl-cert=%s", server_cert);
- add_arg(&al, "--ssl-key=%s", server_key);
- }
-
- /* slave master info */
- if (slave_master_info[0] != 0)
- {
- char *p;
-
- p= (char *)str_tok(argument, slave_master_info, " \t");
-
- while (p)
- {
- add_arg(&al, "%s", p);
- p= (char *)str_tok(argument, NULL, " \t");
- }
- }
- else
- {
- add_arg(&al, "--master-user=%s", user);
- add_arg(&al, "--master-password=%s", password);
- add_arg(&al, "--master-host=127.0.0.1");
- add_arg(&al, "--master-port=%u", master_port);
- add_arg(&al, "--master-connect-retry=1");
- add_arg(&al, "--server-id=2");
- add_arg(&al, "--rpl-recovery-rank=2");
- }
-
- /* small server */
- add_arg(&al, "-O");
- add_arg(&al, "key_buffer_size=1M");
- add_arg(&al, "-O");
- add_arg(&al, "sort_buffer=256K");
- add_arg(&al, "-O");
- add_arg(&al, "max_heap_table_size=1M");
-
-
- /* opt args */
- if (slave_opt[0] != 0)
- {
- char *p;
-
- p= (char *)str_tok(argument, slave_opt, " \t");
-
- while (p)
- {
- add_arg(&al, "%s", p);
- p= (char *)str_tok(argument, NULL, " \t");
- }
- }
-
- /* remove the pid file if it exists */
-#ifndef __WIN__
- remove(slave_pid);
-#endif
- /* spawn */
-#ifdef __WIN__
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- slave_out, slave_err, &slave_pid)) == 0)
-#else
- if ((err= spawn(mysqld_file, &al, FALSE, NULL,
- slave_out, slave_err, slave_pid)) == 0)
-#endif
- {
- sleep_until_file_exists(slave_pid);
-
- if ((err= wait_for_server_start(bin_dir, mysqladmin_file, user, password,
- slave_port, mysql_tmp_dir)) == 0)
- {
- slave_running= TRUE;
- }
- else
- {
- log_error("The slave server went down early.");
- }
- }
- else
- {
- log_error("Unable to start slave server.");
- }
-
- /* free args */
- free_args(&al);
-}
-
-/******************************************************************************
-
- mysql_start()
-
- Start the mysql servers.
-
-******************************************************************************/
-
-void mysql_start()
-{
-
-
- printf("loading master...\r");
- start_master();
-
- printf("loading slave...\r");
- start_slave();
-
- /* activate the test screen */
-#ifdef __NETWARE__
- ActivateScreen(getscreenhandle());
-#endif
-}
-
-/******************************************************************************
-
- stop_slave()
-
- Stop the slave server.
-
-******************************************************************************/
-
-void stop_slave()
-{
- int err;
-
- /* running? */
- if (!slave_running) return;
-
- /* stop */
- if ((err= stop_server(bin_dir, mysqladmin_file, user, password,
- slave_port, slave_pid, mysql_tmp_dir)) == 0)
- {
- slave_running= FALSE;
- }
- else
- {
- log_error("Unable to stop slave server.");
- }
-}
-
-/******************************************************************************
-
- stop_master()
-
- Stop the master server.
-
-******************************************************************************/
-
-void stop_master()
-{
- int err;
-
- /* running? */
- if (!master_running) return;
-
- if ((err= stop_server(bin_dir, mysqladmin_file, user, password,
- master_port, master_pid, mysql_tmp_dir)) == 0)
- {
- master_running= FALSE;
- }
- else
- {
- log_error("Unable to stop master server.");
- }
-}
-
-/******************************************************************************
-
- mysql_stop()
-
- Stop the mysql servers.
-
-******************************************************************************/
-
-void mysql_stop()
-{
-
- stop_master();
-
- stop_slave();
-
- /* activate the test screen */
-#ifdef __NETWARE__
- ActivateScreen(getscreenhandle());
-#endif
-}
-
-/******************************************************************************
-
- mysql_restart()
-
- Restart the mysql servers.
-
-******************************************************************************/
-
-void mysql_restart()
-{
-/* log_info("Restarting the MySQL server(s): %u", ++restarts); */
-
- mysql_stop();
-
- mlog(DASH);
- sleep(1);
-
- mysql_start();
-}
-
-/******************************************************************************
-
- read_option()
-
- Read the option file.
-
-******************************************************************************/
-
-int read_option(char *opt_file, char *opt)
-{
- int fd, err;
- char *p;
- char buf[FN_REFLEN];
-
- /* copy current option */
- strncpy(buf, opt, FN_REFLEN);
-
- /* open options file */
- fd= open(opt_file, O_RDONLY);
- err= read(fd, opt, FN_REFLEN);
- close(fd);
-
- if (err > 0)
- {
- /* terminate string */
- if ((p= strchr(opt, '\n')) != NULL)
- {
- *p= 0;
-
- /* check for a '\r' */
- if ((p= strchr(opt, '\r')) != NULL)
- {
- *p= 0;
- }
- }
- else
- {
- opt[err]= 0;
- }
-
- /* check for $MYSQL_TEST_DIR */
- if ((p= strstr(opt, "$MYSQL_TEST_DIR")) != NULL)
- {
- char temp[FN_REFLEN];
-
- *p= 0;
-
- strcpy(temp, p + strlen("$MYSQL_TEST_DIR"));
- strcat(opt, mysql_test_dir);
- strcat(opt, temp);
- }
- /* Check for double backslash and replace it with single bakslash */
- if ((p= strstr(opt, "\\\\")) != NULL)
- {
- /* bmove is guranteed to work byte by byte */
- bmove(p, p+1, strlen(p)+1);
- }
- }
- else
- {
- /* clear option */
- *opt= 0;
- }
-
- /* compare current option with previous */
- return strcmp(opt, buf);
-}
-
-/******************************************************************************
-
- run_test()
-
- Run the given test case.
-
-******************************************************************************/
-
-void run_test(char *test)
-{
- char temp[FN_REFLEN];
- const char *rstr;
- int skip= FALSE, ignore=FALSE;
- int restart= FALSE;
- int flag= FALSE;
- struct stat info;
-
- /* skip tests in the skip list */
- snprintf(temp, FN_REFLEN, " %s ", test);
- skip= (strinstr(skip_test, temp) != 0);
- if (skip == FALSE)
- ignore= (strinstr(ignore_test, temp) != 0);
-
- snprintf(master_init_script, FN_REFLEN, "%s/%s-master.sh", test_dir, test);
- snprintf(slave_init_script, FN_REFLEN, "%s/%s-slave.sh", test_dir, test);
-#ifdef __WIN__
- if (! stat(master_init_script, &info))
- skip= TRUE;
- if (!stat(slave_init_script, &info))
- skip= TRUE;
-#endif
- if (ignore)
- {
- /* show test */
- mlog("%-46s ", test);
-
- /* ignore */
- rstr= TEST_IGNORE;
- ++total_ignore;
- }
- else if (!skip) /* skip test? */
- {
- char test_file[FN_REFLEN];
- char master_opt_file[FN_REFLEN];
- char slave_opt_file[FN_REFLEN];
- char slave_master_info_file[FN_REFLEN];
- char result_file[FN_REFLEN];
- char reject_file[FN_REFLEN];
- char out_file[FN_REFLEN];
- char err_file[FN_REFLEN];
- int err;
- arg_list_t al;
- /* skip slave? */
- flag= skip_slave;
- skip_slave= (strncmp(test, "rpl", 3) != 0);
- if (flag != skip_slave) restart= TRUE;
-
- /* create files */
- snprintf(master_opt_file, FN_REFLEN, "%s/%s-master.opt", test_dir, test);
- snprintf(slave_opt_file, FN_REFLEN, "%s/%s-slave.opt", test_dir, test);
- snprintf(slave_master_info_file, FN_REFLEN, "%s/%s.slave-mi",
- test_dir, test);
- snprintf(reject_file, FN_REFLEN, "%s/%s%s",
- result_dir, test, REJECT_SUFFIX);
- snprintf(out_file, FN_REFLEN, "%s/%s%s", result_dir, test, OUT_SUFFIX);
- snprintf(err_file, FN_REFLEN, "%s/%s%s", result_dir, test, ERR_SUFFIX);
-
- /* netware specific files */
- snprintf(test_file, FN_REFLEN, "%s/%s%s", test_dir, test, NW_TEST_SUFFIX);
- if (stat(test_file, &info))
- {
- snprintf(test_file, FN_REFLEN, "%s/%s%s", test_dir, test, TEST_SUFFIX);
- if (access(test_file,0))
- {
- printf("Invalid test name %s, %s file not found\n",test,test_file);
- return;
- }
- }
-
- snprintf(result_file, FN_REFLEN, "%s/%s%s",
- result_dir, test, NW_RESULT_SUFFIX);
- if (stat(result_file, &info))
- {
- snprintf(result_file, FN_REFLEN, "%s/%s%s",
- result_dir, test, RESULT_SUFFIX);
- }
-
- /* init scripts */
- if (stat(master_init_script, &info))
- master_init_script[0]= 0;
- else
- restart= TRUE;
-
- if (stat(slave_init_script, &info))
- slave_init_script[0]= 0;
- else
- restart= TRUE;
-
- /* read options */
- if (read_option(master_opt_file, master_opt)) restart= TRUE;
- if (read_option(slave_opt_file, slave_opt)) restart= TRUE;
- if (read_option(slave_master_info_file, slave_master_info)) restart= TRUE;
-
- /* cleanup previous run */
- remove(reject_file);
- remove(out_file);
- remove(err_file);
-
- /* start or restart? */
- if (!master_running) mysql_start();
- else if (restart) mysql_restart();
-
- /* show test */
- mlog("%-46s ", test);
-
- /* args */
- init_args(&al);
- add_arg(&al, "%s", mysqltest_file);
- add_arg(&al, "--no-defaults");
- add_arg(&al, "--port=%u", master_port);
-#if !defined(__NETWARE__) && !defined(__WIN__)
- add_arg(&al, "--socket=%s", master_socket);
- add_arg(&al, "--tmpdir=%s", mysql_tmp_dir);
-#endif
- add_arg(&al, "--database=%s", db);
- add_arg(&al, "--user=%s", user);
- add_arg(&al, "--password=%s", password);
- add_arg(&al, "--silent");
- add_arg(&al, "--basedir=%s/", mysql_test_dir);
- add_arg(&al, "--host=127.0.0.1");
- add_arg(&al, "--skip-safemalloc");
- add_arg(&al, "-v");
- add_arg(&al, "-R");
- add_arg(&al, "%s", result_file);
-
-
- if (use_openssl)
- {
- add_arg(&al, "--ssl-ca=%s", ca_cert);
- add_arg(&al, "--ssl-cert=%s", client_cert);
- add_arg(&al, "--ssl-key=%s", client_key);
- }
-
- /* spawn */
- err= spawn(mysqltest_file, &al, TRUE, test_file, out_file, err_file, NULL);
- /* free args */
- free_args(&al);
-
- remove_empty_file(out_file);
- remove_empty_file(err_file);
-
- if (err == 0)
- {
- /* pass */
- rstr= TEST_PASS;
- ++total_pass;
-
- /* increment total */
- ++total_test;
- }
- else if (err == 2)
- {
- /* skip */
- rstr= TEST_SKIP;
- ++total_skip;
- }
- else if (err == 1)
- {
- /* fail */
- rstr= TEST_FAIL;
- ++total_fail;
-
- /* increment total */
- ++total_test;
- }
- else
- {
- rstr= TEST_BAD;
- }
- }
- else /* early skips */
- {
- /* show test */
- mlog("%-46s ", test);
-
- /* skip */
- rstr= TEST_SKIP;
- ++total_skip;
- }
-
- /* result */
- mlog("%-14s\n", rstr);
-}
-
-/******************************************************************************
-
- vlog()
-
- Log the message.
-
-******************************************************************************/
-
-void vlog(const char *format, va_list ap)
-{
- vfprintf(stdout, format, ap);
- fflush(stdout);
-
- if (log_fd)
- {
- vfprintf(log_fd, format, ap);
- fflush(log_fd);
- }
-}
-
-/******************************************************************************
-
- log()
-
- Log the message.
-
-******************************************************************************/
-
-void mlog(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- vlog(format, ap);
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- log_info()
-
- Log the given information.
-
-******************************************************************************/
-
-void log_info(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- mlog("-- INFO : ");
- vlog(format, ap);
- mlog("\n");
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- log_error()
-
- Log the given error.
-
-******************************************************************************/
-
-void log_error(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- mlog("-- ERROR: ");
- vlog(format, ap);
- mlog("\n");
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- log_errno()
-
- Log the given error and errno.
-
-******************************************************************************/
-
-void log_errno(const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
-
- mlog("-- ERROR: (%003u) ", errno);
- vlog(format, ap);
- mlog("\n");
-
- va_end(ap);
-}
-
-/******************************************************************************
-
- die()
-
- Exit the application.
-
-******************************************************************************/
-
-void die(const char *msg)
-{
- log_error(msg);
-#ifdef __NETWARE__
- pressanykey();
-#endif
- exit(-1);
-}
-
-/******************************************************************************
-
- setup()
-
- Setup the mysql test enviornment.
-
-******************************************************************************/
-
-void setup(char *file __attribute__((unused)))
-{
- char temp[FN_REFLEN];
-#if defined(__WIN__) || defined(__NETWARE__)
- char file_path[FN_REFLEN*2];
-#endif
- char *p;
- int position;
-
- /* set the timezone for the timestamp test */
-#ifdef __WIN__
- _putenv( "TZ=GMT-3" );
-#else
- putenv((char *)"TZ=GMT-3");
-#endif
- /* find base dir */
-#ifdef __NETWARE__
- strcpy(temp, strlwr(file));
- while ((p= strchr(temp, '\\')) != NULL) *p= '/';
-#else
- getcwd(temp, FN_REFLEN);
- position= strlen(temp);
- temp[position]= '/';
- temp[position+1]= 0;
-#ifdef __WIN__
- while ((p= strchr(temp, '\\')) != NULL) *p= '/';
-#endif
-#endif
-
- if ((position= strinstr(temp, "/mysql-test/")) != 0)
- {
- p= temp + position - 1;
- *p= 0;
- strcpy(base_dir, temp);
- }
-
- log_info("Currect directory: %s",base_dir);
-
-#ifdef __NETWARE__
- /* setup paths */
- snprintf(bin_dir, FN_REFLEN, "%s/bin", base_dir);
- snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir);
- snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir);
- snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir);
- snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- snprintf(lang_dir, FN_REFLEN, "%s/share/english", base_dir);
- snprintf(char_dir, FN_REFLEN, "%s/share/charsets", base_dir);
-
-#ifdef HAVE_OPENSSL
- use_openssl= TRUE;
-#endif /* HAVE_OPENSSL */
-
- /* OpenSSL paths */
- snprintf(ca_cert, FN_REFLEN, "%s/std_data/cacert.pem", mysql_test_dir);
- snprintf(server_cert, FN_REFLEN, "%s/std_data/server-cert.pem", mysql_test_dir);
- snprintf(server_key, FN_REFLEN, "%s/std_data/server-key.pem", mysql_test_dir);
- snprintf(client_cert, FN_REFLEN, "%s/std_data/client-cert.pem", mysql_test_dir);
- snprintf(client_key, FN_REFLEN, "%s/std_data/client-key.pem", mysql_test_dir);
-
- /* setup files */
- snprintf(mysqld_file, FN_REFLEN, "%s/mysqld", bin_dir);
- snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest", bin_dir);
- snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin", bin_dir);
- snprintf(master_pid, FN_REFLEN, "%s/var/run/master.pid", mysql_test_dir);
- snprintf(slave_pid, FN_REFLEN, "%s/var/run/slave.pid", mysql_test_dir);
-#elif __WIN__
- /* setup paths */
-#ifdef _DEBUG
- snprintf(bin_dir, FN_REFLEN, "%s/client_debug", base_dir);
-#else
- snprintf(bin_dir, FN_REFLEN, "%s/client_release", base_dir);
-#endif
- snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir);
- snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir);
- snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir);
- snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- snprintf(lang_dir, FN_REFLEN, "%s/share/english", base_dir);
- snprintf(char_dir, FN_REFLEN, "%s/share/charsets", base_dir);
-
-#ifdef HAVE_OPENSSL
- use_openssl= TRUE;
-#endif /* HAVE_OPENSSL */
-
- /* OpenSSL paths */
- snprintf(ca_cert, FN_REFLEN, "%s/std_data/cacert.pem", mysql_test_dir);
- snprintf(server_cert, FN_REFLEN, "%s/std_data/server-cert.pem", mysql_test_dir);
- snprintf(server_key, FN_REFLEN, "%s/std_data/server-key.pem", mysql_test_dir);
- snprintf(client_cert, FN_REFLEN, "%s/std_data/client-cert.pem", mysql_test_dir);
- snprintf(client_key, FN_REFLEN, "%s/std_data/client-key.pem", mysql_test_dir);
-
- /* setup files */
-#ifdef _DEBUG
- snprintf(mysqld_file, FN_REFLEN, "%s/mysqld-debug.exe", bin_dir);
-#else
- snprintf(mysqld_file, FN_REFLEN, "%s/mysqld.exe", bin_dir);
-#endif
- snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest.exe", bin_dir);
- snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin.exe", bin_dir);
-#else
- /* setup paths */
- snprintf(bin_dir, FN_REFLEN, "%s/client", base_dir);
- snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir);
- snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir);
- snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir);
- snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir);
- snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir);
- snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir);
- snprintf(slave1_dir, FN_REFLEN, "%s/var/slave1-data", mysql_test_dir);
- snprintf(slave2_dir, FN_REFLEN, "%s/var/slave2-data", mysql_test_dir);
- snprintf(lang_dir, FN_REFLEN, "%s/sql/share/english", base_dir);
- snprintf(char_dir, FN_REFLEN, "%s/sql/share/charsets", base_dir);
-
-#ifdef HAVE_OPENSSL
- use_openssl= TRUE;
-#endif /* HAVE_OPENSSL */
-
- /* OpenSSL paths */
- snprintf(ca_cert, FN_REFLEN, "%s/std_data/cacert.pem", mysql_test_dir);
- snprintf(server_cert, FN_REFLEN, "%s/std_data/server-cert.pem", mysql_test_dir);
- snprintf(server_key, FN_REFLEN, "%s/std_data/server-key.pem", mysql_test_dir);
- snprintf(client_cert, FN_REFLEN, "%s/std_data/client-cert.pem", mysql_test_dir);
- snprintf(client_key, FN_REFLEN, "%s/std_data/client-key.pem", mysql_test_dir);
-
- /* setup files */
- snprintf(mysqld_file, FN_REFLEN, "%s/sql/mysqld", base_dir);
- snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest", bin_dir);
- snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin", bin_dir);
- snprintf(master_pid, FN_REFLEN, "%s/var/run/master.pid", mysql_test_dir);
- snprintf(slave_pid, FN_REFLEN, "%s/var/run/slave.pid", mysql_test_dir);
-
- snprintf(master_socket,FN_REFLEN, "%s/var/tmp/master.sock", mysql_test_dir);
- snprintf(slave_socket,FN_REFLEN, "%s/var/tmp/slave.sock", mysql_test_dir);
-
-#endif
- /* create log file */
- snprintf(temp, FN_REFLEN, "%s/mysql-test-run.log", mysql_test_dir);
- if ((log_fd= fopen(temp, "w+")) == NULL)
- {
- log_errno("Unable to create log file.");
- }
-
- /* prepare skip test list */
- while ((p= strchr(skip_test, ',')) != NULL) *p= ' ';
- strcpy(temp, strlwr(skip_test));
- snprintf(skip_test, FN_REFLEN, " %s ", temp);
-
- /* environment */
-#ifdef __NETWARE__
- setenv("MYSQL_TEST_DIR", mysql_test_dir, 1);
- snprintf(file_path, FN_REFLEN*2,
- "%s/client/mysqldump --no-defaults -u root --port=%u",
- bin_dir, master_port);
- setenv("MYSQL_DUMP", file_path, 1);
- snprintf(file_path, FN_REFLEN*2,
- "%s/client/mysqlbinlog --no-defaults --local-load=%s",
- bin_dir, mysql_tmp_dir);
- setenv("MYSQL_BINLOG", file_path, 1);
-#elif __WIN__
- snprintf(file_path,FN_REFLEN,"MYSQL_TEST_DIR=%s",mysql_test_dir);
- _putenv(file_path);
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_DUMP=%s/mysqldump.exe --no-defaults -uroot --port=%u",
- bin_dir, master_port);
- _putenv(file_path);
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_BINLOG=%s/mysqlbinlog.exe --no-defaults --local-load=%s",
- bin_dir, mysql_tmp_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "TESTS_BINDIR=%s/tests", base_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "CHARSETSDIR=%s/sql/share/charsets", base_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL=%s/mysql --port=%u ",
- bin_dir, master_port);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_FIX_SYSTEM_TABLES=%s/scripts/mysql_fix_privilege_tables --no-defaults "
- "--host=localhost --port=%u "
- "--basedir=%s --bindir=%s --verbose",
- base_dir,master_port, base_dir, bin_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "NDB_TOOLS_DIR=%s/ndb/tools", base_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "CLIENT_BINDIR=%s", bin_dir);
- _putenv(file_path);
-
- snprintf(file_path, FN_REFLEN*2,
- "MYSQL_CLIENT_TEST=%s/tests/mysql_client_test --no-defaults --testcase "
- "--user=root --port=%u --silent",
- base_dir, master_port);
- _putenv(file_path);
-
-#else
- {
- static char env_MYSQL_TEST_DIR[FN_REFLEN*2];
- static char env_MYSQL_DUMP[FN_REFLEN*2];
- static char env_MYSQL_BINLOG[FN_REFLEN*2];
- static char env_MASTER_MYSOCK[FN_REFLEN*2];
- static char env_TESTS_BINDIR[FN_REFLEN*2];
- static char env_CHARSETSDIR[FN_REFLEN*2];
- static char env_MYSQL[FN_REFLEN*2];
- static char env_MYSQL_FIX_SYSTEM_TABLES[FN_REFLEN*2];
- static char env_CLIENT_BINDIR[FN_REFLEN*2];
- static char env_MYSQL_CLIENT_TEST[FN_REFLEN*2];
- static char env_NDB_TOOLS_DIR[FN_REFLEN*2];
- static char env_NDB_MGM[FN_REFLEN*2];
- static char env_NDB_BACKUP_DIR[FN_REFLEN*2];
- static char env_NDB_TOOLS_OUTPUT[FN_REFLEN*2];
-
- snprintf(env_MYSQL_TEST_DIR,FN_REFLEN*2,
- "MYSQL_TEST_DIR=%s",mysql_test_dir);
- putenv(env_MYSQL_TEST_DIR);
-
- snprintf(env_MYSQL_DUMP, FN_REFLEN*2,"MYSQL_DUMP=%s/mysqldump --no-defaults "
- "-uroot --port=%u --socket=%s ",
- bin_dir, master_port, master_socket);
- putenv(env_MYSQL_DUMP);
-
- snprintf(env_MYSQL_BINLOG, FN_REFLEN*2,
- "MYSQL_BINLOG=%s/mysqlbinlog --no-defaults --local-load=%s -uroot ",
- bin_dir, mysql_tmp_dir);
- putenv(env_MYSQL_BINLOG);
-
- snprintf(env_MASTER_MYSOCK, FN_REFLEN*2,
- "MASTER_MYSOCK=%s", master_socket);
- putenv(env_MASTER_MYSOCK);
-
- snprintf(env_TESTS_BINDIR, FN_REFLEN*2,
- "TESTS_BINDIR=%s/tests", base_dir);
- putenv(env_TESTS_BINDIR);
-
- snprintf(env_CHARSETSDIR, FN_REFLEN*2,
- "CHARSETSDIR=%s/sql/share/charsets", base_dir);
- putenv(env_CHARSETSDIR);
-
- snprintf(env_MYSQL, FN_REFLEN*2,
- "MYSQL=%s/mysql --port=%u --socket=%s -uroot ",
- bin_dir, master_port, master_socket);
- putenv(env_MYSQL);
-
- snprintf(env_MYSQL_FIX_SYSTEM_TABLES, FN_REFLEN*2,
- "MYSQL_FIX_SYSTEM_TABLES=%s/scripts/mysql_fix_privilege_tables --no-defaults "
- "--host=localhost --port=%u --socket=%s "
- "--basedir=%s --bindir=%s --verbose -uroot ",
- base_dir,master_port, master_socket, base_dir, bin_dir);
- putenv(env_MYSQL_FIX_SYSTEM_TABLES);
-
-
- snprintf(env_CLIENT_BINDIR, FN_REFLEN*2,
- "CLIENT_BINDIR=%s", bin_dir);
- putenv(env_CLIENT_BINDIR);
-
- snprintf(env_MYSQL_CLIENT_TEST, FN_REFLEN*2,
- "MYSQL_CLIENT_TEST=%s/tests/mysql_client_test --no-defaults --testcase "
- "--user=root --socket=%s --port=%u --silent",
- base_dir, master_socket, master_port);
- putenv(env_MYSQL_CLIENT_TEST);
-
- // NDB
-
- snprintf(env_NDB_TOOLS_DIR, FN_REFLEN*2,
- "NDB_TOOLS_DIR=%s/ndb/tools", base_dir);
- putenv(env_NDB_TOOLS_DIR);
-
- snprintf(env_NDB_MGM, FN_REFLEN*2,
- "NDB_MGM=%s/ndb/src/mgmclient/ndb_mgm", base_dir);
- putenv(env_NDB_MGM);
-
- //NDBCLUSTER_PORT=9350
- snprintf(env_NDB_BACKUP_DIR, FN_REFLEN*2,
- "NDB_BACKUP_DIR=%s/var/ndbcluster-%i", mysql_test_dir, 9350);
- putenv(env_NDB_BACKUP_DIR);
-
- snprintf(env_NDB_TOOLS_OUTPUT, FN_REFLEN*2,
- "NDB_TOOLS_OUTPUT=%s/var/log/ndb_tools.log", mysql_test_dir);
- putenv(env_NDB_TOOLS_OUTPUT);
-
- putenv((char *)"NDB_STATUS_OK=1");
-
-// NDB_MGM="$BASEDIR/ndb/src/mgmclient/ndb_mgm"
-// NDB_BACKUP_DIR=$MYSQL_TEST_DIR/var/ndbcluster-$NDBCLUSTER_PORT
-// NDB_TOOLS_OUTPUT=$MYSQL_TEST_DIR/var/log/ndb_tools.log
- }
-
-#endif
-
-#ifndef __WIN__
- putenv((char *)"MASTER_MYPORT=9306");
- putenv((char *)"SLAVE_MYPORT=9307");
- putenv((char *)"MYSQL_TCP_PORT=3306");
-
-#else
- _putenv("MASTER_MYPORT=9306");
- _putenv("SLAVE_MYPORT=9307");
- _putenv("MYSQL_TCP_PORT=3306");
-#endif
-
-}
-
-/*
- Compare names of testes for right order
-*/
-int compare( const void *arg1, const void *arg2 )
-{
- return sting_compare_func( * ( char** ) arg1, * ( char** ) arg2 );
-}
-
-
-
-/******************************************************************************
-
- main()
-
-******************************************************************************/
-
-int main(int argc, char **argv)
-{
- int is_ignore_list= 0;
- char **names= 0;
- char **testes= 0;
- int name_index;
- int index;
- char var_dir[FN_REFLEN];
- /* setup */
- setup(argv[0]);
-
- /* delete all file in var */
- snprintf(var_dir,FN_REFLEN,"%s/var",mysql_test_dir);
- del_tree(var_dir);
-
- /*
- The --ignore option is comma saperated list of test cases to skip and
- should be very first command line option to the test suite.
-
- The usage is now:
- mysql_test_run --ignore=test1,test2 test3 test4
- where test1 and test2 are test cases to ignore
- and test3 and test4 are test cases to run.
- */
- if (argc >= 2 && !strnicmp(argv[1], "--ignore=", sizeof("--ignore=")-1))
- {
- char *temp, *token;
- temp= strdup(strchr(argv[1],'=') + 1);
- for (token=str_tok(argument, temp, ","); token != NULL;
- token=str_tok(argument, NULL, ","))
- {
- if (strlen(ignore_test) + strlen(token) + 2 <= FN_REFLEN-1)
- sprintf(ignore_test+strlen(ignore_test), " %s ", token);
- else
- {
- free(temp);
- die("ignore list too long.");
- }
- }
- free(temp);
- is_ignore_list= 1;
- }
- /* header */
-#ifndef __WIN__
- mlog("MySQL Server %s, for %s (%s)\n\n", VERSION, SYSTEM_TYPE, MACHINE_TYPE);
-#else
- mlog("MySQL Server ---, for %s (%s)\n\n", SYSTEM_TYPE, MACHINE_TYPE);
-#endif
-
- mlog("Initializing Tests...\n");
-
- /* install test databases */
- mysql_install_db();
-
- mlog("Starting Tests...\n");
-
- mlog("\n");
- mlog(HEADER);
- mlog(DASH);
-
- if ( argc > 1 + is_ignore_list )
- {
- int i;
-
- /* single test */
- single_test= TRUE;
-
- for (i= 1 + is_ignore_list; i < argc; i++)
- {
- /* run given test */
- run_test(argv[i]);
- }
- }
- else
- {
- /* run all tests */
- testes= malloc(MAX_COUNT_TESTES*sizeof(void*));
- if (!testes)
- die("can not allcate memory for sorting");
- names= testes;
- name_index= 0;
-#ifndef __WIN__
- struct dirent *entry;
- DIR *parent;
- char test[FN_LEN];
- int position;
-
- /* FIXME are we sure the list is sorted if using readdir()? */
- if ((parent= opendir(test_dir)) == NULL) /* Not thread safe */
- die("Unable to open tests directory.");
- else
- {
- while ((entry= readdir(parent)) != NULL) /* Not thread safe */
- {
- strcpy(test, strlwr(entry->d_name));
- /* find the test suffix */
- if ((position= strinstr(test, TEST_SUFFIX)) != 0)
- {
- if (name_index < MAX_COUNT_TESTES)
- {
- /* null terminate at the suffix */
- *(test + position - 1)= '\0';
- /* insert test */
- *names= malloc(FN_REFLEN);
- strcpy(*names,test);
- names++;
- name_index++;
- }
- else
- die("can not sort files, array is overloaded");
- }
- }
- closedir(parent);
- }
-#else
- {
- struct _finddata_t dir;
- int* handle;
- char test[FN_LEN];
- char mask[FN_REFLEN];
- int position;
-
- /* single test */
- single_test= FALSE;
-
- snprintf(mask,FN_REFLEN,"%s/*.test",test_dir);
-
- if ((handle=_findfirst(mask,&dir)) == -1L)
- {
- die("Unable to open tests directory.");
- }
-
-
- do
- {
- if (!(dir.attrib & _A_SUBDIR))
- {
- strcpy(test, strlwr(dir.name));
-
- /* find the test suffix */
- if ((position= strinstr(test, TEST_SUFFIX)) != 0)
- {
- if (name_index < MAX_COUNT_TESTES)
- {
- /* null terminate at the suffix */
- *(test + position - 1)= '\0';
- /* insert test */
- *names= malloc(FN_REFLEN);
- strcpy(*names,test);
- names++;
- name_index++;
- }
- else
- die("can not sort files, array is overloaded");
- }
- }
- }while (_findnext(handle,&dir) == 0);
-
- _findclose(handle);
- }
-#endif
- qsort( (void *)testes, name_index, sizeof( char * ), compare );
-
- for (index= 0; index < name_index; index++)
- {
- run_test(testes[index]);
- free(testes[index]);
- }
-
- free(testes);
- }
-
- /* stop server */
- mysql_stop();
-
- mlog(DASH);
- mlog("\n");
-
- mlog("Ending Tests...\n");
-
- /* report stats */
- report_stats();
-
- /* close log */
- if (log_fd) fclose(log_fd);
-
- /* keep results up */
-#ifdef __NETWARE__
- pressanykey();
-#endif
- return 0;
-}
-
-
-/*
- Synopsis:
- This function breaks the string into a sequence of tokens. The difference
- between this function and strtok is that it respects the quoted string i.e.
- it skips any delimiter character within the quoted part of the string.
- It return tokens by eliminating quote character. It modifies the input string
- passed. It will work with whitespace delimeter but may not work properly with
- other delimeter. If the delimeter will contain any quote character, then
- function will not tokenize and will return null string.
- e.g. if input string is
- --init-slave="set global max_connections=500" --skip-external-locking
- then the output will two string i.e.
- --init-slave=set global max_connections=500
- --skip-external-locking
-
-Arguments:
- string: input string
- delim: set of delimiter character
-Output:
- return the null terminated token of NULL.
-*/
-char *str_tok(char* dest, char *string, const char *delim)
-{
- char *token;
- char *ptr_end_token= NULL;
- char *ptr_quote= NULL;
- char *ptr_token= NULL;
- int count_quotes= 0;
-
- *dest = '\0';
- if (strchr(delim,'\'') || strchr(delim,'\"'))
- return NULL;
-
- token= (char*)strtok(string, delim);
- if (token)
- {
- /* double quote is found */
- if (strchr(token,'\"'))
- {
- do
- {
- if (count_quotes & 1)
- {
- if (*dest == '\0')
- sprintf(dest,"%s", ptr_token);
- else
- sprintf(dest,"%s %s", dest, ptr_token);
- ptr_token= (char*)strtok(NULL, delim);
- if (!ptr_token)
- break;
- }
- else
- {
- ptr_token= token;
- }
- if (ptr_quote = strchr(ptr_token,'\"'))
- {
- ptr_end_token= ptr_token + strlen(ptr_token);
- do
- {
-#ifndef __WIN__
- bmove(ptr_quote, ptr_quote+1, ptr_end_token - ptr_quote);
-#endif
- count_quotes++;
- } while (ptr_quote != NULL && (ptr_quote = strchr(ptr_quote+1,'\"')));
- }
- /* there are unpair quotes we have to search next quote*/
- } while (count_quotes & 1);
- if (ptr_token != NULL)
- {
- if (*dest == '\0')
- sprintf(dest,"%s", ptr_token);
- else
- sprintf(dest,"%s %s",dest,ptr_token);
- }
- }
- else
- {
- sprintf(dest,"%s",token);
- }
- }
- return token ? dest : NULL;
-}
-
-#ifndef __WIN__
-/*
- Synopsis:
- This function run scripts files on Linux and Netware
-
-Arguments:
- script_name: name of script file
-
-Output:
- nothing
-*/
-
-void run_init_script(const char *script_name)
-{
- arg_list_t al;
- int err;
-
- /* args */
- init_args(&al);
- add_arg(&al, sh_file);
- add_arg(&al, script_name);
-
- /* spawn */
- if ((err= spawn(sh_file, &al, TRUE, NULL, NULL, NULL, NULL)) != 0)
- {
- die("Unable to run script.");
- }
-
- /* free args */
- free_args(&al);
-}
-#endif
diff --git a/mysql-test/ndb/Makefile.am b/mysql-test/ndb/Makefile.am
index 2a1c59fd359..4ddf61cf5cc 100644
--- a/mysql-test/ndb/Makefile.am
+++ b/mysql-test/ndb/Makefile.am
@@ -1,14 +1,11 @@
-BUILT_SOURCES = ndbcluster
-
benchdir_root= $(prefix)
testdir = $(benchdir_root)/mysql-test/ndb
-test_SCRIPTS = ndbcluster
-
-noinst_HEADERS = ndbcluster.sh
-
+EXTRA_DIST = ndbcluster.sh
+CLEANFILES = ndbcluster
dist_test_DATA = ndb_config_2_node.ini ndb_config_1_node.ini
+test_SCRIPTS = ndbcluster
SUFFIXES = .sh
diff --git a/mysql-test/r/archive.result b/mysql-test/r/archive.result
index 0be99e071cd..09813458069 100644
--- a/mysql-test/r/archive.result
+++ b/mysql-test/r/archive.result
@@ -13809,4 +13809,11 @@ alter table t1 add unique key (i, v);
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
i v
4 3r4f
+alter table t1 data directory="$MYSQLTEST_VARDIR/tmp";
+select * from t1;
+i v
+1 def
+2 abc
+4 3r4f
+5 lmn
drop table t1, t2, t4, t5;
diff --git a/mysql-test/r/csv.result b/mysql-test/r/csv.result
index 70eaac2eb4e..3adcc895474 100644
--- a/mysql-test/r/csv.result
+++ b/mysql-test/r/csv.result
@@ -5085,6 +5085,36 @@ Table Op Msg_type Msg_text
test.test_repair_table5 repair status OK
SELECT * FROM test_repair_table5;
num magic_no company_name founded
+INSERT INTO test_repair_table5 VALUES (1, 102, "CORRECT", 1876);
+SELECT * FROM test_repair_table5;
+num magic_no company_name founded
+1 0102 CORRECT 1876
+FLUSH TABLES;
+CHECK TABLE test_repair_table5;
+Table Op Msg_type Msg_text
+test.test_repair_table5 check error Corrupt
+REPAIR TABLE test_repair_table5;
+Table Op Msg_type Msg_text
+test.test_repair_table5 repair status OK
+SELECT * FROM test_repair_table5;
+num magic_no company_name founded
+1 0102 CORRECT 1876
+INSERT INTO test_repair_table5 VALUES (1, 102, "CORRECT2", 1876);
+SELECT * FROM test_repair_table5;
+num magic_no company_name founded
+1 0102 CORRECT 1876
+1 0102 CORRECT2 1876
+FLUSH TABLES;
+CHECK TABLE test_repair_table5;
+Table Op Msg_type Msg_text
+test.test_repair_table5 check error Corrupt
+REPAIR TABLE test_repair_table5;
+Table Op Msg_type Msg_text
+test.test_repair_table5 repair status OK
+SELECT * FROM test_repair_table5;
+num magic_no company_name founded
+1 0102 CORRECT 1876
+1 0102 CORRECT2 1876
DROP TABLE test_repair_table5;
create table t1 (a int) engine=csv;
insert t1 values (1);
diff --git a/mysql-test/r/ctype_filename.result b/mysql-test/r/ctype_filename.result
new file mode 100644
index 00000000000..acc32c7dedf
--- /dev/null
+++ b/mysql-test/r/ctype_filename.result
@@ -0,0 +1,13 @@
+drop table if exists con, aux, nul, lpt1, com1, `clock$`;
+create table con (a int);
+drop table con;
+create table aux (a int);
+drop table aux;
+create table nul (a int);
+drop table nul;
+create table lpt1 (a int);
+drop table lpt1;
+create table com1 (a int);
+drop table com1;
+create table `clock$` (a int);
+drop table `clock$`;
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index edbdd6b08da..b5fd35d926f 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -847,3 +847,28 @@ timestampdiff(year,'2004-02-28','2005-02-28')
select timestampdiff(year,'2004-02-29','2005-02-28');
timestampdiff(year,'2004-02-29','2005-02-28')
0
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, day date);
+CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, day date);
+INSERT INTO t1 VALUES
+(1, '2005-06-01'), (2, '2005-02-01'), (3, '2005-07-01');
+INSERT INTO t2 VALUES
+(1, '2005-08-01'), (2, '2005-06-15'), (3, '2005-07-15');
+SELECT * FROM t1, t2
+WHERE t1.day BETWEEN
+'2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+id day id day
+1 2005-06-01 1 2005-08-01
+3 2005-07-01 1 2005-08-01
+1 2005-06-01 2 2005-06-15
+1 2005-06-01 3 2005-07-15
+3 2005-07-01 3 2005-07-15
+SELECT * FROM t1, t2
+WHERE CAST(t1.day AS DATE) BETWEEN
+'2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+id day id day
+1 2005-06-01 1 2005-08-01
+3 2005-07-01 1 2005-08-01
+1 2005-06-01 2 2005-06-15
+1 2005-06-01 3 2005-07-15
+3 2005-07-01 3 2005-07-15
+DROP TABLE t1,t2;
diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result
index c827e11e50e..fe918e4c3ff 100644
--- a/mysql-test/r/having.result
+++ b/mysql-test/r/having.result
@@ -360,8 +360,6 @@ s1 count(s1)
y 1
drop table t1;
DROP SCHEMA IF EXISTS HU;
-Warnings:
-Note 1008 Can't drop database 'HU'; database doesn't exist
CREATE SCHEMA HU ;
USE HU ;
CREATE TABLE STAFF
diff --git a/mysql-test/r/index_merge_innodb.result b/mysql-test/r/index_merge_innodb.result
index b20e66a1098..d7dcc7853cd 100644
--- a/mysql-test/r/index_merge_innodb.result
+++ b/mysql-test/r/index_merge_innodb.result
@@ -260,3 +260,25 @@ t_vers t_rele t_cust filler1
7.6 a
7.6 a
drop table t1;
+create table t1 (
+pk int(11) not null auto_increment,
+a int(11) not null default '0',
+b int(11) not null default '0',
+c int(11) not null default '0',
+filler1 datetime, filler2 varchar(15),
+filler3 longtext,
+kp1 varchar(4), kp2 varchar(7),
+kp3 varchar(2), kp4 varchar(4),
+kp5 varchar(7),
+filler4 char(1),
+primary key (pk),
+key idx1(a,b,c),
+key idx2(c),
+key idx3(kp1,kp2,kp3,kp4,kp5)
+) engine=innodb default charset=latin1;
+set @fill=NULL;
+SELECT COUNT(*) FROM t1 WHERE b = 0 AND a = 0 AND c = 13286427 AND
+kp1='279' AND kp2='ELM0678' AND kp3='6' AND kp4='10' AND kp5 = 'R ';
+COUNT(*)
+1
+drop table t1;
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index bbeaf3519c2..a003ed14c77 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -1640,6 +1640,30 @@ t2 CREATE TABLE `t2` (
CONSTRAINT `t2_ibfk_2` FOREIGN KEY (`b`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t2, t1;
+flush status;
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 0
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 0
+create table t1 (a int) engine=innodb;
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 1
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 1
+begin;
+delete from t1;
+commit;
+show status like "binlog_cache_use";
+Variable_name Value
+Binlog_cache_use 2
+show status like "binlog_cache_disk_use";
+Variable_name Value
+Binlog_cache_disk_use 1
+drop table t1;
create table t1 (c char(10), index (c,c)) engine=innodb;
ERROR 42S21: Duplicate column name 'c'
create table t1 (c1 char(10), c2 char(10), index (c1,c2,c1)) engine=innodb;
@@ -1751,6 +1775,21 @@ select count(*) from t1 where x = 18446744073709551601;
count(*)
1
drop table t1;
+show status like "Innodb_buffer_pool_pages_total";
+Variable_name Value
+Innodb_buffer_pool_pages_total 512
+show status like "Innodb_page_size";
+Variable_name Value
+Innodb_page_size 16384
+show status like "Innodb_rows_deleted";
+Variable_name Value
+Innodb_rows_deleted 2070
+show status like "Innodb_rows_inserted";
+Variable_name Value
+Innodb_rows_inserted 31727
+show status like "Innodb_rows_updated";
+Variable_name Value
+Innodb_rows_updated 29530
show status like "Innodb_row_lock_waits";
Variable_name Value
Innodb_row_lock_waits 0
@@ -3194,6 +3233,15 @@ drop trigger t2t;
drop trigger t3t;
drop trigger t4t;
drop table t1, t2, t3, t4, t5;
+create table t1(a date) engine=innodb;
+create table t2(a date, key(a)) engine=innodb;
+insert into t1 values('2005-10-01');
+insert into t2 values('2005-10-01');
+select * from t1, t2
+where t2.a between t1.a - interval 2 day and t1.a + interval 2 day;
+a a
+2005-10-01 2005-10-01
+drop table t1, t2;
CREATE TABLE t1 (
field1 varchar(8) NOT NULL DEFAULT '',
field2 varchar(8) NOT NULL DEFAULT '',
diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result
index 57067bea36b..ae50c714bba 100644
--- a/mysql-test/r/mysql.result
+++ b/mysql-test/r/mysql.result
@@ -72,7 +72,16 @@ c_cp932
+----------------------+------------+--------+
| concat('>',col1,'<') | col2 | col3 |
+----------------------+------------+--------+
-| >a < | b | 123421 |
-| >a < | 0123456789 | 4 |
-| >abcd< | | 4 |
+| >a < | b | 123421 |
+| >a < | 0123456789 | 4 |
+| >abcd< | NULL | 4 |
+----------------------+------------+--------+
++------+------+---------------------------+
+| i | j | k |
++------+------+---------------------------+
+| 1 | NULL | NULL |
+| NULL | NULL | <-----------------------> |
+| NULL | NULL | <----- |
+| NULL | NULL | Τη γλώσσα |
+| NULL | NULL | á›–áš´ áš·á›–á› |
++------+------+---------------------------+
diff --git a/mysql-test/r/mysqlslap.result b/mysql-test/r/mysqlslap.result
index 1a8b77fde1c..045a34a7458 100644
--- a/mysql-test/r/mysqlslap.result
+++ b/mysql-test/r/mysqlslap.result
@@ -129,7 +129,6 @@ INSERT INTO t1 VALUES (1, 'This is a test');
insert into t2 values ('test', 'test2');
select * from t1;
select * from t2;
-select * from t1;
DROP SCHEMA IF EXISTS `mysqlslap`;
DROP SCHEMA IF EXISTS `mysqlslap`;
CREATE SCHEMA `mysqlslap`;
@@ -141,5 +140,4 @@ INSERT INTO t1 VALUES (1, 'This is a test');
insert into t2 values ('test', 'test2');
select * from t1;
select * from t2;
-select * from t1;
DROP SCHEMA IF EXISTS `mysqlslap`;
diff --git a/mysql-test/r/ndb_alter_table2.result b/mysql-test/r/ndb_alter_table2.result
new file mode 100644
index 00000000000..3783c76447c
--- /dev/null
+++ b/mysql-test/r/ndb_alter_table2.result
@@ -0,0 +1,41 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+a INT NOT NULL PRIMARY KEY,
+b INT NOT NULL
+) ENGINE=ndbcluster;
+BEGIN;
+INSERT INTO t1 VALUES (9410,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9411,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9412,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9413,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9414,9412);
+BEGIN;
+INSERT INTO t1 VALUES (9415,9412);
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+ROLLBACK;
+drop table t1;
+CREATE TABLE t1 (
+a INT NOT NULL PRIMARY KEY,
+b INT NOT NULL,
+c INT NOT NULL
+) ENGINE=ndbcluster;
+select * from t1;
+select * from t1;
+a b c
+select * from t1;
+a b c
+select * from t1;
+a b c
+select * from t1;
+a b c
+select * from t1;
+a b c
+drop table t1;
diff --git a/mysql-test/r/ndb_alter_table_stm.result b/mysql-test/r/ndb_alter_table_stm.result
index 9c1d09a8970..7cb7b990e2c 100644
--- a/mysql-test/r/ndb_alter_table_stm.result
+++ b/mysql-test/r/ndb_alter_table_stm.result
@@ -8,6 +8,7 @@ a b c
2 two two
alter table t1 drop index c;
select * from t1 where c = 'two';
+select * from t1 where c = 'two';
a b c
2 two two
drop table t1;
diff --git a/mysql-test/r/ndb_basic.result b/mysql-test/r/ndb_basic.result
index 9477caf97ab..4a1f5f587df 100644
--- a/mysql-test/r/ndb_basic.result
+++ b/mysql-test/r/ndb_basic.result
@@ -6,13 +6,6 @@ attr1 INT NOT NULL,
attr2 INT,
attr3 VARCHAR(10)
) ENGINE=ndbcluster;
-drop table t1;
-CREATE TABLE t1 (
-pk1 INT NOT NULL PRIMARY KEY,
-attr1 INT NOT NULL,
-attr2 INT,
-attr3 VARCHAR(10)
-) ENGINE=ndbcluster;
SHOW INDEX FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 pk1 A 0 NULL NULL BTREE
diff --git a/mysql-test/r/ndb_binlog_ddl_multi.result b/mysql-test/r/ndb_binlog_ddl_multi.result
index 3b217c50402..f3e9b23920d 100644
--- a/mysql-test/r/ndb_binlog_ddl_multi.result
+++ b/mysql-test/r/ndb_binlog_ddl_multi.result
@@ -27,11 +27,13 @@ master-bin1.000001 # Query # # use `test`; alter table t2 add column (b int)
reset master;
reset master;
ALTER DATABASE mysqltest CHARACTER SET latin1;
-drop table mysqltest.t1;
show binlog events from ;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # ALTER DATABASE mysqltest CHARACTER SET latin1
-master-bin.000001 # Query # # use `mysqltest`; drop table `t1`
+show binlog events from ;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Query # # ALTER DATABASE mysqltest CHARACTER SET latin1
+drop table mysqltest.t1;
reset master;
reset master;
use test;
@@ -79,7 +81,6 @@ DROP TABLESPACE ts1
ENGINE = NDB;
DROP LOGFILE GROUP lg1
ENGINE =NDB;
-drop table t1;
show binlog events from ;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin1.000001 # Query # # CREATE LOGFILE GROUP lg1
@@ -110,7 +111,37 @@ master-bin1.000001 # Query # # DROP TABLESPACE ts1
ENGINE = NDB
master-bin1.000001 # Query # # DROP LOGFILE GROUP lg1
ENGINE =NDB
-master-bin1.000001 # Query # # use `test`; drop table `t1`
+show binlog events from ;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin1.000001 # Query # # CREATE LOGFILE GROUP lg1
+ADD UNDOFILE 'undofile.dat'
+INITIAL_SIZE 16M
+UNDO_BUFFER_SIZE = 1M
+ENGINE=NDB
+master-bin1.000001 # Query # # ALTER LOGFILE GROUP lg1
+ADD UNDOFILE 'undofile02.dat'
+INITIAL_SIZE = 4M
+ENGINE=NDB
+master-bin1.000001 # Query # # CREATE TABLESPACE ts1
+ADD DATAFILE 'datafile.dat'
+USE LOGFILE GROUP lg1
+INITIAL_SIZE 12M
+ENGINE NDB
+master-bin1.000001 # Query # # ALTER TABLESPACE ts1
+ADD DATAFILE 'datafile02.dat'
+INITIAL_SIZE = 4M
+ENGINE=NDB
+master-bin1.000001 # Query # # ALTER TABLESPACE ts1
+DROP DATAFILE 'datafile.dat'
+ENGINE = NDB
+master-bin1.000001 # Query # # ALTER TABLESPACE ts1
+DROP DATAFILE 'datafile02.dat'
+ENGINE = NDB
+master-bin1.000001 # Query # # DROP TABLESPACE ts1
+ENGINE = NDB
+master-bin1.000001 # Query # # DROP LOGFILE GROUP lg1
+ENGINE =NDB
+drop table t1;
reset master;
show tables;
Tables_in_test
diff --git a/mysql-test/r/ndb_bitfield.result b/mysql-test/r/ndb_bitfield.result
index 13fd31d7e88..9a8c571cfba 100644
--- a/mysql-test/r/ndb_bitfield.result
+++ b/mysql-test/r/ndb_bitfield.result
@@ -201,21 +201,21 @@ create table t1 (
pk1 bit(9) not null primary key,
b int
) engine=ndbcluster;
-ERROR HY000: Can't create table 'test.t1' (errno: 140)
+ERROR HY000: Can't create table 'test.t1' (errno: 906)
show warnings;
Level Code Message
-Error 1296 Got error 739 'Unsupported primary key length' from NDB
-Error 1005 Can't create table 'test.t1' (errno: 140)
+Error 1296 Got error 906 'Unsupported attribute type in index' from NDB
+Error 1005 Can't create table 'test.t1' (errno: 906)
create table t1 (
pk1 int not null primary key,
b bit(9),
key(b)
) engine=ndbcluster;
-ERROR HY000: Can't create table 'test.t1' (errno: 140)
+ERROR HY000: Can't create table 'test.t1' (errno: 906)
show warnings;
Level Code Message
-Error 1296 Got error 743 'Unsupported character set in table or index' from NDB
-Error 1005 Can't create table 'test.t1' (errno: 140)
+Error 1296 Got error 906 'Unsupported attribute type in index' from NDB
+Error 1005 Can't create table 'test.t1' (errno: 906)
create table t1 (
pk1 int primary key,
b bit(32) not null
diff --git a/mysql-test/r/ndb_blob_partition.result b/mysql-test/r/ndb_blob_partition.result
new file mode 100644
index 00000000000..b08a91f0cdd
--- /dev/null
+++ b/mysql-test/r/ndb_blob_partition.result
@@ -0,0 +1,104 @@
+drop table if exists t1;
+create table t1 (
+a mediumint not null,
+b text not null,
+c int not null,
+d longblob,
+primary key using hash (a,c),
+unique key (c)
+)
+engine=ndb
+partition by range (c)
+partitions 3
+( partition p1 values less than (200),
+partition p2 values less than (300),
+partition p3 values less than (400));
+insert into t1 values (1, @v1, 101, @v2);
+insert into t1 values (1, @v2, 102, @v3);
+insert into t1 values (1, @v3, 103, @v4);
+insert into t1 values (2, @v4, 201, @v5);
+insert into t1 values (2, @v5, 202, @v6);
+insert into t1 values (2, @v6, 203, @v7);
+insert into t1 values (3, @v7, 301, @v8);
+insert into t1 values (3, @v8, 302, @v9);
+insert into t1 values (3, @v9, 303, @v1);
+select a, sha1(b), c, sha1(d) from t1 order by a;
+a sha1(b) c sha1(d)
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
+1 10d3c783026b310218d10b7188da96a2401648c6 102 a33549d9844092289a58ac348dd59f09fc28406a
+1 a33549d9844092289a58ac348dd59f09fc28406a 103 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 202 090565c580809efed3d369481a4bbb168b20713e
+2 090565c580809efed3d369481a4bbb168b20713e 203 1e0070bec426871a46291de27b9bd6e4255ab4e5
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
+3 acbaba01bc2e682f015f40e79d9cbe475db3002e 302 9ee30d99162574f79c66ae95cdf132dcf9cbc259
+3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 303 1d42dd9090cf78314a06665d4ea938c35cc760f4
+select a, sha1(b), c, sha1(d) from t1 where a = 1 and c = 101;
+a sha1(b) c sha1(d)
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
+select a, sha1(b), c, sha1(d) from t1 where a = 2 and c = 201;
+a sha1(b) c sha1(d)
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+select a, sha1(b), c, sha1(d) from t1 where a = 3 and c = 301;
+a sha1(b) c sha1(d)
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
+update t1 set b = @v3, d = @v4 where a = 1 and c = 102;
+update t1 set b = @v6, d = @v7 where a = 2 and c = 202;
+update t1 set b = @v9, d = @v1 where a = 3 and c = 302;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+a sha1(b) c sha1(d)
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
+1 a33549d9844092289a58ac348dd59f09fc28406a 102 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
+1 a33549d9844092289a58ac348dd59f09fc28406a 103 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+2 090565c580809efed3d369481a4bbb168b20713e 202 1e0070bec426871a46291de27b9bd6e4255ab4e5
+2 090565c580809efed3d369481a4bbb168b20713e 203 1e0070bec426871a46291de27b9bd6e4255ab4e5
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
+3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 302 1d42dd9090cf78314a06665d4ea938c35cc760f4
+3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 303 1d42dd9090cf78314a06665d4ea938c35cc760f4
+update t1 set b = @v4, d = @v5 where c = 103;
+update t1 set b = @v7, d = @v8 where c = 203;
+update t1 set b = @v1, d = @v2 where c = 303;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+a sha1(b) c sha1(d)
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
+1 a33549d9844092289a58ac348dd59f09fc28406a 102 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
+1 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 103 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+2 090565c580809efed3d369481a4bbb168b20713e 202 1e0070bec426871a46291de27b9bd6e4255ab4e5
+2 1e0070bec426871a46291de27b9bd6e4255ab4e5 203 acbaba01bc2e682f015f40e79d9cbe475db3002e
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
+3 9ee30d99162574f79c66ae95cdf132dcf9cbc259 302 1d42dd9090cf78314a06665d4ea938c35cc760f4
+3 1d42dd9090cf78314a06665d4ea938c35cc760f4 303 10d3c783026b310218d10b7188da96a2401648c6
+update t1 set b = @v5, d = @v6;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+a sha1(b) c sha1(d)
+1 70fc9a7d08beebc522258bfb02000a30c77a8f1d 101 090565c580809efed3d369481a4bbb168b20713e
+1 70fc9a7d08beebc522258bfb02000a30c77a8f1d 102 090565c580809efed3d369481a4bbb168b20713e
+1 70fc9a7d08beebc522258bfb02000a30c77a8f1d 103 090565c580809efed3d369481a4bbb168b20713e
+2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 201 090565c580809efed3d369481a4bbb168b20713e
+2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 202 090565c580809efed3d369481a4bbb168b20713e
+2 70fc9a7d08beebc522258bfb02000a30c77a8f1d 203 090565c580809efed3d369481a4bbb168b20713e
+3 70fc9a7d08beebc522258bfb02000a30c77a8f1d 301 090565c580809efed3d369481a4bbb168b20713e
+3 70fc9a7d08beebc522258bfb02000a30c77a8f1d 302 090565c580809efed3d369481a4bbb168b20713e
+3 70fc9a7d08beebc522258bfb02000a30c77a8f1d 303 090565c580809efed3d369481a4bbb168b20713e
+update t1 set b = @v1, d = @v2 where 100 < c and c < 200;
+update t1 set b = @v4, d = @v5 where 200 < c and c < 300;
+update t1 set b = @v7, d = @v8 where 300 < c and c < 400;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+a sha1(b) c sha1(d)
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 101 10d3c783026b310218d10b7188da96a2401648c6
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 102 10d3c783026b310218d10b7188da96a2401648c6
+1 1d42dd9090cf78314a06665d4ea938c35cc760f4 103 10d3c783026b310218d10b7188da96a2401648c6
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 201 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 202 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+2 daa61c6de36a0526f0d47dc29d6b9de7e6d2630c 203 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 301 acbaba01bc2e682f015f40e79d9cbe475db3002e
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 302 acbaba01bc2e682f015f40e79d9cbe475db3002e
+3 1e0070bec426871a46291de27b9bd6e4255ab4e5 303 acbaba01bc2e682f015f40e79d9cbe475db3002e
+delete from t1 where a = 1 and c = 101;
+delete from t1 where c = 102;
+delete from t1;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+a sha1(b) c sha1(d)
+drop table t1;
diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result
index 2e293df50e2..0da071374ea 100644
--- a/mysql-test/r/partition.result
+++ b/mysql-test/r/partition.result
@@ -839,4 +839,51 @@ SHOW TABLE STATUS;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 10 Dynamic 0 0 0 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
DROP TABLE t1;
+create table t1 (a int)
+partition by list (a)
+(partition `s1 s2` values in (0));
+drop table t1;
+create table t1 (a int)
+partition by list (a)
+(partition `7` values in (0));
+drop table t1;
+create table t1 (a int)
+partition by list (a)
+(partition `s1 s2 ` values in (0));
+ERROR HY000: Incorrect partition name
+create table t1 (a int)
+partition by list (a)
+subpartition by hash (a)
+(partition p1 values in (0) (subpartition `p1 p2 `));
+ERROR HY000: Incorrect partition name
+CREATE TABLE t1 (a int)
+PARTITION BY LIST (a)
+(PARTITION p0 VALUES IN (NULL));
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY LIST (a) (PARTITION p0 VALUES IN (NULL) ENGINE = MyISAM)
+DROP TABLE t1;
+CREATE TABLE t1 (a int)
+PARTITION BY RANGE(a)
+(PARTITION p0 VALUES LESS THAN (NULL));
+ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '))' at line 3
+create table t1 (s1 int auto_increment primary key)
+partition by list (s1)
+(partition p1 values in (1),
+partition p2 values in (2),
+partition p3 values in (3));
+insert into t1 values (null);
+insert into t1 values (null);
+insert into t1 values (null);
+select auto_increment from information_schema.tables where table_name='t1';
+auto_increment
+4
+select * from t1;
+s1
+1
+2
+3
+drop table t1;
End of 5.1 tests
diff --git a/mysql-test/r/partition_grant.result b/mysql-test/r/partition_grant.result
new file mode 100644
index 00000000000..da0e00c9858
--- /dev/null
+++ b/mysql-test/r/partition_grant.result
@@ -0,0 +1,23 @@
+drop schema if exists mysqltest_1;
+create schema mysqltest_1;
+use mysqltest_1;
+create table t1 (a int) partition by list (a) (partition p1 values in (1), partition p2 values in (2), partition p3 values in (3));
+insert into t1 values (1),(2);
+grant select,alter on mysqltest_1.* to mysqltest_1@localhost;
+show grants for current_user;
+Grants for mysqltest_1@localhost
+GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
+GRANT SELECT, ALTER ON `mysqltest_1`.* TO 'mysqltest_1'@'localhost'
+alter table t1 add b int;
+alter table t1 drop partition p2;
+ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1'
+grant drop on mysqltest_1.* to mysqltest_1@localhost;
+alter table t1 drop partition p2;
+revoke alter on mysqltest_1.* from mysqltest_1@localhost;
+alter table t1 drop partition p3;
+ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1'
+revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost;
+drop user mysqltest_1@localhost;
+drop table t1;
+drop schema mysqltest_1;
+End of 5.1 tests
diff --git a/mysql-test/r/partition_hash.result b/mysql-test/r/partition_hash.result
index 64dcf8c5837..08faccd024e 100644
--- a/mysql-test/r/partition_hash.result
+++ b/mysql-test/r/partition_hash.result
@@ -73,3 +73,29 @@ drop table t1;
CREATE TABLE t1 (s1 int) ENGINE=BLACKHOLE PARTITION BY HASH (s1);
INSERT INTO t1 VALUES (0);
DROP TABLE t1;
+create table t1 (c1 int DEFAULT NULL,
+c2 varchar (30) DEFAULT NULL,
+c3 date DEFAULT NULL)
+engine = myisam
+partition by hash (to_days(c3))
+partitions 12;
+insert into t1 values
+(136,'abc','2002-01-05'),(142,'abc','2002-02-14'),(162,'abc','2002-06-28'),
+(182,'abc','2002-11-09'),(158,'abc','2002-06-01'),(184,'abc','2002-11-22');
+select * from t1;
+c1 c2 c3
+136 abc 2002-01-05
+158 abc 2002-06-01
+142 abc 2002-02-14
+162 abc 2002-06-28
+182 abc 2002-11-09
+184 abc 2002-11-22
+select * from t1 where c3 between '2002-01-01' and '2002-12-31';
+c1 c2 c3
+136 abc 2002-01-05
+158 abc 2002-06-01
+142 abc 2002-02-14
+162 abc 2002-06-28
+182 abc 2002-11-09
+184 abc 2002-11-22
+drop table t1;
diff --git a/mysql-test/r/partition_pruning.result b/mysql-test/r/partition_pruning.result
index 8b959cb6a3e..b13f0d55e39 100644
--- a/mysql-test/r/partition_pruning.result
+++ b/mysql-test/r/partition_pruning.result
@@ -659,3 +659,14 @@ explain partitions select count(*) from t1 where s1 < 0 or s1 is null;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p3 system NULL NULL NULL NULL 1
drop table t1;
+create table t1 (a char(32) primary key)
+partition by key()
+partitions 100;
+insert into t1 values ('na');
+select * from t1;
+a
+na
+select * from t1 where a like 'n%';
+a
+na
+drop table t1;
diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result
index 6db5e8f8157..3de7ab61e73 100644
--- a/mysql-test/r/ps.result
+++ b/mysql-test/r/ps.result
@@ -108,6 +108,9 @@ set @fvar= 123.4567;
prepare stmt1 from @fvar;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123.4567' at line 1
drop table t1,t2;
+deallocate prepare stmt3;
+deallocate prepare stmt4;
+deallocate prepare stmt5;
PREPARE stmt1 FROM "select _utf8 'A' collate utf8_bin = ?";
set @var='A';
EXECUTE stmt1 USING @var;
@@ -253,6 +256,7 @@ set names latin1;
execute `ü`;
1234
1234
+deallocate prepare `ü`;
set names default;
create table t1 (a varchar(10)) charset=utf8;
insert into t1 (a) values ('yahoo');
@@ -781,6 +785,7 @@ EXECUTE b12651;
1
DROP VIEW b12651_V1;
DROP TABLE b12651_T1, b12651_T2;
+DEALLOCATE PREPARE b12651;
prepare stmt from "select @@time_zone";
execute stmt;
@@time_zone
@@ -873,6 +878,130 @@ length(a)
10
drop table t1;
deallocate prepare stmt;
+create table t1 (col1 integer, col2 integer);
+insert into t1 values(100,100),(101,101),(102,102),(103,103);
+prepare stmt from 'select col1, col2 from t1 where (col1, col2) in ((?,?))';
+set @a=100, @b=100;
+execute stmt using @a,@b;
+col1 col2
+100 100
+set @a=101, @b=101;
+execute stmt using @a,@b;
+col1 col2
+101 101
+set @a=102, @b=102;
+execute stmt using @a,@b;
+col1 col2
+102 102
+set @a=102, @b=103;
+execute stmt using @a,@b;
+col1 col2
+deallocate prepare stmt;
+drop table t1;
+set @old_max_prepared_stmt_count= @@max_prepared_stmt_count;
+show variables like 'max_prepared_stmt_count';
+Variable_name Value
+max_prepared_stmt_count 16382
+show variables like 'prepared_stmt_count';
+Variable_name Value
+prepared_stmt_count 0
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+@@max_prepared_stmt_count @@prepared_stmt_count
+16382 0
+set global max_prepared_stmt_count=-1;
+select @@max_prepared_stmt_count;
+@@max_prepared_stmt_count
+0
+set global max_prepared_stmt_count=10000000000000000;
+select @@max_prepared_stmt_count;
+@@max_prepared_stmt_count
+1048576
+set global max_prepared_stmt_count=default;
+select @@max_prepared_stmt_count;
+@@max_prepared_stmt_count
+16382
+set @@max_prepared_stmt_count=1;
+ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL
+set max_prepared_stmt_count=1;
+ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL
+set local max_prepared_stmt_count=1;
+ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL
+set local prepared_stmt_count=0;
+ERROR HY000: Variable 'prepared_stmt_count' is a read only variable
+set @@prepared_stmt_count=0;
+ERROR HY000: Variable 'prepared_stmt_count' is a read only variable
+set global prepared_stmt_count=1;
+ERROR HY000: Variable 'prepared_stmt_count' is a read only variable
+set global max_prepared_stmt_count=1;
+select @@max_prepared_stmt_count;
+@@max_prepared_stmt_count
+1
+set global max_prepared_stmt_count=0;
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+@@max_prepared_stmt_count @@prepared_stmt_count
+0 0
+prepare stmt from "select 1";
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0)
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+0
+set global max_prepared_stmt_count=1;
+prepare stmt from "select 1";
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+1
+prepare stmt1 from "select 1";
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 1)
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+1
+deallocate prepare stmt;
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+0
+prepare stmt from "select 1";
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+1
+prepare stmt from "select 2";
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+1
+select @@prepared_stmt_count, @@max_prepared_stmt_count;
+@@prepared_stmt_count @@max_prepared_stmt_count
+1 1
+set global max_prepared_stmt_count=0;
+prepare stmt from "select 1";
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0)
+execute stmt;
+ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+0
+prepare stmt from "select 1";
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0)
+select @@prepared_stmt_count;
+@@prepared_stmt_count
+0
+set global max_prepared_stmt_count=3;
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+@@max_prepared_stmt_count @@prepared_stmt_count
+3 0
+prepare stmt from "select 1";
+prepare stmt from "select 2";
+prepare stmt1 from "select 3";
+prepare stmt2 from "select 4";
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3)
+prepare stmt2 from "select 4";
+ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3)
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+@@max_prepared_stmt_count @@prepared_stmt_count
+3 3
+deallocate prepare stmt;
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+@@max_prepared_stmt_count @@prepared_stmt_count
+3 0
+set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
create table t1 (id int);
prepare ins_call from "insert into t1 (id) values (1)";
execute ins_call;
@@ -883,6 +1012,7 @@ drop table t1;
create table t1 (a int, b int);
insert into t1 (a,b) values (2,8),(1,9),(3,7);
prepare stmt from "select * from t1 order by ?";
+set @a=NULL;
execute stmt using @a;
a b
2 8
diff --git a/mysql-test/r/rpl_ndb_dd_advance.result b/mysql-test/r/rpl_ndb_dd_advance.result
index 9d9a4e5b5ad..ba89592b532 100644
--- a/mysql-test/r/rpl_ndb_dd_advance.result
+++ b/mysql-test/r/rpl_ndb_dd_advance.result
@@ -370,13 +370,10 @@ COUNT(*)
10000
***** Add some more records to master *********
***** Finsh the slave sync process *******
-* 1. *
@the_epoch:=MAX(epoch)
-* 2. *
@the_pos:=Position @the_file:=SUBSTRING_INDEX(FILE, '/', -1)
master-bin.000001
-* 3. *
* 4. *
* 5. *
START SLAVE;
diff --git a/mysql-test/r/rpl_ndb_relay_space.result b/mysql-test/r/rpl_ndb_relay_space.result
deleted file mode 100644
index 1e25b7fe8c1..00000000000
--- a/mysql-test/r/rpl_ndb_relay_space.result
+++ /dev/null
@@ -1,25 +0,0 @@
-stop slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-reset master;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
-SHOW VARIABLES LIKE 'relay_log_space_limit';
-Variable_name Value
-relay_log_space_limit 0
-CREATE TABLE t1 (name varchar(64), age smallint(3))ENGINE=NDB;
-INSERT INTO t1 SET name='Andy', age=31;
-INSERT t1 SET name='Jacob', age=2;
-INSERT into t1 SET name='Caleb', age=1;
-ALTER TABLE t1 ADD id int(8) ZEROFILL AUTO_INCREMENT PRIMARY KEY;
-SELECT * FROM t1 ORDER BY id;
-name age id
-Andy 31 00000001
-Caleb 1 00000002
-Jacob 2 00000003
-SELECT * FROM t1 ORDER BY id;
-name age id
-Andy 31 00000001
-Caleb 1 00000002
-Jacob 2 00000003
-drop table t1;
diff --git a/mysql-test/r/rpl_ndb_sync.result b/mysql-test/r/rpl_ndb_sync.result
index 897737e95d5..4ca73167603 100644
--- a/mysql-test/r/rpl_ndb_sync.result
+++ b/mysql-test/r/rpl_ndb_sync.result
@@ -25,13 +25,13 @@ hex(c2) hex(c3) c1
0 1 BCDEF
1 0 CD
0 0 DEFGHIJKL
-CREATE TEMPORARY TABLE IF NOT EXISTS cluster.backup_info (id INT, backup_id INT)ENGINE=HEAP;
-DELETE FROM cluster.backup_info;
-LOAD DATA INFILE '../tmp.dat' INTO TABLE cluster.backup_info FIELDS TERMINATED BY ',';
-SELECT @the_backup_id:=backup_id FROM cluster.backup_info;
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
@the_backup_id:=backup_id
-DROP TABLE cluster.backup_info;
+DROP TABLE test.backup_info;
UPDATE t1 SET c2=0 WHERE c3="row2";
SELECT hex(c1),hex(c2),c3 FROM t1 ORDER BY c3;
hex(c1) hex(c2) c3
diff --git a/mysql-test/r/rpl_relay_space_innodb.result b/mysql-test/r/rpl_relay_space_innodb.result
index 80d8c48c241..54aac2eca35 100644
--- a/mysql-test/r/rpl_relay_space_innodb.result
+++ b/mysql-test/r/rpl_relay_space_innodb.result
@@ -8,9 +8,9 @@ SHOW VARIABLES LIKE 'relay_log_space_limit';
Variable_name Value
relay_log_space_limit 0
CREATE TABLE t1 (name varchar(64), age smallint(3))ENGINE=InnoDB;
-INSERT INTO t1 SET name='Andy', age=31;
-INSERT t1 SET name='Jacob', age=2;
-INSERT into t1 SET name='Caleb', age=1;
+INSERT INTO t1 SET name='Andy', age=31;
+INSERT INTO t1 SET name='Jacob', age=2;
+INSERT INTO t1 SET name='Caleb', age=1;
ALTER TABLE t1 ADD id int(8) ZEROFILL AUTO_INCREMENT PRIMARY KEY;
SELECT * FROM t1 ORDER BY id;
name age id
@@ -22,4 +22,4 @@ name age id
Andy 31 00000001
Jacob 2 00000002
Caleb 1 00000003
-drop table t1;
+DROP TABLE t1;
diff --git a/mysql-test/r/rpl_relay_space_myisam.result b/mysql-test/r/rpl_relay_space_myisam.result
index 02bff7ae881..e8d2d63e46e 100644
--- a/mysql-test/r/rpl_relay_space_myisam.result
+++ b/mysql-test/r/rpl_relay_space_myisam.result
@@ -8,9 +8,9 @@ SHOW VARIABLES LIKE 'relay_log_space_limit';
Variable_name Value
relay_log_space_limit 0
CREATE TABLE t1 (name varchar(64), age smallint(3))ENGINE=MyISAM;
-INSERT INTO t1 SET name='Andy', age=31;
-INSERT t1 SET name='Jacob', age=2;
-INSERT into t1 SET name='Caleb', age=1;
+INSERT INTO t1 SET name='Andy', age=31;
+INSERT INTO t1 SET name='Jacob', age=2;
+INSERT INTO t1 SET name='Caleb', age=1;
ALTER TABLE t1 ADD id int(8) ZEROFILL AUTO_INCREMENT PRIMARY KEY;
SELECT * FROM t1 ORDER BY id;
name age id
@@ -22,4 +22,4 @@ name age id
Andy 31 00000001
Jacob 2 00000002
Caleb 1 00000003
-drop table t1;
+DROP TABLE t1;
diff --git a/mysql-test/r/rpl_temporary.result b/mysql-test/r/rpl_temporary.result
index 5e3030f2c7a..bc5cc262079 100644
--- a/mysql-test/r/rpl_temporary.result
+++ b/mysql-test/r/rpl_temporary.result
@@ -74,3 +74,17 @@ f
7
drop table t1,t2;
create temporary table t3 (f int);
+create temporary table t4 (f int);
+create table t5 (f int);
+drop table if exists t999;
+create temporary table t999 (f int);
+LOAD DATA INFILE "./tmp/bl_dump_thread_id" into table t999;
+drop table t999;
+insert into t4 values (1);
+kill `select id from information_schema.processlist where command='Binlog Dump'`;
+insert into t5 select * from t4;
+select * from t5 /* must be 1 after reconnection */;
+f
+1
+drop temporary table t4;
+drop table t5;
diff --git a/mysql-test/r/type_bit.result b/mysql-test/r/type_bit.result
index 298ee9678a2..c66adbe871d 100644
--- a/mysql-test/r/type_bit.result
+++ b/mysql-test/r/type_bit.result
@@ -564,3 +564,12 @@ b1+0 sum(b1) sum(b2)
1 4 4
2 2 2
drop table t1, t2;
+create table t1 (a bit(7));
+insert into t1 values (0x60);
+select * from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 a a 16 7 1 Y 0 0 63
+a
+`
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/type_bit_innodb.result b/mysql-test/r/type_bit_innodb.result
index fcaa9bfedda..8dc016d5a4a 100644
--- a/mysql-test/r/type_bit_innodb.result
+++ b/mysql-test/r/type_bit_innodb.result
@@ -402,3 +402,12 @@ t1 CREATE TABLE `t1` (
`b` bit(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
+create table t1 (a bit(7)) engine=innodb;
+insert into t1 values (0x60);
+select * from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def test t1 t1 a a 16 7 1 Y 0 0 63
+a
+`
+drop table t1;
+End of 5.0 tests
diff --git a/mysql-test/r/upgrade.result b/mysql-test/r/upgrade.result
index 9d35314d0c6..8a2249480e9 100644
--- a/mysql-test/r/upgrade.result
+++ b/mysql-test/r/upgrade.result
@@ -41,19 +41,19 @@ t1
t-1
drop database `mysqltest1`;
drop database `mysqltest-1`;
-drop table if exists `txu@0023P@0023p1`;
-drop table if exists `txu#P#p1`;
-create table `txu#P#p1` (s1 int);
-insert into `txu#P#p1` values (1);
-select * from `txu@0023P@0023p1`;
-ERROR 42S02: Table 'test.txu@0023P@0023p1' doesn't exist
-create table `txu@0023P@0023p1` (s1 int);
-insert into `txu@0023P@0023p1` values (2);
-select * from `txu@0023P@0023p1`;
+drop table if exists `txu@0023p@0023p1`;
+drop table if exists `txu#p#p1`;
+create table `txu#p#p1` (s1 int);
+insert into `txu#p#p1` values (1);
+select * from `txu@0023p@0023p1`;
+ERROR 42S02: Table 'test.txu@0023p@0023p1' doesn't exist
+create table `txu@0023p@0023p1` (s1 int);
+insert into `txu@0023p@0023p1` values (2);
+select * from `txu@0023p@0023p1`;
s1
2
-select * from `txu#P#p1`;
+select * from `txu#p#p1`;
s1
1
-drop table `txu@0023P@0023p1`;
-drop table `txu#P#p1`;
+drop table `txu@0023p@0023p1`;
+drop table `txu#p#p1`;
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
index fc3e5475ae7..0b6ebe9dd89 100644
--- a/mysql-test/r/view.result
+++ b/mysql-test/r/view.result
@@ -2579,3 +2579,24 @@ COUNT(*)
2
DROP VIEW v2;
DROP TABLE t1, t2;
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY,
+td date DEFAULT NULL, KEY idx(td));
+INSERT INTO t1 VALUES
+(1, '2005-01-01'), (2, '2005-01-02'), (3, '2005-01-02'),
+(4, '2005-01-03'), (5, '2005-01-04'), (6, '2005-01-05'),
+(7, '2005-01-05'), (8, '2005-01-05'), (9, '2005-01-06');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT * FROM t1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
+id td
+2 2005-01-02
+3 2005-01-02
+4 2005-01-03
+5 2005-01-04
+SELECT * FROM v1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
+id td
+2 2005-01-02
+3 2005-01-02
+4 2005-01-03
+5 2005-01-04
+DROP VIEW v1;
+DROP TABLE t1;
diff --git a/mysql-test/r/xml.result b/mysql-test/r/xml.result
index 52f80000015..61dd1390a6a 100644
--- a/mysql-test/r/xml.result
+++ b/mysql-test/r/xml.result
@@ -468,6 +468,30 @@ extractValue(@xml, '/a/@b[substring(.,2,1)="1"]')
select extractValue(@xml, '/a/@b[substring(.,2,1)="2"]');
extractValue(@xml, '/a/@b[substring(.,2,1)="2"]')
12 22
+SET @xml='b1b2';
+SELECT extractValue(@xml, '/a/b[string-length("x")=1]');
+extractValue(@xml, '/a/b[string-length("x")=1]')
+b1 b2
+SELECT extractValue(@xml, '/a/b[string-length("xx")=2]');
+extractValue(@xml, '/a/b[string-length("xx")=2]')
+b1 b2
+SELECT extractValue(@xml, '/a/b[string-length("xxx")=2]');
+extractValue(@xml, '/a/b[string-length("xxx")=2]')
+
+SELECT extractValue(@xml, '/a/b[string-length("x")]');
+extractValue(@xml, '/a/b[string-length("x")]')
+b1
+SELECT extractValue(@xml, '/a/b[string-length("xx")]');
+extractValue(@xml, '/a/b[string-length("xx")]')
+b2
+SELECT extractValue(@xml, '/a/b[string-length()]');
+extractValue(@xml, '/a/b[string-length()]')
+b2
+SELECT extractValue(@xml, 'string-length()');
+ERROR HY000: XPATH syntax error: ''
+SELECT extractValue(@xml, 'string-length("x")');
+extractValue(@xml, 'string-length("x")')
+1
SET @xml='';
select extractValue(@xml,'/a/@b');
extractValue(@xml,'/a/@b')
@@ -609,9 +633,35 @@ extractvalue('Jack','/a[contains(../a,"j")]' collate latin1_bin)
select extractvalue('Jack' collate latin1_bin,'/a[contains(../a,"j")]');
extractvalue('Jack' collate latin1_bin,'/a[contains(../a,"j")]')
+select ExtractValue('','/tag1');
+ExtractValue('','/tag1')
+test
select extractValue('1','position()');
ERROR HY000: XPATH syntax error: ''
select extractValue('1','last()');
ERROR HY000: XPATH syntax error: ''
select extractValue('1','/e/');
ERROR HY000: XPATH syntax error: ''
+set names utf8;
+select extractValue('<Ñ>rÑ>','/Ñ/r');
+extractValue('<Ñ>rÑ>','/Ñ/r')
+r
+select extractValue('<Ñ>ÑÑ>','/r/Ñ');
+extractValue('<Ñ>ÑÑ>','/r/Ñ')
+Ñ
+select extractValue('<Ñ r="r"/>','/Ñ/@r');
+extractValue('<Ñ r="r"/>','/Ñ/@r')
+r
+select extractValue('','/r/@Ñ');
+extractValue('','/r/@Ñ')
+Ñ
+DROP PROCEDURE IF EXISTS p2;
+CREATE PROCEDURE p2 ()
+BEGIN
+DECLARE p LONGTEXT CHARACTER SET UTF8 DEFAULT '<Ñ>AÑ>';
+SELECT EXTRACTVALUE(p,'/Ñ/r');
+END//
+CALL p2();
+EXTRACTVALUE(p,'/Ñ/r')
+A
+DROP PROCEDURE p2;
diff --git a/SSL/cacert.pem b/mysql-test/std_data/cacert.pem
similarity index 100%
rename from SSL/cacert.pem
rename to mysql-test/std_data/cacert.pem
diff --git a/SSL/client-cert.pem b/mysql-test/std_data/client-cert.pem
similarity index 100%
rename from SSL/client-cert.pem
rename to mysql-test/std_data/client-cert.pem
diff --git a/SSL/client-key.pem b/mysql-test/std_data/client-key.pem
similarity index 100%
rename from SSL/client-key.pem
rename to mysql-test/std_data/client-key.pem
diff --git a/SSL/server-cert.pem b/mysql-test/std_data/server-cert.pem
similarity index 100%
rename from SSL/server-cert.pem
rename to mysql-test/std_data/server-cert.pem
diff --git a/SSL/server-key.pem b/mysql-test/std_data/server-key.pem
similarity index 100%
rename from SSL/server-key.pem
rename to mysql-test/std_data/server-key.pem
diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test
index 535402c2e13..7e091991475 100644
--- a/mysql-test/t/archive.test
+++ b/mysql-test/t/archive.test
@@ -1486,6 +1486,9 @@ select * from t1;
alter table t1 add unique key (i, v);
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
+alter table t1 data directory="$MYSQLTEST_VARDIR/tmp";
+select * from t1;
+
#
# Cleanup, test is over
#
diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test
index 7e09f44397c..533da542855 100644
--- a/mysql-test/t/cast.test
+++ b/mysql-test/t/cast.test
@@ -171,6 +171,8 @@ select cast(1.0e+300 as signed int);
CREATE TABLE t1 (f1 double);
INSERT INTO t1 SET f1 = -1.0e+30 ;
INSERT INTO t1 SET f1 = +1.0e+30 ;
+# Expected result is +-1e+30, but Windows returns +-1e+030.
+--replace_result 1e+030 1e+30
SELECT f1 AS double_val, CAST(f1 AS SIGNED INT) AS cast_val FROM t1;
DROP TABLE t1;
diff --git a/mysql-test/t/csv.test b/mysql-test/t/csv.test
index 63c76e79fc7..9ba99167ab9 100644
--- a/mysql-test/t/csv.test
+++ b/mysql-test/t/csv.test
@@ -1477,8 +1477,29 @@ CREATE TABLE test_repair_table5 (
CHECK TABLE test_repair_table5;
REPAIR TABLE test_repair_table5;
SELECT * FROM test_repair_table5;
-DROP TABLE test_repair_table5;
+INSERT INTO test_repair_table5 VALUES (1, 102, "CORRECT", 1876);
+SELECT * FROM test_repair_table5;
+# Corrupt a table -- put a row with wrong # of columns at end of file
+--exec perl -e 'print "\"1\",\"101\",\"IBM\"\n";' >> $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV
+
+FLUSH TABLES;
+CHECK TABLE test_repair_table5;
+REPAIR TABLE test_repair_table5;
+# The correct record inserted should still be in the file
+SELECT * FROM test_repair_table5;
+INSERT INTO test_repair_table5 VALUES (1, 102, "CORRECT2", 1876);
+SELECT * FROM test_repair_table5;
+
+# Corrupt table again -- put a row with wrong # of columns at end of file
+--exec perl -e 'print "\"1\",\"101\",\"IBM\"\n";' >> $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV
+
+FLUSH TABLES;
+CHECK TABLE test_repair_table5;
+REPAIR TABLE test_repair_table5;
+# The two correct records inserted should still be in the file
+SELECT * FROM test_repair_table5;
+DROP TABLE test_repair_table5;
#
# BUG#13406 - incorrect amount of "records deleted"
diff --git a/mysql-test/t/ctype_filename.test b/mysql-test/t/ctype_filename.test
new file mode 100644
index 00000000000..436ccfc4f2e
--- /dev/null
+++ b/mysql-test/t/ctype_filename.test
@@ -0,0 +1,21 @@
+--disable_warnings
+drop table if exists con, aux, nul, lpt1, com1, `clock$`;
+--enable_warnings
+
+create table con (a int);
+drop table con;
+
+create table aux (a int);
+drop table aux;
+
+create table nul (a int);
+drop table nul;
+
+create table lpt1 (a int);
+drop table lpt1;
+
+create table com1 (a int);
+drop table com1;
+
+create table `clock$` (a int);
+drop table `clock$`;
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index 8827eab6bb5..2a9feec91c1 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -4,46 +4,53 @@
#
# Separate the test case name and the comment with ':'.
#
-# : Comment test
+# : BUG#
#
# Do not use any TAB characters for whitespace.
#
##############################################################################
-events_bugs : test case unstable (race conditions). andrey will fix
-events_stress : test case unstable. andrey will fix
-events : test case unstable. andrey will fix
-#ndb_alter_table_row : sometimes wrong error 1015!=1046
-ndb_autodiscover : Needs to be fixed w.r.t binlog
-ndb_autodiscover2 : Needs to be fixed w.r.t binlog
-#ndb_binlog_basic : Results are not deterministic, Tomas will fix
-#ndb_binlog_multi : Results are not deterministic, Tomas will fix
-ndb_cache2 : Bug #18597
-ndb_gis : Bug #18600
-ndb_load : Bug#17233
-partition_03ndb : Bug#16385
-ps_7ndb : dbug assert in RBR mode when executing test suite
-#rpl_bit_npk : Bug#13418
-#rpl_ddl : Bug#15963 SBR does not show "Definer" correctly
-rpl_ndb_dd_basic : Bug #18569
-rpl_ndb_2innodb : assertion in get_parts_for_update()
-rpl_ndb_2myisam : assertion in get_parts_for_update()
-rpl_ndb_auto_inc : Bug#17086
-rpl_ndb_basic : Bug #18592
-#rpl_ndb_blob : interferes with following tests, causing hang
-#rpl_ndb_blob2 : interferes with following tests, causing hang
-rpl_ndb_ddl : master hangs
-#rpl_ndb_delete_nowhere : Bug#17400: delete & update of rows in table without pk fails
-rpl_ndb_insert_ignore : Bug #18567
-rpl_ndb_innodb2ndb : Bug#18261: Cluster Replication: tests rpl_ndb_xxx2ndb fails
-rpl_ndb_myisam2ndb : Bug#18261: Cluster Replication: tests rpl_ndb_xxx2ndb fails
-rpl_ndb_multi_update3 : Bug#18627: Cluster Replication: rpl_ndb_multi_update3 fails on Intel 64 bit
-rpl_ndb_log : result not deterministic, TBD if should remove
-rpl_ndb_relay_space : Bug#16993
-#rpl_ndb_multi_update3 : Bug#17400: delete & update of rows in table without pk fails
-rpl_switch_stm_row_mixed : Bug #18590
-rpl_row_inexist_tbl : Disabled since patch makes this test wait forever
-rpl_sp : Bug#16456
-rpl_until : Unstable test case, bug#15886
-sp-goto : GOTO is currently is disabled - will be fixed in the future
-mysqldump : BUG#18078
-udf : Bug#18564 (Permission by Brian)
+events_bugs : BUG#17619 2006-02-21 andrey Race conditions
+events_stress : BUG#17619 2006-02-21 andrey Race conditions
+events : BUG#17619 2006-02-21 andrey Race conditions
+events_scheduling : BUG#18958 2006-04-13 andrey Test case unstable
+events_logs_tests : BUG#18953 2006-04-12 kent Test is randomly failing
+ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
+ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
+ndb_cache2 : BUG#18597 2006-03-28 brian simultaneous drop table and ndb statistics update triggers node failure
+ndb_cache_multi2 : BUG#18597 2006-04-10 kent simultaneous drop table and ndb statistics update triggers node failure
+partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table
+ps_7ndb : BUG#18950 2006-02-16 jmiller create table like does not obtain LOCK_open
+rpl_deadlock_innodb : BUG#16920 2006-04-12 kent fails in show slave status (randomly)
+rpl_ndb_2innodb : BUG#19004 2006-03-22 tomas ndb: partition by range and update hangs
+rpl_ndb_2myisam : BUG#19004 2006-03-22 tomas ndb: partition by range and update hangs
+rpl_ndb_auto_inc : BUG#17086 2006-02-16 jmiller CR: auto_increment_increment and auto_increment_offset produce duplicate key er
+rpl_ndb_ddl : result file needs update + test needs to checked
+rpl_ndb_innodb2ndb : BUG#18094 2006-03-16 mats Slave caches invalid table definition after atlters causes select failure
+rpl_ndb_log : BUG#18947 2006-03-21 tomas CRBR: order in binlog of create table and insert (on different table) not determ
+rpl_ndb_myisam2ndb : BUG#18094 2006-03-16 mats Slave caches invalid table definition after atlters causes select failure
+#rpl_ndb_relay_space : BUG#16993 2006-02-16 jmiller RBR: ALTER TABLE ZEROFILL AUTO_INCREMENT is not replicated correctly
+rpl_switch_stm_row_mixed : BUG#18590 2006-03-28 brian
+#rpl_row_basic_7ndb : BUG#17400 2006-04-09 brian Cluster Replication: delete & update of rows in table without pk fails on slave.
+rpl_row_blob_innodb : BUG#18980 2006-04-10 kent Test fails randomly
+rpl_row_func003 : BUG#19074 2006-13-04 andrei test failed
+rpl_row_inexist_tbl : BUG#18948 2006-03-09 mats Disabled since patch makes this test wait forever
+rpl_sp : BUG#16456 2006-02-16 jmiller
+rpl_until : BUG#15886 2006-02-16 jmiller Unstable test case
+sp-goto : BUG#18949 2006-02-16 jmiller GOTO is currently is disabled - will be fixed in the future
+mysqldump : BUG#18078 2006-03-10 lars
+udf : BUG#18564 2006-03-27 ian (Permission by Brian)
+
+# the below testcase have been reworked to avoid the bug, test contains comment, keep bug open
+#ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events
+
+# the below ndb failures have not been objerved for > 5 push builds, close bugs
+#ndb_gis : BUG#18600 2006-03-28 brian ndb_gis test failure
+#ndb_load : BUG#17233 2006-02-16 jmiller failed load data from infile causes mysqld dbug_assert, binlog not flushed
+#rpl_ndb_basic : BUG#18592 2006-03-28 brian rpl_ndb_basic failure
+#rpl_ndb_dd_advance : BUG#18924 2006-04-09 brian rpl_ndb_dd_advance failure
+rpl_ndb_dd_partitions : BUG#18094 2006-04-19 mats Slave caches invalid table definition...
+#rpl_ndb_dd_basic : BUG#18569 2006-03-28 brian rpl_ndb_dd_basic failure
+#rpl_ndb_insert_ignore : BUG#18567 2006-03-28 brian rpl_ndb_insert_ignore failure
+#rpl_ndb_multi_update2 : BUG#18928 2006-04-09 brian rpl_ndb_multi_update2 failed
+#rpl_ndb_multi_update3 : BUG#18627 2006-03-29 monty Cluster Replication: rpl_ndb_multi_update3 fails on Intel 64 bit
+#rpl_ndb_trig004 : BUG#18977 2006-04-10 kent Test fails randomly
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index c98c1c94609..4e4fb8f777a 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -446,4 +446,26 @@ select timestampdiff(year,'1999-09-11','2001-9-11');
select timestampdiff(year,'2004-02-28','2005-02-28');
select timestampdiff(year,'2004-02-29','2005-02-28');
+#
+# Bug #18618: BETWEEN for dates with the second argument being a constant
+# expression and the first and the third arguments being fields
+#
+
+CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, day date);
+CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, day date);
+
+INSERT INTO t1 VALUES
+ (1, '2005-06-01'), (2, '2005-02-01'), (3, '2005-07-01');
+INSERT INTO t2 VALUES
+ (1, '2005-08-01'), (2, '2005-06-15'), (3, '2005-07-15');
+
+SELECT * FROM t1, t2
+ WHERE t1.day BETWEEN
+ '2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+SELECT * FROM t1, t2
+ WHERE CAST(t1.day AS DATE) BETWEEN
+ '2005.09.01' - INTERVAL 6 MONTH AND t2.day;
+
+DROP TABLE t1,t2;
+
# End of 5.0 tests
diff --git a/mysql-test/t/having.test b/mysql-test/t/having.test
index 9e5bc4bc136..9b21e544657 100644
--- a/mysql-test/t/having.test
+++ b/mysql-test/t/having.test
@@ -354,7 +354,9 @@ drop table t1;
# when the server is run on Windows or with --lower-case-table-names=1
#
+--disable_warnings
DROP SCHEMA IF EXISTS HU;
+--enable_warnings
CREATE SCHEMA HU ;
USE HU ;
diff --git a/mysql-test/t/index_merge_innodb.test b/mysql-test/t/index_merge_innodb.test
index a48626a9ec3..25f4e0b4e65 100644
--- a/mysql-test/t/index_merge_innodb.test
+++ b/mysql-test/t/index_merge_innodb.test
@@ -248,3 +248,55 @@ select t_vers,t_rele,t_cust,filler1 from t1 where t_vers = '7.6'
drop table t1;
+# BUG#19021: Crash in index_merge/ROR-intersection optimizer under
+# specific circumstances.
+create table t1 (
+ pk int(11) not null auto_increment,
+ a int(11) not null default '0',
+ b int(11) not null default '0',
+ c int(11) not null default '0',
+
+ filler1 datetime, filler2 varchar(15),
+ filler3 longtext,
+
+ kp1 varchar(4), kp2 varchar(7),
+ kp3 varchar(2), kp4 varchar(4),
+ kp5 varchar(7),
+ filler4 char(1),
+
+ primary key (pk),
+ key idx1(a,b,c),
+ key idx2(c),
+ key idx3(kp1,kp2,kp3,kp4,kp5)
+) engine=innodb default charset=latin1;
+--disable_query_log
+set @fill= uncompress(unhex(concat(
+'F91D0000789CDD993D6FDB301086F7FE0A6D4E0105B8E3F1335D5BA028DA0EEDE28E1D320408',
+'52A0713BF4D7571FB62C51A475924839080307B603E77DEE787C8FA41F9E9EEF7F1F8A87A7C3',
+'AFE280C5DF9F8F7FEE9F8B1B2CB114D6902E918455245DB91300FA16E42D5201FA4EE29DA05D',
+'B9FB3718A33718A3FA8C30AEFAFDE1F317D016AA67BA7A60FDE45BF5F8BA7B5BDE8812AA9F1A',
+'069DB03C9804346644F3A3A6A1338DB572756A3C4D1BCC804CABF912C654AE9BB855A2B85962',
+'3A479259CAE6A86C0411D01AE5483581EDCBD9A39C45252D532E533979EB9F82E971D979BDB4',
+'8531105670740AFBFD1E34AAB0029E4AD0A1D46A6D0946A21A16038A5CD965CD2D524673F712',
+'20C304477315CE18405EAF9BD0AFFEAC74FDA14F1FBF5BD34C769D73FBBEDF4750ADD4E5A99C',
+'5C8DC04934AFA275D483D536D174C11B12AF27F8F888B41B6FC9DBA569E1FD7BD72D698130B7',
+'91B23A98803512B3D31881E8DCDA2AC1754E3644C4BB3A8466750B911681274A39E35E8624B7',
+'444A42AC1213F354758E3CF1A4CDD5A688C767CF1B11ABC5867CB15D8A18E0B91E9EC275BB94',
+'58F33C2936F64690D55BC29E4A293D95A798D84217736CEAAA538CE1354269EE2162053FBC66',
+'496D90CB53323CB279D3A6AF651B4B22B9E430743D83BE48E995A09D4FC9871C22D8D189B945',
+'706911BCB8C3C774B9C08D2FC6ED853ADACA37A14A4CB2E027630E5B80ECACD939431B1CDF62',
+'7D71487536EA2C678F59685E91F4B6C144BCCB94C1EBA9FA6F5552DDCA4E4539BE326A2720CB',
+'45ED028EB3616AC93C46E775FEA9FA6DA7CFCEC6DEBA5FCD1F915EED4D983BDDB881528AD9AB',
+'43C1576F29AAB35BDFBC21D422F52B307D350589D45225A887AC46C8EDD72D99EC3ED2E1BCEF',
+'7AF26FC4C74097B6768A5EDAFA660CC64278F7E63F99AC954B')));
+prepare x from @fill;
+execute x;
+deallocate prepare x;
+--enable_query_log
+set @fill=NULL;
+SELECT COUNT(*) FROM t1 WHERE b = 0 AND a = 0 AND c = 13286427 AND
+ kp1='279' AND kp2='ELM0678' AND kp3='6' AND kp4='10' AND kp5 = 'R ';
+
+drop table t1;
+
+
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index 0a8e46d694c..ab408e9b4a5 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -1141,6 +1141,41 @@ show create table t2;
drop table t2, t1;
+#
+# Let us test binlog_cache_use and binlog_cache_disk_use status vars.
+# Actually this test has nothing to do with innodb per se, it just requires
+# transactional table.
+#
+flush status;
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+
+create table t1 (a int) engine=innodb;
+
+# Now we are going to create transaction which is long enough so its
+# transaction binlog will be flushed to disk...
+let $1=2000;
+disable_query_log;
+begin;
+while ($1)
+{
+ eval insert into t1 values( $1 );
+ dec $1;
+}
+commit;
+enable_query_log;
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+
+# Transaction which should not be flushed to disk and so should not
+# increase binlog_cache_disk_use.
+begin;
+delete from t1;
+commit;
+show status like "binlog_cache_use";
+show status like "binlog_cache_disk_use";
+drop table t1;
+
#
# Bug #6126: Duplicate columns in keys gives misleading error message
#
@@ -1255,6 +1290,15 @@ select * from t1 where x > -16;
select count(*) from t1 where x = 18446744073709551601;
drop table t1;
+
+# Test for testable InnoDB status variables. This test
+# uses previous ones(pages_created, rows_deleted, ...).
+show status like "Innodb_buffer_pool_pages_total";
+show status like "Innodb_page_size";
+show status like "Innodb_rows_deleted";
+show status like "Innodb_rows_inserted";
+show status like "Innodb_rows_updated";
+
# Test for row locks InnoDB status variables.
show status like "Innodb_row_lock_waits";
show status like "Innodb_row_lock_current_waits";
@@ -2085,6 +2129,18 @@ connection default;
disconnect a;
disconnect b;
+#
+# Bug #14360: problem with intervals
+#
+
+create table t1(a date) engine=innodb;
+create table t2(a date, key(a)) engine=innodb;
+insert into t1 values('2005-10-01');
+insert into t2 values('2005-10-01');
+select * from t1, t2
+ where t2.a between t1.a - interval 2 day and t1.a + interval 2 day;
+drop table t1, t2;
+
#
# Test that cascading updates leading to duplicate keys give the correct
# error message (bug #9680)
@@ -2137,4 +2193,3 @@ alter table t1 drop foreign key c2_fk;
show create table t1;
#
drop table t1, t2;
-
diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test
index ddde6cfa5d3..f3dd8e7e199 100644
--- a/mysql-test/t/insert.test
+++ b/mysql-test/t/insert.test
@@ -175,3 +175,4 @@ select count(*) from t2;
insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
select count(*) from t2;
drop table t1,t2,t3;
+
diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test
index dbf65845e6a..95cba2743da 100644
--- a/mysql-test/t/mysql.test
+++ b/mysql-test/t/mysql.test
@@ -61,3 +61,9 @@ drop table t1;
# Bug#16859 -- NULLs in columns must not truncate data as if a C-language "string".
#
--exec $MYSQL -t test -e "create table t1 (col1 binary(4), col2 varchar(10), col3 int); insert into t1 values ('a', 'b', 123421),('a ', '0123456789', 4), ('abcd', '', 4); select concat('>',col1,'<'), col2, col3 from t1; drop table t1;" 2>&1
+
+#
+# Bug#18265 -- mysql client: No longer right-justifies numeric columns
+#
+--exec $MYSQL -t --default-character-set utf8 test -e "create table t1 (i int, j int, k char(25) charset utf8); insert into t1 (i) values (1); insert into t1 (k) values ('<----------------------->'); insert into t1 (k) values ('<-----'); insert into t1 (k) values ('Τη γλώσσα'); insert into t1 (k) values ('á›–áš´ áš·á›–á›'); select * from t1; DROP TABLE t1;"
+
diff --git a/mysql-test/t/ndb_alter_table2.test b/mysql-test/t/ndb_alter_table2.test
new file mode 100644
index 00000000000..afe6e44f698
--- /dev/null
+++ b/mysql-test/t/ndb_alter_table2.test
@@ -0,0 +1,85 @@
+-- source include/have_ndb.inc
+-- source include/have_multi_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+connect (con1,localhost,root,,test);
+connect (con2,localhost,root,,test);
+connect (con3,localhost,root,,test);
+connect (con4,localhost,root,,test);
+connect (con5,localhost,root,,test);
+connect (con6,localhost,root,,test);
+
+CREATE TABLE t1 (
+ a INT NOT NULL PRIMARY KEY,
+ b INT NOT NULL
+) ENGINE=ndbcluster;
+
+connection con1;
+BEGIN;
+INSERT INTO t1 VALUES (9410,9412);
+connection con2;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9411,9412);
+connection con3;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9412,9412);
+connection con4;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9413,9412);
+connection con5;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9414,9412);
+connection con6;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (9415,9412);
+connection con1;
+sleep 1;
+
+ROLLBACK;
+connection con2;
+reap;
+ROLLBACK;
+connection con3;
+reap;
+ROLLBACK;
+connection con4;
+reap;
+ROLLBACK;
+connection con5;
+reap;
+ROLLBACK;
+connection con6;
+reap;
+ROLLBACK;
+
+connection server2;
+
+drop table t1;
+CREATE TABLE t1 (
+ a INT NOT NULL PRIMARY KEY,
+ b INT NOT NULL,
+ c INT NOT NULL
+) ENGINE=ndbcluster;
+
+connection server1;
+
+--disable_result_log
+--error 0,1412
+select * from t1;
+--enable_result_log
+select * from t1;
+select * from t1;
+select * from t1;
+select * from t1;
+select * from t1;
+
+drop table t1;
diff --git a/mysql-test/t/ndb_alter_table_stm.test b/mysql-test/t/ndb_alter_table_stm.test
index 2c52b542b12..bf162dd0d50 100644
--- a/mysql-test/t/ndb_alter_table_stm.test
+++ b/mysql-test/t/ndb_alter_table_stm.test
@@ -17,6 +17,12 @@ select * from t1 where c = 'two';
connection server1;
alter table t1 drop index c;
connection server2;
+
+--disable_result_log
+--error 0,1412
+select * from t1 where c = 'two';
+--enable_result_log
+
select * from t1 where c = 'two';
connection server1;
drop table t1;
diff --git a/mysql-test/t/ndb_basic.test b/mysql-test/t/ndb_basic.test
index df94545abea..ab62e3dd13a 100644
--- a/mysql-test/t/ndb_basic.test
+++ b/mysql-test/t/ndb_basic.test
@@ -6,17 +6,6 @@ DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7;
drop database if exists mysqltest;
--enable_warnings
-# workaround for bug#16445
-# remove to reproduce bug and run tests drom ndb start
-# and with ndb_autodiscover disabled
-CREATE TABLE t1 (
- pk1 INT NOT NULL PRIMARY KEY,
- attr1 INT NOT NULL,
- attr2 INT,
- attr3 VARCHAR(10)
-) ENGINE=ndbcluster;
-drop table t1;
-
#
# Basic test to show that the NDB
# table handler is working
diff --git a/mysql-test/t/ndb_binlog_ddl_multi.test b/mysql-test/t/ndb_binlog_ddl_multi.test
index 120117d1e0a..f41e7c3a527 100644
--- a/mysql-test/t/ndb_binlog_ddl_multi.test
+++ b/mysql-test/t/ndb_binlog_ddl_multi.test
@@ -58,13 +58,19 @@ reset master;
ALTER DATABASE mysqltest CHARACTER SET latin1;
-# drop table and drop should come after data events
---connection server2
-drop table mysqltest.t1;
+# having drop here instead of below sometimes triggers bug#18976
+## drop table and drop should come after data events
+#--connection server2
+#drop table mysqltest.t1;
--connection server1
--source include/show_binlog_events.inc
+# to track down bug#18976
+--real_sleep 10
+--source include/show_binlog_events.inc
+--connection server2
+drop table mysqltest.t1;
# drop database and drop should come after data events
--connection server1
@@ -127,10 +133,16 @@ ENGINE = NDB;
DROP LOGFILE GROUP lg1
ENGINE =NDB;
-drop table t1;
+# having drop here instead of below sometimes triggers bug#18976
+#drop table t1;
--connection server2
--source include/show_binlog_events.inc
+# to track down bug#18976
+--real_sleep 10
+--source include/show_binlog_events.inc
+
+drop table t1;
#
# Bug #17827 cluster: rename of several tables in one statement,
diff --git a/mysql-test/t/ndb_blob_partition.test b/mysql-test/t/ndb_blob_partition.test
new file mode 100644
index 00000000000..a3948cc9491
--- /dev/null
+++ b/mysql-test/t/ndb_blob_partition.test
@@ -0,0 +1,93 @@
+--source include/have_ndb.inc
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Minimal NDB blobs test with range partitions.
+#
+
+create table t1 (
+ a mediumint not null,
+ b text not null,
+ c int not null,
+ d longblob,
+ primary key using hash (a,c),
+ unique key (c)
+)
+ engine=ndb
+ partition by range (c)
+ partitions 3
+ ( partition p1 values less than (200),
+ partition p2 values less than (300),
+ partition p3 values less than (400));
+
+--disable_query_log
+sleep 1;
+
+# length 61
+set @s0 = 'rggurloniukyehuxdbfkkyzlceixzrehqhvxvxbpwizzvjzpucqmzrhzxzfau';
+set @s1 = 'ykyymbzqgqlcjhlhmyqelfoaaohvtbekvifukdtnvcrrjveevfakxarxexomz';
+set @s2 = 'dbnfqyzgtqxalcrwtfsqabknvtfcbpoonxsjiqvmhnfikxxhcgoexlkoezvah';
+
+set @v1 = repeat(@s0, 100); -- 1d42dd9090cf78314a06665d4ea938c35cc760f4
+set @v2 = repeat(@s1, 200); -- 10d3c783026b310218d10b7188da96a2401648c6
+set @v3 = repeat(@s2, 300); -- a33549d9844092289a58ac348dd59f09fc28406a
+set @v4 = repeat(@s0, 400); -- daa61c6de36a0526f0d47dc29d6b9de7e6d2630c
+set @v5 = repeat(@s1, 500); -- 70fc9a7d08beebc522258bfb02000a30c77a8f1d
+set @v6 = repeat(@s2, 600); -- 090565c580809efed3d369481a4bbb168b20713e
+set @v7 = repeat(@s0, 700); -- 1e0070bec426871a46291de27b9bd6e4255ab4e5
+set @v8 = repeat(@s1, 800); -- acbaba01bc2e682f015f40e79d9cbe475db3002e
+set @v9 = repeat(@s2, 900); -- 9ee30d99162574f79c66ae95cdf132dcf9cbc259
+--enable_query_log
+
+# -- insert --
+insert into t1 values (1, @v1, 101, @v2);
+insert into t1 values (1, @v2, 102, @v3);
+insert into t1 values (1, @v3, 103, @v4);
+insert into t1 values (2, @v4, 201, @v5);
+insert into t1 values (2, @v5, 202, @v6);
+insert into t1 values (2, @v6, 203, @v7);
+insert into t1 values (3, @v7, 301, @v8);
+insert into t1 values (3, @v8, 302, @v9);
+insert into t1 values (3, @v9, 303, @v1);
+select a, sha1(b), c, sha1(d) from t1 order by a;
+
+# -- pk read --
+select a, sha1(b), c, sha1(d) from t1 where a = 1 and c = 101;
+select a, sha1(b), c, sha1(d) from t1 where a = 2 and c = 201;
+select a, sha1(b), c, sha1(d) from t1 where a = 3 and c = 301;
+
+# -- pk update --
+update t1 set b = @v3, d = @v4 where a = 1 and c = 102;
+update t1 set b = @v6, d = @v7 where a = 2 and c = 202;
+update t1 set b = @v9, d = @v1 where a = 3 and c = 302;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+
+# -- hash index update --
+update t1 set b = @v4, d = @v5 where c = 103;
+update t1 set b = @v7, d = @v8 where c = 203;
+update t1 set b = @v1, d = @v2 where c = 303;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+
+# -- full scan update --
+update t1 set b = @v5, d = @v6;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+
+# -- range scan update
+update t1 set b = @v1, d = @v2 where 100 < c and c < 200;
+update t1 set b = @v4, d = @v5 where 200 < c and c < 300;
+update t1 set b = @v7, d = @v8 where 300 < c and c < 400;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+
+# -- delete --
+delete from t1 where a = 1 and c = 101;
+delete from t1 where c = 102;
+# delete from t1 where c < 300; # XXX coredump
+delete from t1;
+select a, sha1(b), c, sha1(d) from t1 order by a;
+
+# -- clean up --
+drop table t1;
diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test
index a3aa3f6f025..272cdc27af6 100644
--- a/mysql-test/t/partition.test
+++ b/mysql-test/t/partition.test
@@ -956,4 +956,57 @@ PARTITION p2 VALUES LESS THAN (30) ENGINE = MyISAM);
SHOW TABLE STATUS;
DROP TABLE t1;
+#
+#BUG 18750 Problems with partition names
+#
+create table t1 (a int)
+partition by list (a)
+(partition `s1 s2` values in (0));
+drop table t1;
+
+create table t1 (a int)
+partition by list (a)
+(partition `7` values in (0));
+drop table t1;
+
+--error ER_WRONG_PARTITION_NAME
+create table t1 (a int)
+partition by list (a)
+(partition `s1 s2 ` values in (0));
+
+--error ER_WRONG_PARTITION_NAME
+create table t1 (a int)
+partition by list (a)
+subpartition by hash (a)
+(partition p1 values in (0) (subpartition `p1 p2 `));
+
+#
+# BUG 18752 SHOW CREATE TABLE doesn't show NULL value in SHOW CREATE TABLE
+#
+CREATE TABLE t1 (a int)
+PARTITION BY LIST (a)
+(PARTITION p0 VALUES IN (NULL));
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+
+--error 1064
+CREATE TABLE t1 (a int)
+PARTITION BY RANGE(a)
+(PARTITION p0 VALUES LESS THAN (NULL));
+
+#
+# Bug#18753 Partitions: auto_increment fails
+#
+create table t1 (s1 int auto_increment primary key)
+partition by list (s1)
+(partition p1 values in (1),
+ partition p2 values in (2),
+ partition p3 values in (3));
+insert into t1 values (null);
+insert into t1 values (null);
+insert into t1 values (null);
+select auto_increment from information_schema.tables where table_name='t1';
+select * from t1;
+drop table t1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/partition_grant.test b/mysql-test/t/partition_grant.test
new file mode 100644
index 00000000000..e2e80a7ca04
--- /dev/null
+++ b/mysql-test/t/partition_grant.test
@@ -0,0 +1,51 @@
+-- source include/have_partition.inc
+# Grant tests not performed with embedded server
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop schema if exists mysqltest_1;
+--enable_warnings
+
+
+#
+# Bug #17139: ALTER TABLE ... DROP PARTITION should require DROP privilege
+#
+
+create schema mysqltest_1;
+use mysqltest_1;
+
+create table t1 (a int) partition by list (a) (partition p1 values in (1), partition p2 values in (2), partition p3 values in (3));
+insert into t1 values (1),(2);
+
+grant select,alter on mysqltest_1.* to mysqltest_1@localhost;
+
+connect (conn1,localhost,mysqltest_1,,mysqltest_1);
+show grants for current_user;
+alter table t1 add b int;
+--error ER_TABLEACCESS_DENIED_ERROR
+alter table t1 drop partition p2;
+disconnect conn1;
+
+connection default;
+grant drop on mysqltest_1.* to mysqltest_1@localhost;
+
+connect (conn2,localhost,mysqltest_1,,mysqltest_1);
+alter table t1 drop partition p2;
+disconnect conn2;
+
+connection default;
+revoke alter on mysqltest_1.* from mysqltest_1@localhost;
+
+connect (conn3,localhost,mysqltest_1,,mysqltest_1);
+--error ER_TABLEACCESS_DENIED_ERROR
+alter table t1 drop partition p3;
+disconnect conn3;
+
+connection default;
+
+revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost;
+drop user mysqltest_1@localhost;
+drop table t1;
+drop schema mysqltest_1;
+
+--echo End of 5.1 tests
diff --git a/mysql-test/t/partition_hash.test b/mysql-test/t/partition_hash.test
index 75a36713694..8494de98371 100644
--- a/mysql-test/t/partition_hash.test
+++ b/mysql-test/t/partition_hash.test
@@ -90,3 +90,22 @@ drop table t1;
CREATE TABLE t1 (s1 int) ENGINE=BLACKHOLE PARTITION BY HASH (s1);
INSERT INTO t1 VALUES (0);
DROP TABLE t1;
+
+#
+# BUG 18423 Hash partitioning can lose rows in some queries
+#
+create table t1 (c1 int DEFAULT NULL,
+ c2 varchar (30) DEFAULT NULL,
+ c3 date DEFAULT NULL)
+engine = myisam
+partition by hash (to_days(c3))
+partitions 12;
+
+insert into t1 values
+(136,'abc','2002-01-05'),(142,'abc','2002-02-14'),(162,'abc','2002-06-28'),
+(182,'abc','2002-11-09'),(158,'abc','2002-06-01'),(184,'abc','2002-11-22');
+select * from t1;
+select * from t1 where c3 between '2002-01-01' and '2002-12-31';
+
+drop table t1;
+
diff --git a/mysql-test/t/partition_pruning.test b/mysql-test/t/partition_pruning.test
index 71fed4f20c9..0c922392d32 100644
--- a/mysql-test/t/partition_pruning.test
+++ b/mysql-test/t/partition_pruning.test
@@ -554,3 +554,15 @@ drop table t1;
# No tests for NULLs in RANGE(monotonic_expr()) - they depend on BUG#15447
# being fixed.
+
+#
+#BUG 17946 Like searches fail with partitioning
+#
+create table t1 (a char(32) primary key)
+partition by key()
+partitions 100;
+insert into t1 values ('na');
+select * from t1;
+select * from t1 where a like 'n%';
+drop table t1;
+
diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test
index b54efcad3a3..9ffdb72ca22 100644
--- a/mysql-test/t/ps.test
+++ b/mysql-test/t/ps.test
@@ -114,6 +114,9 @@ set @fvar= 123.4567;
prepare stmt1 from @fvar;
drop table t1,t2;
+deallocate prepare stmt3;
+deallocate prepare stmt4;
+deallocate prepare stmt5;
#
# Bug #4105: Server crash on attempt to prepare a statement with character
@@ -257,6 +260,7 @@ prepare `ü` from 'select 1234';
execute `ü` ;
set names latin1;
execute `ü`;
+deallocate prepare `ü`;
set names default;
@@ -823,6 +827,7 @@ EXECUTE b12651;
DROP VIEW b12651_V1;
DROP TABLE b12651_T1, b12651_T2;
+DEALLOCATE PREPARE b12651;
#
# Bug#9359 "Prepared statements take snapshot of system vars at PREPARE
@@ -921,6 +926,143 @@ select length(a) from t1;
drop table t1;
deallocate prepare stmt;
+#
+# Bug#16248 "WHERE (col1,col2) IN ((?,?)) gives wrong results":
+# check that ROW implementation is reexecution-friendly.
+#
+create table t1 (col1 integer, col2 integer);
+insert into t1 values(100,100),(101,101),(102,102),(103,103);
+prepare stmt from 'select col1, col2 from t1 where (col1, col2) in ((?,?))';
+set @a=100, @b=100;
+execute stmt using @a,@b;
+set @a=101, @b=101;
+execute stmt using @a,@b;
+set @a=102, @b=102;
+execute stmt using @a,@b;
+set @a=102, @b=103;
+execute stmt using @a,@b;
+deallocate prepare stmt;
+drop table t1;
+
+#
+# Bug#16365 Prepared Statements: DoS with too many open statements
+# Check that the limit @@max_prpeared_stmt_count works.
+#
+# Save the old value
+set @old_max_prepared_stmt_count= @@max_prepared_stmt_count;
+#
+# Disable prepared statement protocol: in this test we set
+# @@max_prepared_stmt_count to 0 or 1 and would like to test the limit
+# manually.
+#
+--disable_ps_protocol
+#
+# A. Check that the new variables are present in SHOW VARIABLES list.
+#
+show variables like 'max_prepared_stmt_count';
+show variables like 'prepared_stmt_count';
+#
+# B. Check that the new variables are selectable.
+#
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+#
+# C. Check that max_prepared_stmt_count is settable (global only),
+# whereas prepared_stmt_count is readonly.
+#
+set global max_prepared_stmt_count=-1;
+select @@max_prepared_stmt_count;
+set global max_prepared_stmt_count=10000000000000000;
+select @@max_prepared_stmt_count;
+set global max_prepared_stmt_count=default;
+select @@max_prepared_stmt_count;
+--error ER_GLOBAL_VARIABLE
+set @@max_prepared_stmt_count=1;
+--error ER_GLOBAL_VARIABLE
+set max_prepared_stmt_count=1;
+--error ER_GLOBAL_VARIABLE
+set local max_prepared_stmt_count=1;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+set local prepared_stmt_count=0;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+set @@prepared_stmt_count=0;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+set global prepared_stmt_count=1;
+# set to a reasonable limit works
+set global max_prepared_stmt_count=1;
+select @@max_prepared_stmt_count;
+#
+# D. Check that the variables actually work.
+#
+set global max_prepared_stmt_count=0;
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
+prepare stmt from "select 1";
+select @@prepared_stmt_count;
+set global max_prepared_stmt_count=1;
+prepare stmt from "select 1";
+select @@prepared_stmt_count;
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
+prepare stmt1 from "select 1";
+select @@prepared_stmt_count;
+deallocate prepare stmt;
+select @@prepared_stmt_count;
+#
+# E. Check that we can prepare a statement with the same name
+# successfully, without hitting the limit.
+#
+prepare stmt from "select 1";
+select @@prepared_stmt_count;
+prepare stmt from "select 2";
+select @@prepared_stmt_count;
+#
+# F. We can set the max below the current count. In this case no new
+# statements should be allowed to prepare.
+#
+select @@prepared_stmt_count, @@max_prepared_stmt_count;
+set global max_prepared_stmt_count=0;
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
+prepare stmt from "select 1";
+# Result: the old statement is deallocated, the new is not created.
+--error 1243 # ER_UNKNOWN_STMT_HANDLER
+execute stmt;
+select @@prepared_stmt_count;
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
+prepare stmt from "select 1";
+select @@prepared_stmt_count;
+#
+# G. Show that the variables are up to date even after a connection with all
+# statements in it was terminated.
+#
+set global max_prepared_stmt_count=3;
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+prepare stmt from "select 1";
+connect (con1,localhost,root,,);
+connection con1;
+prepare stmt from "select 2";
+prepare stmt1 from "select 3";
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
+prepare stmt2 from "select 4";
+connection default;
+--error ER_MAX_PREPARED_STMT_COUNT_REACHED
+prepare stmt2 from "select 4";
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+disconnect con1;
+connection default;
+# Wait for the connection to die: deal with a possible race
+deallocate prepare stmt;
+let $count= `select @@prepared_stmt_count`;
+if ($count)
+{
+--sleep 2
+ let $count= `select @@prepared_stmt_count`;
+}
+select @@max_prepared_stmt_count, @@prepared_stmt_count;
+#
+# Restore the old value.
+#
+set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
+--enable_ps_protocol
+
# End of 4.1 tests
#
@@ -946,6 +1088,7 @@ insert into t1 (a,b) values (2,8),(1,9),(3,7);
# Will order by index
prepare stmt from "select * from t1 order by ?";
+set @a=NULL;
execute stmt using @a;
set @a=1;
execute stmt using @a;
diff --git a/mysql-test/t/rpl_ndb_bank.test b/mysql-test/t/rpl_ndb_bank.test
index 102450fce91..3601c841c54 100644
--- a/mysql-test/t/rpl_ndb_bank.test
+++ b/mysql-test/t/rpl_ndb_bank.test
@@ -132,34 +132,7 @@ let the_backup_id=`select @the_backup_id`;
#
# now setup replication to continue from last epoch
-# 1. get apply_status epoch from slave
-# 2. get corresponding _next_ binlog postition from master
-# 3. change master on slave
-# 4. start the replication
-
-# 1.
---connection slave
---replace_column 1
-SELECT @the_epoch:=MAX(epoch) FROM cluster.apply_status;
---let $the_epoch= `select @the_epoch`
-
-# 2.
---connection master
---replace_result $the_epoch
---replace_column 1
-eval SELECT @the_pos:=Position,@the_file:=SUBSTRING_INDEX(FILE, '/', -1)
- FROM cluster.binlog_index WHERE epoch > $the_epoch ORDER BY epoch ASC LIMIT 1;
---let $the_pos= `SELECT @the_pos`
---let $the_file= `SELECT @the_file`
-
-# 3.
---connection slave
---replace_result $the_pos