summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/t
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 11:19:16 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:07:37 +0000
commitb485aab7e71c1625cfc27e0f92c9509f42378458 (patch)
treeae9abe108601079d1679194de237c9a435ae5b55 /web/server/h2o/libh2o/t
parentAdding upstream version 1.44.3. (diff)
downloadnetdata-upstream.tar.xz
netdata-upstream.zip
Adding upstream version 1.45.3+dfsg.upstream/1.45.3+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'web/server/h2o/libh2o/t')
-rw-r--r--web/server/h2o/libh2o/t/00unit.evloop.t6
-rw-r--r--web/server/h2o/libh2o/t/00unit.libuv.t6
-rw-r--r--web/server/h2o/libh2o/t/00unit.mruby.t6
-rw-r--r--web/server/h2o/libh2o/t/00unit.mruby/acl.rb179
-rw-r--r--web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb64
-rw-r--r--web/server/h2o/libh2o/t/00unit/assets/1000.txt100
-rw-r--r--web/server/h2o/libh2o/t/00unit/assets/1000000.txt100000
-rw-r--r--web/server/h2o/libh2o/t/00unit/assets/index.html1
-rw-r--r--web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt1
-rw-r--r--web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep0
-rwxr-xr-xweb/server/h2o/libh2o/t/00unit/assets/read_command.pl12
-rw-r--r--web/server/h2o/libh2o/t/00unit/issues/293.c116
-rw-r--r--web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c46
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/cache.c84
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c53
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/multithread.c157
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c95
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/socket.c171
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/string.c335
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/time.c48
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/common/url.c662
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/core/headers.c53
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/core/proxy.c49
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/core/util.c435
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/handler/compress.c125
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c183
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/handler/file.c752
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/handler/headers.c127
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c127
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c82
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c78
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/http2/casper.c133
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c511
-rw-r--r--web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c563
-rw-r--r--web/server/h2o/libh2o/t/00unit/src/ssl.c202
-rw-r--r--web/server/h2o/libh2o/t/00unit/test.c202
-rw-r--r--web/server/h2o/libh2o/t/00unit/test.h76
-rw-r--r--web/server/h2o/libh2o/t/10http1client.t13
-rw-r--r--web/server/h2o/libh2o/t/40bad-request.t28
-rw-r--r--web/server/h2o/libh2o/t/40env.t80
-rw-r--r--web/server/h2o/libh2o/t/40max-connections.t80
-rw-r--r--web/server/h2o/libh2o/t/40memcached-session-resumption.t62
-rw-r--r--web/server/h2o/libh2o/t/40protocol.t63
-rw-r--r--web/server/h2o/libh2o/t/40proxy-protocol.t153
-rw-r--r--web/server/h2o/libh2o/t/40running-user.t38
-rw-r--r--web/server/h2o/libh2o/t/40server-push-attrs.t65
-rw-r--r--web/server/h2o/libh2o/t/40server-push-multiple.t66
-rw-r--r--web/server/h2o/libh2o/t/40server-push.t245
-rw-r--r--web/server/h2o/libh2o/t/40session-ticket.t133
-rw-r--r--web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml6
-rw-r--r--web/server/h2o/libh2o/t/40ssl-cipher-suite.t38
-rw-r--r--web/server/h2o/libh2o/t/40unix-socket.t28
-rw-r--r--web/server/h2o/libh2o/t/40virtual-host.t83
-rw-r--r--web/server/h2o/libh2o/t/40websocket.t114
-rw-r--r--web/server/h2o/libh2o/t/50access-log.t281
-rw-r--r--web/server/h2o/libh2o/t/50chunked-encoding-proxying.t84
-rw-r--r--web/server/h2o/libh2o/t/50compress-hint.t88
-rw-r--r--web/server/h2o/libh2o/t/50compress.t88
-rw-r--r--web/server/h2o/libh2o/t/50config-tag.t111
-rw-r--r--web/server/h2o/libh2o/t/50errordoc.t179
-rw-r--r--web/server/h2o/libh2o/t/50expires.t47
-rw-r--r--web/server/h2o/libh2o/t/50fastcgi-cgi.t35
-rw-r--r--web/server/h2o/libh2o/t/50fastcgi-php.t54
-rw-r--r--web/server/h2o/libh2o/t/50fastcgi.t139
-rw-r--r--web/server/h2o/libh2o/t/50file-config.t143
-rw-r--r--web/server/h2o/libh2o/t/50file-custom-handler.t96
-rw-r--r--web/server/h2o/libh2o/t/50file-file.t54
-rw-r--r--web/server/h2o/libh2o/t/50file-range.t100
-rw-r--r--web/server/h2o/libh2o/t/50file.t22
-rw-r--r--web/server/h2o/libh2o/t/50headers.t25
-rw-r--r--web/server/h2o/libh2o/t/50http2_debug_state.t69
-rw-r--r--web/server/h2o/libh2o/t/50internal-redirect.t117
-rw-r--r--web/server/h2o/libh2o/t/50mimemap.t88
-rw-r--r--web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml1
-rw-r--r--web/server/h2o/libh2o/t/50mruby-acl.t39
-rw-r--r--web/server/h2o/libh2o/t/50mruby-dos-detector.t111
-rw-r--r--web/server/h2o/libh2o/t/50mruby-htpasswd.t48
-rw-r--r--web/server/h2o/libh2o/t/50mruby-http-request.t269
-rw-r--r--web/server/h2o/libh2o/t/50mruby.t541
-rw-r--r--web/server/h2o/libh2o/t/50mruby/hello.rb3
-rw-r--r--web/server/h2o/libh2o/t/50mruby/index.html1
-rw-r--r--web/server/h2o/libh2o/t/50post-size-limit.t77
-rw-r--r--web/server/h2o/libh2o/t/50redirect.t92
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-0.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-1.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-10.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-11.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-12.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-13.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-14.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-15.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-2.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-3.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-4.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-5.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-6.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-7.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-8.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-9.t4
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t73
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-config.t104
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t77
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t57
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-https.t70
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t68
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t55
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t210
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t35
-rw-r--r--web/server/h2o/libh2o/t/50reverse-proxy/hello.txt1
-rwxr-xr-xweb/server/h2o/libh2o/t/50reverse-proxy/test.pl249
-rw-r--r--web/server/h2o/libh2o/t/50server-starter.t103
-rw-r--r--web/server/h2o/libh2o/t/50servername.t97
-rw-r--r--web/server/h2o/libh2o/t/50status.t88
-rw-r--r--web/server/h2o/libh2o/t/50throttle-response.t42
-rw-r--r--web/server/h2o/libh2o/t/80dup-host-headers.t51
-rw-r--r--web/server/h2o/libh2o/t/80graceful-shutdown.t80
-rw-r--r--web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t44
-rw-r--r--web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t79
-rw-r--r--web/server/h2o/libh2o/t/80issues579.t45
-rw-r--r--web/server/h2o/libh2o/t/80issues595.t42
-rw-r--r--web/server/h2o/libh2o/t/80issues61.t57
-rw-r--r--web/server/h2o/libh2o/t/80one-byte-window.t56
-rw-r--r--web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t76
-rw-r--r--web/server/h2o/libh2o/t/80yaml-merge.t82
-rw-r--r--web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t50
-rw-r--r--web/server/h2o/libh2o/t/90live-sni.t91
-rw-r--r--web/server/h2o/libh2o/t/90root-fastcgi-php.t78
-rw-r--r--web/server/h2o/libh2o/t/README.md9
-rw-r--r--web/server/h2o/libh2o/t/Util.pm283
-rw-r--r--web/server/h2o/libh2o/t/assets/.htpasswd1
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/404.html1
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/alice.txt31
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gzbin645 -> 0 bytes
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/esi.html1
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpgbin481218 -> 0 bytes
-rwxr-xr-xweb/server/h2o/libh2o/t/assets/doc_root/hello.cgi13
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/hello.php6
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/index.js1
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/index.txt1
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/index.txt.br2
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/index.txt.gzbin26 -> 0 bytes
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/issues/951.php11
-rwxr-xr-xweb/server/h2o/libh2o/t/assets/doc_root/printenv.cgi9
-rw-r--r--web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt1
-rw-r--r--web/server/h2o/libh2o/t/assets/session_tickets.yaml12
-rw-r--r--web/server/h2o/libh2o/t/assets/upstream.psgi225
146 files changed, 0 insertions, 112968 deletions
diff --git a/web/server/h2o/libh2o/t/00unit.evloop.t b/web/server/h2o/libh2o/t/00unit.evloop.t
deleted file mode 100644
index e87189e1e..000000000
--- a/web/server/h2o/libh2o/t/00unit.evloop.t
+++ /dev/null
@@ -1,6 +0,0 @@
-use strict;
-use warnings;
-
-use t::Util;
-
-exec_unittest('evloop');
diff --git a/web/server/h2o/libh2o/t/00unit.libuv.t b/web/server/h2o/libh2o/t/00unit.libuv.t
deleted file mode 100644
index ffedabe8c..000000000
--- a/web/server/h2o/libh2o/t/00unit.libuv.t
+++ /dev/null
@@ -1,6 +0,0 @@
-use strict;
-use warnings;
-
-use t::Util;
-
-exec_unittest('libuv');
diff --git a/web/server/h2o/libh2o/t/00unit.mruby.t b/web/server/h2o/libh2o/t/00unit.mruby.t
deleted file mode 100644
index b56454384..000000000
--- a/web/server/h2o/libh2o/t/00unit.mruby.t
+++ /dev/null
@@ -1,6 +0,0 @@
-use strict;
-use warnings;
-
-use t::Util;
-
-exec_mruby_unittest;
diff --git a/web/server/h2o/libh2o/t/00unit.mruby/acl.rb b/web/server/h2o/libh2o/t/00unit.mruby/acl.rb
deleted file mode 100644
index 771047dad..000000000
--- a/web/server/h2o/libh2o/t/00unit.mruby/acl.rb
+++ /dev/null
@@ -1,179 +0,0 @@
-$LOAD_PATH << 'share/h2o/mruby'
-require 'misc/mruby-mtest/mrblib/mtest_unit.rb'
-require 'acl.rb'
-
-class ACLTest < MTest::Unit::TestCase
- include H2O::ACL
- def setup
- H2O::ConfigurationContext.reset
- end
-
- def test_use
- act = acl {
- use proc {|env| [200, {}, ["hello test_use"]]}
- }.call({})
- assert_equal([200, {}, ["hello test_use"]], act)
- end
-
- def test_respond
- act = acl {
- respond(409, {"custom" => "header"}, ["Conflict"])
- }.call({})
- assert_equal([409, {"custom" => "header"}, ["Conflict"]], act)
- end
-
- def test_deny
- act = acl {
- deny
- }.call({})
- assert_equal([403, {}, ["Forbidden"]], act)
- end
-
- def test_allow
- act = acl {
- allow
- }.call({})
- assert_equal([399, {}, []], act)
- end
-
- def test_redirect
- act = acl {
- redirect("https://h2o.examp1e.net/", 301)
- }.call({})
- assert_equal([301, {"Location" => "https://h2o.examp1e.net/"}, []], act)
- end
-
- ##### tests for condition block
-
- def test_conditional_true
- act = acl {
- respond(200) { true }
- }.call({})
- assert_equal([200, {}, []], act)
- end
-
- def test_conditional_false
- act = acl {
- respond(200) { false }
- }.call({})
- assert_equal([399, {}, []], act)
- end
-
- ##### tests for acl block
-
- def test_empty
- act = acl {
- }.call({})[0]
- assert_equal(399, act)
- end
-
- def test_multiple1
- act = acl {
- respond(201) { true }
- respond(202) { true }
- }.call({})[0]
- assert_equal(201, act)
- end
-
- def test_multiple2
- act = acl {
- respond(201) { false }
- respond(202) { true }
- }.call({})[0]
- assert_equal(202, act)
- end
-
- def test_multiple3
- act = acl {
- respond(201) { false }
- respond(202) { false }
- }.call({})[0]
- assert_equal(399, act)
- end
-
- def test_acl_restriction1
- acl { respond(200) }
- assert_raise(RuntimeError, "must raise exception if acl method is called more than once") {
- acl { respond(200) }
- }
- end
-
- ##### tests for matcher
-
- def test_addr
- handler = acl {
- respond(200) { addr.match(/^192\.168\./) }
- respond(403) { addr.match(/^200\./) }
- respond(503) { addr.match(/^201\./) }
- }
- assert_equal(200, handler.call({ "REMOTE_ADDR" => "192.168.0.1"})[0])
- assert_equal(403, handler.call({ "REMOTE_ADDR" => "200.0.0.1"})[0])
- assert_equal(503, handler.call({ "REMOTE_ADDR" => "201.0.0.1"})[0])
- assert_equal(399, handler.call({ "REMOTE_ADDR" => "127.0.0.1"})[0])
- assert_equal(200, handler.call({ "HTTP_X_FORWARDED_FOR" => "192.168.0.1"})[0])
- end
-
- def test_addr_not_forwarded
- handler = acl {
- respond(200) { addr(false).match(/^192\.168\./) }
- respond(403)
- }
- assert_equal(200, handler.call({ "REMOTE_ADDR" => "192.168.0.1"})[0])
- assert_equal(403, handler.call({ "HTTP_X_FORWARDED_FOR" => "192.168.0.1"})[0])
- end
-
- def test_path
- handler = acl {
- respond(200) { path == "/foo" }
- respond(404)
- }
- assert_equal(200, handler.call({ "PATH_INFO" => "/foo"})[0])
- assert_equal(404, handler.call({ "PATH_INFO" => "/bar"})[0])
- end
-
- def test_method
- handler = acl {
- allow { method.match(/^(GET|HEAD)$/) }
- respond(405)
- }
- assert_equal(399, handler.call({ "REQUEST_METHOD" => "GET"})[0])
- assert_equal(405, handler.call({ "REQUEST_METHOD" => "POST"})[0])
- end
-
- def test_method
- handler = acl {
- allow { method.match(/^(GET|HEAD)$/) }
- respond(405)
- }
- assert_equal(399, handler.call({ "REQUEST_METHOD" => "GET"})[0])
- assert_equal(405, handler.call({ "REQUEST_METHOD" => "POST"})[0])
- end
-
- def test_header
- handler = acl {
- respond(400, {}, ["authorization header missing"]) { header("Authorization").empty? }
- }
- assert_equal(400, handler.call({})[0])
- assert_equal(399, handler.call({ "HTTP_AUTHORIZATION" => "Bearer xyz"})[0])
- end
-
- def test_user_agent
- handler = acl {
- respond(200, {}, ["hello googlebot!"]) { user_agent.match(/Googlebot/i) }
- }
- assert_equal(200, handler.call({ "HTTP_USER_AGENT" => "i'm Googlebot"})[0])
- assert_equal(399, handler.call({})[0])
- end
-
- def test_multiple_matchers
- handler = acl {
- respond(403, {}, []) { ! addr.start_with?("192.168.") && user_agent.match(/curl/i) }
- }
- assert_equal(399, handler.call({ "REMOTE_ADDR" => "192.168.100.100", "HTTP_USER_AGENT" => "i'm firefox"})[0])
- assert_equal(399, handler.call({ "REMOTE_ADDR" => "192.168.100.100", "HTTP_USER_AGENT" => "i'm curl"})[0])
- assert_equal(399, handler.call({ "REMOTE_ADDR" => "222.222.222.222", "HTTP_USER_AGENT" => "i'm firefox"})[0])
- assert_equal(403, handler.call({ "REMOTE_ADDR" => "222.222.222.222", "HTTP_USER_AGENT" => "i'm curl"})[0])
- end
-end
-
-MTest::Unit.new.run
diff --git a/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb b/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb
deleted file mode 100644
index 9b6936d3b..000000000
--- a/web/server/h2o/libh2o/t/00unit.mruby/trie_addr.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-$LOAD_PATH << 'share/h2o/mruby'
-require 'misc/mruby-mtest/mrblib/mtest_unit.rb'
-require 'trie_addr.rb'
-
-class TrieAddrTest < MTest::Unit::TestCase
- def test_basic
- addr = TrieAddr.new
- addr.add("10.0.0.0/12")
- addr.add("10.255.0.0/12")
-
- assert_true(addr.match?("10.10.0.0"))
- assert_false(addr.match?("10.128.0.0"))
- assert_true(addr.match?("10.250.0.0"))
-
- addr.add("10.255.0.0/8")
- assert_true(addr.match?("10.128.0.0"))
-
- end
-
- def test_missing_prefix_length
- addr = TrieAddr.new
- addr.add("12.34.56.78")
-
- assert_false(addr.match?("12.34.56.77"))
- assert_true(addr.match?("12.34.56.78"))
- assert_false(addr.match?("12.34.56.79"))
- end
-
- def test_ipv6_addr
- addr = TrieAddr.new
- assert_raise(ArgumentError, "ipv6 is currently not supported") { addr.add("::1") }
- assert_false(addr.match?("::1"), "always returns false")
- end
-
- def test_invalid_addr
- addr = TrieAddr.new
- addr.add("0.0.0.0/8")
- assert_false(addr.match?("hogehoge"))
- end
-
- # taken from https://github.com/hirose31/p5-net-ip-match?-trie/blob/master/t/10_match?_ip_PP.t
- def test_nimt_cases
- addr = TrieAddr.new
- addr.add(["10.0.0.0/24", "10.0.1.0/24", "11.0.0.0/16", "10.1.0.0/28", "10.0.0.0/8", "10.2.0.0/24"])
-
- cases = [
- { :name => "match 1", :input => "10.0.0.100", :expected => true },
- { :name => "match 2", :input => "10.1.0.8", :expected => true },
- { :name => "match 3", :input => "10.2.0.1", :expected => true },
- { :name => "not match", :input => "192.168.1.2", :expected => false },
- { :name => "match min", :input => "10.0.0.0", :expected => true },
- { :name => "match max", :input => "10.0.0.255", :expected => true },
- { :name => "invalid IP", :input => "11.0.999.1", :expected => false },
- { :name => "0.0.0.0", :input => "0.0.0.0", :expected => false },
- { :name => "255.255.255.255", :input => "255.255.255.255", :expected => false },
- { :name => "big", :input => "10.255.255.255", :expected => true },
- ]
- cases.each {|c|
- assert_equal(c[:expected], addr.match?(c[:input]), c[:name])
- }
- end
-end
-
-MTest::Unit.new.run
diff --git a/web/server/h2o/libh2o/t/00unit/assets/1000.txt b/web/server/h2o/libh2o/t/00unit/assets/1000.txt
deleted file mode 100644
index 79fb52d24..000000000
--- a/web/server/h2o/libh2o/t/00unit/assets/1000.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
diff --git a/web/server/h2o/libh2o/t/00unit/assets/1000000.txt b/web/server/h2o/libh2o/t/00unit/assets/1000000.txt
deleted file mode 100644
index 224235de4..000000000
--- a/web/server/h2o/libh2o/t/00unit/assets/1000000.txt
+++ /dev/null
@@ -1,100000 +0,0 @@
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
-123456789
diff --git a/web/server/h2o/libh2o/t/00unit/assets/index.html b/web/server/h2o/libh2o/t/00unit/assets/index.html
deleted file mode 100644
index 1178c0ef2..000000000
--- a/web/server/h2o/libh2o/t/00unit/assets/index.html
+++ /dev/null
@@ -1 +0,0 @@
-hello html
diff --git a/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt b/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt
deleted file mode 100644
index 77ff4944b..000000000
--- a/web/server/h2o/libh2o/t/00unit/assets/index_txt/index.txt
+++ /dev/null
@@ -1 +0,0 @@
-hello text
diff --git a/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep b/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
--- a/web/server/h2o/libh2o/t/00unit/assets/index_txt_as_dir/index.txt/.gitkeep
+++ /dev/null
diff --git a/web/server/h2o/libh2o/t/00unit/assets/read_command.pl b/web/server/h2o/libh2o/t/00unit/assets/read_command.pl
deleted file mode 100755
index b24f1bc87..000000000
--- a/web/server/h2o/libh2o/t/00unit/assets/read_command.pl
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/sh
-exec perl -x $0 "$@"
-#! perl
-
-use strict;
-use warnings;
-
-die "expected one arg"
- unless @ARGV == 1;
-
-print $ARGV[0];
-exit($ENV{READ_COMMAND_EXIT_STATUS} || 0);
diff --git a/web/server/h2o/libh2o/t/00unit/issues/293.c b/web/server/h2o/libh2o/t/00unit/issues/293.c
deleted file mode 100644
index bce57589b..000000000
--- a/web/server/h2o/libh2o/t/00unit/issues/293.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <inttypes.h>
-#include <stdio.h>
-#include "../test.h"
-
-static h2o_context_t ctx;
-
-static void register_authority(h2o_globalconf_t *globalconf, h2o_iovec_t host, uint16_t port)
-{
- static h2o_iovec_t x_authority = {H2O_STRLIT("x-authority")};
-
- h2o_hostconf_t *hostconf = h2o_config_register_host(globalconf, host, port);
- h2o_pathconf_t *pathconf = h2o_config_register_path(hostconf, "/", 0);
- h2o_file_register(pathconf, "t/00unit/assets", NULL, NULL, 0);
-
- char *authority = h2o_mem_alloc(host.len + sizeof(":" H2O_UINT16_LONGEST_STR));
- sprintf(authority, "%.*s:%" PRIu16, (int)host.len, host.base, port);
- h2o_headers_command_t *cmds = h2o_mem_alloc(sizeof(*cmds) * 2);
- cmds[0] = (h2o_headers_command_t){H2O_HEADERS_CMD_ADD, &x_authority, {authority, strlen(authority)}};
- cmds[1] = (h2o_headers_command_t){H2O_HEADERS_CMD_NULL};
- h2o_headers_register(pathconf, cmds);
-}
-
-static void check(const h2o_url_scheme_t *scheme, const char *host, const char *expected)
-{
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
-
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.scheme = scheme;
- conn->req.input.authority = h2o_iovec_init(host, strlen(host));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
-
- size_t index = h2o_find_header_by_str(&conn->req.res.headers, H2O_STRLIT("x-authority"), SIZE_MAX);
- ok(index != SIZE_MAX);
-
- if (index != SIZE_MAX) {
- ok(h2o_memis(conn->req.res.headers.entries[index].value.base, conn->req.res.headers.entries[index].value.len, expected,
- strlen(expected)));
- }
-
- h2o_loopback_destroy(conn);
-}
-
-void test_issues293()
-{
- h2o_globalconf_t globalconf;
-
- h2o_config_init(&globalconf);
-
- /* register two hosts, using 80 and 443 */
- register_authority(&globalconf, h2o_iovec_init(H2O_STRLIT("default")), 65535);
- register_authority(&globalconf, h2o_iovec_init(H2O_STRLIT("host1")), 80);
- register_authority(&globalconf, h2o_iovec_init(H2O_STRLIT("host1")), 443);
- register_authority(&globalconf, h2o_iovec_init(H2O_STRLIT("host2")), 80);
- register_authority(&globalconf, h2o_iovec_init(H2O_STRLIT("host2")), 443);
- register_authority(&globalconf, h2o_iovec_init(H2O_STRLIT("host3")), 65535);
-
- h2o_context_init(&ctx, test_loop, &globalconf);
-
- /* run the tests */
- check(&H2O_URL_SCHEME_HTTP, "host1", "host1:80");
- check(&H2O_URL_SCHEME_HTTPS, "host1", "host1:443");
- check(&H2O_URL_SCHEME_HTTP, "host2", "host2:80");
- check(&H2O_URL_SCHEME_HTTPS, "host2", "host2:443");
-
- /* supplied port number in the Host header must be preferred */
- check(&H2O_URL_SCHEME_HTTP, "host1:80", "host1:80");
- check(&H2O_URL_SCHEME_HTTP, "host1:443", "host1:443");
- check(&H2O_URL_SCHEME_HTTPS, "host1:80", "host1:80");
- check(&H2O_URL_SCHEME_HTTPS, "host1:443", "host1:443");
- check(&H2O_URL_SCHEME_HTTP, "host2:80", "host2:80");
- check(&H2O_URL_SCHEME_HTTP, "host2:443", "host2:443");
- check(&H2O_URL_SCHEME_HTTPS, "host2:80", "host2:80");
- check(&H2O_URL_SCHEME_HTTPS, "host2:443", "host2:443");
-
- /* host-level conf without default port */
- check(&H2O_URL_SCHEME_HTTP, "host3", "host3:65535");
- check(&H2O_URL_SCHEME_HTTPS, "host3", "host3:65535");
- check(&H2O_URL_SCHEME_HTTP, "host3", "host3:65535");
- check(&H2O_URL_SCHEME_HTTPS, "host3", "host3:65535");
- check(&H2O_URL_SCHEME_HTTP, "host3:80", "host3:65535");
- check(&H2O_URL_SCHEME_HTTPS, "host3:80", "default:65535");
- check(&H2O_URL_SCHEME_HTTP, "host3:443", "default:65535");
- check(&H2O_URL_SCHEME_HTTPS, "host3:443", "host3:65535");
-
- /* upper-case */
- check(&H2O_URL_SCHEME_HTTP, "HoST1", "host1:80");
- check(&H2O_URL_SCHEME_HTTP, "HoST1:80", "host1:80");
- check(&H2O_URL_SCHEME_HTTPS, "HoST1", "host1:443");
- check(&H2O_URL_SCHEME_HTTPS, "HoST1:443", "host1:443");
-
- h2o_context_dispose(&ctx);
- h2o_config_dispose(&globalconf);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c b/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c
deleted file mode 100644
index c007c0831..000000000
--- a/web/server/h2o/libh2o/t/00unit/issues/percent-encode-zero-byte.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2016 DeNA Co., Fastly, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#include <inttypes.h>
-#include <stdio.h>
-#include "../test.h"
-
-void test_percent_encode_zero_byte(void)
-{
- h2o_pathconf_t pathconf = {NULL, {H2O_STRLIT("/abc")}};
- h2o_req_t req;
- h2o_iovec_t dest;
-
- h2o_init_request(&req, NULL, NULL);
-
- /* basic pattern */
- req.path_normalized = h2o_iovec_init(H2O_STRLIT("/abc/mno\0xyz"));
- req.query_at = req.path_normalized.len;
- req.path = h2o_concat(&req.pool, req.path_normalized, h2o_iovec_init(H2O_STRLIT("?q")));
- req.pathconf = &pathconf;
- dest = h2o_build_destination(&req, H2O_STRLIT("/def"), 1);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/mno%00xyz?q")));
- dest = h2o_build_destination(&req, H2O_STRLIT("/def/"), 1);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/mno%00xyz?q")));
-
- h2o_mem_clear_pool(&req.pool);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/cache.c b/web/server/h2o/libh2o/t/00unit/lib/common/cache.c
deleted file mode 100644
index ea18cbc45..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/cache.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2014-2016 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/common/cache.c"
-
-static size_t bytes_destroyed;
-
-static void on_destroy(h2o_iovec_t vec)
-{
- bytes_destroyed += vec.len;
-}
-
-void test_lib__common__cache_c(void)
-{
- h2o_cache_t *cache = h2o_cache_create(H2O_CACHE_FLAG_EARLY_UPDATE, 1024, 1000, on_destroy);
- uint64_t now = 0;
- h2o_iovec_t key = {H2O_STRLIT("key")};
- h2o_cache_ref_t *ref;
-
- /* fetch "key" */
- ref = h2o_cache_fetch(cache, now, key, 0);
- ok(ref == NULL);
-
- /* set "key" => "value" */
- h2o_cache_set(cache, now, key, 0, h2o_iovec_init(H2O_STRLIT("value")));
-
- /* delete "key" */
- h2o_cache_delete(cache, now, key, 0);
- ref = h2o_cache_fetch(cache, now, key, 0);
- ok(ref == NULL);
-
- /* set "key" => "value" */
- h2o_cache_set(cache, now, key, 0, h2o_iovec_init(H2O_STRLIT("value")));
-
- /* fetch "key" */
- ref = h2o_cache_fetch(cache, now, key, 0);
- ok(h2o_memis(ref->value.base, ref->value.len, H2O_STRLIT("value")));
- h2o_cache_release(cache, ref);
-
- /* proceed 999ms */
- now += 999;
-
- /* should fail to fetch "key" */
- ref = h2o_cache_fetch(cache, now, key, 0);
- ok(ref == NULL);
-
- /* refetch should succeed */
- ref = h2o_cache_fetch(cache, now, key, 0);
- ok(h2o_memis(ref->value.base, ref->value.len, H2O_STRLIT("value")));
- h2o_cache_release(cache, ref);
-
- /* set "key" to "value2" */
- h2o_cache_set(cache, now, key, 0, h2o_iovec_init(H2O_STRLIT("value2")));
-
- /* fetch */
- ref = h2o_cache_fetch(cache, now, key, 0);
- ok(h2o_memis(ref->value.base, ref->value.len, H2O_STRLIT("value2")));
- h2o_cache_release(cache, ref);
-
- ok(bytes_destroyed == 10);
-
- h2o_cache_destroy(cache);
-
- ok(bytes_destroyed == 16);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c b/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c
deleted file mode 100644
index 9d8e5fe7c..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/hostinfo.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <arpa/inet.h>
-#include "../../test.h"
-#include "../../../../lib/common/hostinfo.c"
-
-static void test_aton(void)
-{
- struct in_addr addr;
-
- memset(&addr, 0x55, sizeof(addr));
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("127.0.0.1")}, &addr) == 0);
- ok(ntohl(addr.s_addr) == 0x7f000001);
-
- memset(&addr, 0x55, sizeof(addr));
- ok(h2o_hostinfo_aton((h2o_iovec_t){"127.0.0.12", sizeof("127.0.0.1") - 1}, &addr) == 0);
- ok(ntohl(addr.s_addr) == 0x7f000001);
-
- memset(&addr, 0x55, sizeof(addr));
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("255.001.002.128")}, &addr) == 0);
- ok(ntohl(addr.s_addr) == 0xff010280);
-
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("127.0.0.z")}, &addr) != 0);
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("256.0.0.0")}, &addr) != 0);
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("0001.0.0.0")}, &addr) != 0);
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("0.0..1")}, &addr) != 0);
- ok(h2o_hostinfo_aton((h2o_iovec_t){H2O_STRLIT("1.0.0.0.")}, &addr) != 0);
-}
-
-void test_lib__common__hostinfo_c(void)
-{
- /* TODO add tests for h2o_hostinfo_getaddr and related */
- subtest("aton", test_aton);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c b/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c
deleted file mode 100644
index 683e489a5..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/multithread.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include "../../test.h"
-#include "../../../../lib/common/multithread.c"
-
-struct st_thread_t {
- h2o_loop_t *loop;
- h2o_multithread_queue_t *queue;
-};
-
-struct {
- h2o_loop_t *loop;
- h2o_multithread_queue_t *queue;
- h2o_multithread_receiver_t pong_receiver;
- h2o_multithread_receiver_t shutdown_receiver;
- int received_shutdown;
-} main_thread;
-
-struct {
- h2o_loop_t *loop;
- h2o_multithread_queue_t *queue;
- h2o_multithread_receiver_t ping_receiver;
- size_t num_ping_received;
- int should_exit;
-} worker_thread;
-
-static void send_empty_message(h2o_multithread_receiver_t *receiver)
-{
- h2o_multithread_message_t *message = h2o_mem_alloc(sizeof(*message));
- *message = (h2o_multithread_message_t){{NULL}};
- h2o_multithread_send_message(receiver, message);
-}
-
-static void pop_empty_message(h2o_linklist_t *list)
-{
- h2o_multithread_message_t *message = H2O_STRUCT_FROM_MEMBER(h2o_multithread_message_t, link, list->next);
- h2o_linklist_unlink(&message->link);
- free(message);
-}
-
-static void on_ping(h2o_multithread_receiver_t *receiver, h2o_linklist_t *list)
-{
- while (!h2o_linklist_is_empty(list)) {
- pop_empty_message(list);
- if (++worker_thread.num_ping_received < 100) {
- send_empty_message(&main_thread.pong_receiver);
- } else {
- send_empty_message(&main_thread.shutdown_receiver);
- worker_thread.should_exit = 1;
- }
- }
-}
-
-static void on_pong(h2o_multithread_receiver_t *receiver, h2o_linklist_t *list)
-{
- while (!h2o_linklist_is_empty(list)) {
- pop_empty_message(list);
- send_empty_message(&worker_thread.ping_receiver);
- }
-}
-
-static void on_shutdown(h2o_multithread_receiver_t *receiver, h2o_linklist_t *list)
-{
- while (!h2o_linklist_is_empty(list))
- pop_empty_message(list);
- main_thread.received_shutdown = 1;
-}
-
-#if H2O_USE_LIBUV
-static h2o_loop_t *create_loop(void)
-{
- h2o_loop_t *loop = h2o_mem_alloc(sizeof(*loop));
- uv_loop_init(loop);
- return loop;
-}
-
-static void destroy_loop(h2o_loop_t *loop)
-{
- uv_run(loop, UV_RUN_NOWAIT);
- uv_loop_close(loop);
- free(loop);
-}
-#else
-#define create_loop h2o_evloop_create
-#define destroy_loop(loop) (0) /* FIXME */
-#endif
-
-static void *worker_main(void *_unused)
-{
- while (!worker_thread.should_exit) {
-#if H2O_USE_LIBUV
- uv_run(worker_thread.loop, UV_RUN_ONCE);
-#else
- h2o_evloop_run(worker_thread.loop, INT32_MAX);
-#endif
- }
-
- return NULL;
-}
-
-void test_lib__common__multithread_c(void)
-{
- pthread_t tid;
-
- main_thread.loop = create_loop();
- main_thread.queue = h2o_multithread_create_queue(main_thread.loop);
- h2o_multithread_register_receiver(main_thread.queue, &main_thread.pong_receiver, on_pong);
- h2o_multithread_register_receiver(main_thread.queue, &main_thread.shutdown_receiver, on_shutdown);
- worker_thread.loop = create_loop();
- worker_thread.queue = h2o_multithread_create_queue(worker_thread.loop);
- h2o_multithread_register_receiver(worker_thread.queue, &worker_thread.ping_receiver, on_ping);
-
- pthread_create(&tid, NULL, worker_main, NULL);
-
- /* send first message */
- send_empty_message(&worker_thread.ping_receiver);
-
- while (!main_thread.received_shutdown) {
-#if H2O_USE_LIBUV
- uv_run(main_thread.loop, UV_RUN_ONCE);
-#else
- h2o_evloop_run(main_thread.loop, INT32_MAX);
-#endif
- }
-
- pthread_join(tid, NULL);
-
- h2o_multithread_unregister_receiver(worker_thread.queue, &worker_thread.ping_receiver);
- h2o_multithread_destroy_queue(worker_thread.queue);
- destroy_loop(worker_thread.loop);
- h2o_multithread_unregister_receiver(main_thread.queue, &main_thread.pong_receiver);
- h2o_multithread_unregister_receiver(main_thread.queue, &main_thread.shutdown_receiver);
- h2o_multithread_destroy_queue(main_thread.queue);
- destroy_loop(main_thread.loop);
-
- ok(1);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c b/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c
deleted file mode 100644
index dfbb27156..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/serverutil.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include "../../test.h"
-#include "../../../../lib/common/serverutil.c"
-
-static void test_server_starter(void)
-{
- int *fds;
- size_t num_fds;
-
- unsetenv("SERVER_STARTER_PORT");
- num_fds = h2o_server_starter_get_fds(&fds);
- ok(num_fds == 0);
-
- setenv("SERVER_STARTER_PORT", "0.0.0.0:80=3", 1);
- num_fds = h2o_server_starter_get_fds(&fds);
- ok(num_fds == 1);
- ok(fds[0] == 3);
-
- setenv("SERVER_STARTER_PORT", "0.0.0.0:80=3;/tmp/foo.sock=4", 1);
- num_fds = h2o_server_starter_get_fds(&fds);
- ok(num_fds == 2);
- ok(fds[0] == 3);
- ok(fds[1] == 4);
-
- setenv("SERVER_STARTER_PORT", "0.0.0.0:80=foo", 1);
- num_fds = h2o_server_starter_get_fds(&fds);
- ok(num_fds == SIZE_MAX);
-
- /* without bind address */
- setenv("SERVER_STARTER_PORT", "50908=4", 1);
- num_fds = h2o_server_starter_get_fds(&fds);
- ok(num_fds == 1);
- ok(fds[0] == 4);
-}
-
-static void test_read_command(void)
-{
- char *argv[] = {"t/00unit/assets/read_command.pl", "hello", NULL};
- h2o_buffer_t *resp;
- int ret, status;
-
- /* success */
- ret = h2o_read_command(argv[0], argv, &resp, &status);
- ok(ret == 0);
- if (ret == 0) {
- ok(WIFEXITED(status));
- ok(WEXITSTATUS(status) == 0);
- ok(h2o_memis(resp->bytes, resp->size, H2O_STRLIT("hello")));
- h2o_buffer_dispose(&resp);
- }
-
- /* exit status */
- setenv("READ_COMMAND_EXIT_STATUS", "75", 1);
- ret = h2o_read_command(argv[0], argv, &resp, &status);
- ok(ret == 0);
- if (ret == 0) {
- ok(WIFEXITED(status));
- ok(WEXITSTATUS(status) == 75);
- ok(h2o_memis(resp->bytes, resp->size, H2O_STRLIT("hello")));
- h2o_buffer_dispose(&resp);
- }
- unsetenv("READ_COMMAND_EXIT_STATUS");
-
- /* command not an executable */
- argv[0] = "t/00unit/assets";
- ret = h2o_read_command(argv[0], argv, &resp, &status);
- ok(ret != 0 || (ret == 0 && WIFEXITED(status) && WEXITSTATUS(status) == 127));
-}
-
-void test_lib__common__serverutil_c(void)
-{
- subtest("server-starter", test_server_starter);
- subtest("read-command", test_read_command);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/socket.c b/web/server/h2o/libh2o/t/00unit/lib/common/socket.c
deleted file mode 100644
index 89aae515c..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/socket.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include "../../test.h"
-#include "../../../../lib/common/socket.c"
-
-static void test_on_alpn_select(void)
-{
- static const h2o_iovec_t protocols[] = {{H2O_STRLIT("h2")}, {H2O_STRLIT("h2-16")}, {H2O_STRLIT("h2-14")}, {NULL}};
- const unsigned char *out;
- unsigned char outlen;
- int ret;
-
- ret = on_alpn_select(NULL, &out, &outlen, (const unsigned char *)H2O_STRLIT("\3foo"), (void *)protocols);
- ok(ret == SSL_TLSEXT_ERR_NOACK);
-
- ret = on_alpn_select(NULL, &out, &outlen, (const unsigned char *)H2O_STRLIT("\2h2"), (void *)protocols);
- ok(ret == SSL_TLSEXT_ERR_OK);
- ok(h2o_memis(out, outlen, H2O_STRLIT("h2")));
-
- ret = on_alpn_select(NULL, &out, &outlen, (const unsigned char *)H2O_STRLIT("\5h2-14\5h2-16\2h2"), (void *)protocols);
- ok(ret == SSL_TLSEXT_ERR_OK);
- ok(h2o_memis(out, outlen, H2O_STRLIT("h2")));
-
- ret = on_alpn_select(NULL, &out, &outlen, (const unsigned char *)H2O_STRLIT("\5h2-14\5h2-16"), (void *)protocols);
- ok(ret == SSL_TLSEXT_ERR_OK);
- ok(h2o_memis(out, outlen, H2O_STRLIT("h2-16")));
-}
-
-static void test_sliding_counter(void)
-{
- h2o_sliding_counter_t counter = {0};
- size_t i;
-
- h2o_sliding_counter_start(&counter, 100);
- h2o_sliding_counter_stop(&counter, 80 + 100);
- ok(counter.average == 10);
-
- for (i = 0; i != 7; ++i) {
- h2o_sliding_counter_start(&counter, 1);
- h2o_sliding_counter_stop(&counter, 81);
- }
- ok(counter.average == 80);
-
- h2o_sliding_counter_start(&counter, 1000);
- h2o_sliding_counter_stop(&counter, 1000 + 1000 * 8 - 80 * 7);
- ok(counter.average == 1000);
-
- for (i = 0; i != 8; ++i) {
- h2o_sliding_counter_start(&counter, 1);
- h2o_sliding_counter_stop(&counter, 11);
- }
- ok(counter.average == 10);
-}
-
-static struct {
- struct {
- int ret;
- } fetch_tcp_info;
- struct {
- int ret;
- unsigned cur;
- size_t call_cnt;
- } minimize_notsent_lowat;
- struct {
- unsigned long ret;
- } get_cipher;
-} cb_ret_vars;
-
-static int test_adjust_notsent_lowat(h2o_socket_t *sock, unsigned notsent_lowat)
-{
- cb_ret_vars.minimize_notsent_lowat.cur = notsent_lowat;
- ++cb_ret_vars.minimize_notsent_lowat.call_cnt;
- return cb_ret_vars.minimize_notsent_lowat.ret;
-}
-
-static void test_prepare_for_latency_optimization(void)
-{
- struct st_h2o_socket_ssl_t sock_ssl = {NULL, NULL, NULL, 5 + 8 + 16 /* GCM overhead */};
- h2o_socket_t sock = {NULL, &sock_ssl};
- h2o_socket_latency_optimization_conditions_t cond = {UINT_MAX, 10, 65535};
-
- /* option disabled, or if rtt is too small */
- memset(&sock._latency_optimization, 0, sizeof(sock._latency_optimization));
- memset(&cb_ret_vars, 0, sizeof(cb_ret_vars));
- cb_ret_vars.fetch_tcp_info.ret = 0;
- cb_ret_vars.get_cipher.ret = TLS1_CK_RSA_WITH_AES_128_GCM_SHA256;
- prepare_for_latency_optimized_write(&sock, &cond, 50000 /* rtt */, 1400 /* mss */, 10 /* cwnd_size */, 6 /* cwnd_avail */, 4,
- test_adjust_notsent_lowat);
- ok(sock._latency_optimization.state == H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_DISABLED);
- ok(sock._latency_optimization.suggested_tls_payload_size == 16384);
- ok(sock._latency_optimization.suggested_write_size == SIZE_MAX);
- ok(cb_ret_vars.minimize_notsent_lowat.call_cnt == 0);
-
- /* trigger optimiziation */
- memset(&sock._latency_optimization, 0, sizeof(sock._latency_optimization));
- cond.min_rtt = 25; /* 25 ms */
- prepare_for_latency_optimized_write(&sock, &cond, 50000 /* rtt */, 1400 /* mss */, 10 /* cwnd_size */, 6 /* cwnd_avail */, 4,
- test_adjust_notsent_lowat);
- ok(sock._latency_optimization.state == H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_DETERMINED);
- ok(sock._latency_optimization.suggested_tls_payload_size == 1400 - (5 + 8 + 16));
- ok(sock._latency_optimization.suggested_write_size == (1400 - (5 + 8 + 16)) * (10 - 5 + 1));
- ok(cb_ret_vars.minimize_notsent_lowat.call_cnt == 1);
- ok(cb_ret_vars.minimize_notsent_lowat.cur == 1);
-
- /* recalculate with an updated cwnd,unacked */
- sock._latency_optimization.state = H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_NEEDS_UPDATE;
- prepare_for_latency_optimized_write(&sock, &cond, 50000 /* rtt */, 1400 /* mss */, 14 /* cwnd_size */, 12 /* cwnd_avail */, 4,
- test_adjust_notsent_lowat);
- ok(sock._latency_optimization.state == H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_DETERMINED);
- ok(sock._latency_optimization.suggested_tls_payload_size == 1400 - (5 + 8 + 16));
- ok(sock._latency_optimization.suggested_write_size == (1400 - (5 + 8 + 16)) * (14 - 3 + 1));
- ok(cb_ret_vars.minimize_notsent_lowat.call_cnt == 1);
- ok(cb_ret_vars.minimize_notsent_lowat.cur == 1);
-
- /* switches to B/W optimization when CWND becomes greater */
- sock._latency_optimization.state = H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_NEEDS_UPDATE;
- prepare_for_latency_optimized_write(&sock, &cond, 50000 /* rtt */, 1400 /* mss */, (65535 / 1400) + 1 /* cwnd_size */,
- (65535 / 1400) + 1 /* cwnd_avail */, 4, test_adjust_notsent_lowat);
- ok(sock._latency_optimization.state == H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_DETERMINED);
- ok(sock._latency_optimization.suggested_tls_payload_size == 16384);
- ok(sock._latency_optimization.suggested_write_size == SIZE_MAX);
- ok(cb_ret_vars.minimize_notsent_lowat.call_cnt == 2);
- ok(cb_ret_vars.minimize_notsent_lowat.cur == 0);
-
- /* switches back to latency optimization when CWND becomes small */
- sock._latency_optimization.state = H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_NEEDS_UPDATE;
- prepare_for_latency_optimized_write(&sock, &cond, 50000 /* rtt */, 1400 /* mss */, 8 /* cwnd_size */, 6 /* cwnd_avail */, 4,
- test_adjust_notsent_lowat);
- ok(sock._latency_optimization.state == H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_DETERMINED);
- ok(sock._latency_optimization.suggested_tls_payload_size == 1400 - (5 + 8 + 16));
- ok(sock._latency_optimization.suggested_write_size == (1400 - (5 + 8 + 16)) * (8 - 3 + 1));
- ok(cb_ret_vars.minimize_notsent_lowat.call_cnt == 3);
- ok(cb_ret_vars.minimize_notsent_lowat.cur == 1);
-
- /* switches back to B/W optimization when loop time becomes greater than threshold */
- sock._latency_optimization.state = H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_NEEDS_UPDATE;
- prepare_for_latency_optimized_write(&sock, &cond, 50000 /* rtt */, 1400 /* mss */, 8 /* cwnd_size */, 6 /* cwnd_avail */, 6,
- test_adjust_notsent_lowat);
- ok(sock._latency_optimization.state == H2O_SOCKET_LATENCY_OPTIMIZATION_STATE_DISABLED);
- ok(sock._latency_optimization.suggested_tls_payload_size == 16384);
- ok(sock._latency_optimization.suggested_write_size == SIZE_MAX);
- ok(cb_ret_vars.minimize_notsent_lowat.call_cnt == 4);
- ok(cb_ret_vars.minimize_notsent_lowat.cur == 0);
-}
-
-void test_lib__common__socket_c(void)
-{
- subtest("on_alpn_select", test_on_alpn_select);
- subtest("sliding_counter", test_sliding_counter);
- subtest("prepare_for_latency_optimization", test_prepare_for_latency_optimization);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/string.c b/web/server/h2o/libh2o/t/00unit/lib/common/string.c
deleted file mode 100644
index 464506e3c..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/string.c
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/common/string.c"
-
-static void test_strstr(void)
-{
- ok(h2o_strstr("abcd", 4, "bc", 2) == 1);
- ok(h2o_strstr("abcd", 3, "bc", 2) == 1);
- ok(h2o_strstr("abcd", 2, "bc", 2) == -1);
-}
-
-static void test_stripws(void)
-{
- h2o_iovec_t t;
-
- t = h2o_str_stripws(H2O_STRLIT(""));
- ok(h2o_memis(t.base, t.len, H2O_STRLIT("")));
- t = h2o_str_stripws(H2O_STRLIT("hello world"));
- ok(h2o_memis(t.base, t.len, H2O_STRLIT("hello world")));
- t = h2o_str_stripws(H2O_STRLIT(" hello world"));
- ok(h2o_memis(t.base, t.len, H2O_STRLIT("hello world")));
- t = h2o_str_stripws(H2O_STRLIT("hello world "));
- ok(h2o_memis(t.base, t.len, H2O_STRLIT("hello world")));
- t = h2o_str_stripws(H2O_STRLIT(" hello world "));
- ok(h2o_memis(t.base, t.len, H2O_STRLIT("hello world")));
- t = h2o_str_stripws(H2O_STRLIT(" "));
- ok(h2o_memis(t.base, t.len, H2O_STRLIT("")));
-}
-
-static void test_get_filext(void)
-{
- h2o_iovec_t ext;
-
- ext = h2o_get_filext(H2O_STRLIT("/abc.txt"));
- ok(h2o_memis(ext.base, ext.len, H2O_STRLIT("txt")));
- ext = h2o_get_filext(H2O_STRLIT("/abc.txt.gz"));
- ok(h2o_memis(ext.base, ext.len, H2O_STRLIT("gz")));
- ext = h2o_get_filext(H2O_STRLIT("/abc."));
- ok(h2o_memis(ext.base, ext.len, H2O_STRLIT("")));
- ext = h2o_get_filext(H2O_STRLIT("/abc"));
- ok(ext.base == NULL);
- ext = h2o_get_filext(H2O_STRLIT("/abc.def/abc"));
- ok(ext.base == NULL);
- ext = h2o_get_filext(H2O_STRLIT("/abc.def/"));
- ok(ext.base == NULL);
-}
-
-static void test_next_token(void)
-{
- h2o_iovec_t iter;
- const char *token;
- size_t token_len;
-
-#define NEXT() \
- if ((token = h2o_next_token(&iter, ',', &token_len, NULL)) == NULL) { \
- ok(0); \
- return; \
- }
-
- iter = h2o_iovec_init(H2O_STRLIT("public, max-age=86400, must-revalidate"));
- NEXT();
- ok(h2o_memis(token, token_len, H2O_STRLIT("public")));
- NEXT();
- ok(h2o_memis(token, token_len, H2O_STRLIT("max-age=86400")));
- NEXT();
- ok(h2o_memis(token, token_len, H2O_STRLIT("must-revalidate")));
- token = h2o_next_token(&iter, ',', &token_len, NULL);
- ok(token == NULL);
-
- iter = h2o_iovec_init(H2O_STRLIT(" public ,max-age=86400 ,"));
- NEXT();
- ok(h2o_memis(token, token_len, H2O_STRLIT("public")));
- NEXT();
- ok(h2o_memis(token, token_len, H2O_STRLIT("max-age=86400")));
- token = h2o_next_token(&iter, ',', &token_len, NULL);
- ok(token == NULL);
-
- iter = h2o_iovec_init(H2O_STRLIT(""));
- token = h2o_next_token(&iter, ',', &token_len, NULL);
- ok(token == NULL);
-
- iter = h2o_iovec_init(H2O_STRLIT(", ,a, "));
- NEXT();
- ok(token_len == 0);
- NEXT();
- ok(token_len == 0);
- NEXT();
- ok(h2o_memis(token, token_len, H2O_STRLIT("a")));
- token = h2o_next_token(&iter, ',', &token_len, NULL);
- ok(token == NULL);
-
-#undef NEXT
-}
-
-static void test_next_token2(void)
-{
- h2o_iovec_t iter, value;
- const char *name;
- size_t name_len;
-
-#define NEXT() \
- if ((name = h2o_next_token(&iter, ',', &name_len, &value)) == NULL) { \
- ok(0); \
- return; \
- }
-
- iter = h2o_iovec_init(H2O_STRLIT("public, max-age=86400, must-revalidate"));
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("public")));
- ok(value.base == NULL);
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("max-age")));
- ok(h2o_memis(value.base, value.len, H2O_STRLIT("86400")));
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("must-revalidate")));
- ok(value.base == NULL);
- ok(value.len == 0);
- name = h2o_next_token(&iter, ',', &name_len, &value);
- ok(name == NULL);
-
- iter = h2o_iovec_init(H2O_STRLIT("public, max-age = 86400 = c , must-revalidate="));
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("public")));
- ok(value.base == NULL);
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("max-age")));
- ok(h2o_memis(value.base, value.len, H2O_STRLIT("86400 = c")));
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("must-revalidate")));
- name = h2o_next_token(&iter, ',', &name_len, &value);
- ok(h2o_memis(value.base, value.len, H2O_STRLIT("")));
-
-#undef NEXT
-}
-
-static void test_next_token3(void)
-{
- h2o_iovec_t iter, value;
- const char *name;
- size_t name_len;
-
-#define NEXT() \
- if ((name = h2o_next_token(&iter, ';', &name_len, &value)) == NULL) { \
- ok(0); \
- return; \
- }
-
- iter = h2o_iovec_init(H2O_STRLIT("</foo.css>; rel=preload; xxx=,</bar.js>, </zzz.js>"));
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("</foo.css>")));
- ok(value.base == NULL);
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("rel")));
- ok(h2o_memis(value.base, value.len, H2O_STRLIT("preload")));
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("xxx")));
- ok(value.base != NULL); /* xxx _has_ a value! */
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT(",")));
- ok(value.base == NULL);
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("</bar.js>")));
- ok(value.base == NULL);
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT(",")));
- ok(value.base == NULL);
- ok(value.len == 0);
- NEXT();
- ok(h2o_memis(name, name_len, H2O_STRLIT("</zzz.js>")));
- ok(value.base == NULL);
- ok(value.len == 0);
- name = h2o_next_token(&iter, ',', &name_len, &value);
- ok(name == NULL);
-
-#undef NEXT
-}
-
-static void test_decode_base64(void)
-{
- h2o_mem_pool_t pool;
- char buf[256];
-
- h2o_mem_init_pool(&pool);
-
- h2o_iovec_t src = {H2O_STRLIT("The quick brown fox jumps over the lazy dog.")}, decoded;
- h2o_base64_encode(buf, (const uint8_t *)src.base, src.len, 1);
- ok(strcmp(buf, "VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4") == 0);
- decoded = h2o_decode_base64url(&pool, buf, strlen(buf));
- ok(src.len == decoded.len);
- ok(strcmp(decoded.base, src.base) == 0);
-
- h2o_mem_clear_pool(&pool);
-}
-
-static void test_htmlescape(void)
-{
- h2o_mem_pool_t pool;
- h2o_mem_init_pool(&pool);
-
-#define TEST(src, expected) \
- do { \
- h2o_iovec_t escaped = h2o_htmlescape(&pool, H2O_STRLIT(src)); \
- ok(h2o_memis(escaped.base, escaped.len, H2O_STRLIT(expected))); \
- } while (0)
-
- TEST("hello world", "hello world");
- TEST("x < y", "x &lt; y");
- TEST("\0\"&'<>", "\0&quot;&amp;&#39;&lt;&gt;");
-
-#undef TEST
-
- h2o_mem_clear_pool(&pool);
-}
-
-static void test_uri_escape(void)
-{
- h2o_mem_pool_t pool;
- h2o_mem_init_pool(&pool);
-
-#define TEST(src, preserve, expected) \
- do { \
- h2o_iovec_t escaped = h2o_uri_escape(&pool, H2O_STRLIT(src), preserve); \
- ok(h2o_memis(escaped.base, escaped.len, H2O_STRLIT(expected))); \
- } while (0)
-
- TEST("abc", NULL, "abc");
- TEST("a/c", NULL, "a%2Fc");
- TEST("a/c", "/", "a/c");
- TEST("\xe3\x81\x82", NULL, "%E3%81%82");
- TEST("a\0!", NULL, "a%00!");
- TEST("a/\0!", "/", "a/%00!");
-
-#undef TEST
-
- h2o_mem_clear_pool(&pool);
-}
-
-static void test_at_position(void)
-{
- char buf[160];
- int ret;
-
- /* normal cases */
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 1, 1);
- ok(ret == 0);
- ok(strcmp(buf, "hello\n^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 1, 5);
- ok(ret == 0);
- ok(strcmp(buf, "hello\n ^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 1, 6);
- ok(ret == 0);
- ok(strcmp(buf, "hello\n ^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 1, 7);
- ok(ret == 0);
- ok(strcmp(buf, "hello\n ^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 2, 1);
- ok(ret == 0);
- ok(strcmp(buf, "world\n^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 2, 5);
- ok(ret == 0);
- ok(strcmp(buf, "world\n ^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 1, 7);
- ok(ret == 0);
- ok(strcmp(buf, "hello\n ^\n") == 0);
-
- ret = h2o_str_at_position(
- buf, H2O_STRLIT("_________1_________2_________3_________4_________5_________6_________7_________\nworld\n"), 1, 5);
- ok(ret == 0);
- ok(strcmp(buf, "_________1_________2_________3_________4_________5_________6_________7______\n ^\n") == 0);
-
- ret = h2o_str_at_position(
- buf, H2O_STRLIT("_________1_________2_________3_________4_________5_________6_________7_________\nworld\n"), 1, 60);
- ok(ret == 0);
- ok(strcmp(buf, "_________3_________4_________5_________6_________7_________\n ^\n") == 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello"), 1, 20);
- ok(ret == 0);
- ok(strcmp(buf, "hello\n ^\n") == 0);
-
- /* error cases */
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 0, 1);
- ok(ret != 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 1, 0);
- ok(ret != 0);
-
- ret = h2o_str_at_position(buf, H2O_STRLIT("hello\nworld\n"), 4, 1);
- ok(ret != 0);
-}
-
-void test_lib__common__string_c(void)
-{
- subtest("strstr", test_strstr);
- subtest("stripws", test_stripws);
- subtest("get_filext", test_get_filext);
- subtest("next_token", test_next_token);
- subtest("next_token2", test_next_token2);
- subtest("next_token3", test_next_token3);
- subtest("decode_base64", test_decode_base64);
- subtest("htmlescape", test_htmlescape);
- subtest("uri_escape", test_uri_escape);
- subtest("at_position", test_at_position);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/time.c b/web/server/h2o/libh2o/t/00unit/lib/common/time.c
deleted file mode 100644
index c6fc12ff9..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/time.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/common/time.c"
-
-void test_lib__common__time_c(void)
-{
- struct tm tm = {
- 56, /* sec */
- 34, /* min */
- 12, /* hour */
- 4, /* 4th */
- 1, /* feb */
- 115, /* 2015 */
- 3 /* Wed */
- };
- char buf[H2O_TIMESTR_RFC1123_LEN + 1];
-
- h2o_time2str_rfc1123(buf, &tm);
- ok(strcmp(buf, "Wed, 04 Feb 2015 12:34:56 GMT") == 0);
- tm = (struct tm){0};
- h2o_time_parse_rfc1123(buf, H2O_TIMESTR_RFC1123_LEN, &tm);
- ok(tm.tm_year == 115);
- ok(tm.tm_mon == 1);
- ok(tm.tm_mday == 4);
- ok(tm.tm_hour == 12);
- ok(tm.tm_min == 34);
- ok(tm.tm_sec == 56);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/common/url.c b/web/server/h2o/libh2o/t/00unit/lib/common/url.c
deleted file mode 100644
index ce1676001..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/common/url.c
+++ /dev/null
@@ -1,662 +0,0 @@
-/*
- * Copyright (c) 2014,2015 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/common/url.c"
-
-static void test_normalize_path(void)
-{
- h2o_mem_pool_t pool;
-
- h2o_mem_init_pool(&pool);
-
- size_t q;
- size_t *norm_indexes = NULL;
- h2o_iovec_t input;
- h2o_iovec_t b;
-
- input = h2o_iovec_init(NULL, 0);
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 1);
- ok(memcmp(b.base, H2O_STRLIT("/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("a"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 2);
- ok(memcmp(b.base, H2O_STRLIT("/a")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 0);
- ok(norm_indexes[1] == 1);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("aa"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 3);
- ok(memcmp(b.base, H2O_STRLIT("/aa")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 0);
- ok(norm_indexes[1] == 1);
- ok(norm_indexes[2] == 2);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 1);
- ok(memcmp(b.base, H2O_STRLIT("/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("/."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 1);
- ok(memcmp(b.base, H2O_STRLIT("/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/./"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 1);
- ok(memcmp(b.base, H2O_STRLIT("/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/.."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 1);
- ok(memcmp(b.base, H2O_STRLIT("/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/../"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 1);
- ok(memcmp(b.base, H2O_STRLIT("/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/abc")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("/abc"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/abc")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/../def"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/def")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 9);
- ok(norm_indexes[2] == 10);
- ok(norm_indexes[3] == 11);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/../../def"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/def")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 12);
- ok(norm_indexes[2] == 13);
- ok(norm_indexes[3] == 14);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/./def"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 8);
- ok(memcmp(b.base, H2O_STRLIT("/abc/def")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- ok(norm_indexes[5] == 8);
- ok(norm_indexes[6] == 9);
- ok(norm_indexes[7] == 10);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/././def"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 8);
- ok(memcmp(b.base, H2O_STRLIT("/abc/def")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- ok(norm_indexes[5] == 10);
- ok(norm_indexes[6] == 11);
- ok(norm_indexes[7] == 12);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/def/ghi/../.."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 5);
- ok(memcmp(b.base, H2O_STRLIT("/abc/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/def/./."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 9);
- ok(memcmp(b.base, H2O_STRLIT("/abc/def/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- ok(norm_indexes[5] == 6);
- ok(norm_indexes[6] == 7);
- ok(norm_indexes[7] == 8);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/def/ghi/../."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 9);
- ok(memcmp(b.base, H2O_STRLIT("/abc/def/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- ok(norm_indexes[5] == 6);
- ok(norm_indexes[6] == 7);
- ok(norm_indexes[7] == 8);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/def/./.."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 5);
- ok(memcmp(b.base, H2O_STRLIT("/abc/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/def/.."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 5);
- ok(memcmp(b.base, H2O_STRLIT("/abc/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/def/."));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 9);
- ok(memcmp(b.base, H2O_STRLIT("/abc/def/")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- ok(norm_indexes[4] == 5);
- ok(norm_indexes[5] == 6);
- ok(norm_indexes[6] == 7);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc?xx"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/abc")) == 0);
- ok(q == 4);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("/abc/../def?xx"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/def")) == 0);
- ok(q == 11);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 9);
- ok(norm_indexes[2] == 10);
- ok(norm_indexes[3] == 11);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/a%62c"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/abc")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 5);
- ok(norm_indexes[3] == 6);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/a%6"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/a%6")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/a%6?"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 4);
- ok(memcmp(b.base, H2O_STRLIT("/a%6")) == 0);
- ok(q == 4);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 2);
- ok(norm_indexes[2] == 3);
- ok(norm_indexes[3] == 4);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/%25"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 2);
- ok(memcmp(b.base, H2O_STRLIT("/%")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes != NULL);
- ok(norm_indexes[0] == 1);
- ok(norm_indexes[1] == 4);
- norm_indexes = NULL;
-
- input = h2o_iovec_init(H2O_STRLIT("/abc//"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 6);
- ok(memcmp(b.base, H2O_STRLIT("/abc//")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("/abc//d"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 7);
- ok(memcmp(b.base, H2O_STRLIT("/abc//d")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("//"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 2);
- ok(memcmp(b.base, H2O_STRLIT("//")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("//abc"));
- b = h2o_url_normalize_path(&pool, input.base, input.len, &q, &norm_indexes);
- ok(b.len == 5);
- ok(memcmp(b.base, H2O_STRLIT("//abc")) == 0);
- ok(q == SIZE_MAX);
- ok(norm_indexes == NULL);
-
- h2o_mem_clear_pool(&pool);
-}
-
-static void test_hostport(void)
-{
- h2o_iovec_t input, host;
- uint16_t port;
- const char *ret;
-
- input = h2o_iovec_init(H2O_STRLIT("127.0.0.1"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(ret == input.base + input.len);
- ok(h2o_memis(host.base, host.len, H2O_STRLIT("127.0.0.1")));
- ok(port == 65535);
-
- input = h2o_iovec_init(H2O_STRLIT("127.0.0.1/"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(strcmp(ret, "/") == 0);
- ok(h2o_memis(host.base, host.len, H2O_STRLIT("127.0.0.1")));
- ok(port == 65535);
-
- input = h2o_iovec_init(H2O_STRLIT("127.0.0.1:8081/"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(strcmp(ret, "/") == 0);
- ok(h2o_memis(host.base, host.len, H2O_STRLIT("127.0.0.1")));
- ok(port == 8081);
-
- input = h2o_iovec_init(H2O_STRLIT("[::ffff:192.0.2.1]:8081/"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(strcmp(ret, "/") == 0);
- ok(h2o_memis(host.base, host.len, H2O_STRLIT("::ffff:192.0.2.1")));
- ok(port == 8081);
-
- input = h2o_iovec_init(H2O_STRLIT("[::ffff:192.0.2.1:8081/"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(ret == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT(":8081/"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(ret == NULL);
-
- input = h2o_iovec_init(H2O_STRLIT("[]:8081/"));
- ret = h2o_url_parse_hostport(input.base, input.len, &host, &port);
- ok(ret == NULL);
-}
-
-static void test_parse(void)
-{
- h2o_url_t parsed;
- int ret;
-
- ret = h2o_url_parse("http://example.com/abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("example.com")));
- ok(parsed._port == 65535);
- ok(h2o_url_get_port(&parsed) == 80);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/abc")));
-
- ret = h2o_url_parse("http://example.com", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("example.com")));
- ok(parsed._port == 65535);
- ok(h2o_url_get_port(&parsed) == 80);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/")));
-
- ret = h2o_url_parse("http://example.com:81/abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("example.com:81")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("example.com")));
- ok(parsed._port == 81);
- ok(h2o_url_get_port(&parsed) == 81);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/abc")));
-
- ret = h2o_url_parse("http://example.com:81", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("example.com:81")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("example.com")));
- ok(parsed._port == 81);
- ok(h2o_url_get_port(&parsed) == 81);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/")));
-
- ret = h2o_url_parse("https://example.com/abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTPS);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("example.com")));
- ok(parsed._port == 65535);
- ok(h2o_url_get_port(&parsed) == 443);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/abc")));
-
- ret = h2o_url_parse("http:/abc", SIZE_MAX, &parsed);
- ok(ret != 0);
-
- ret = h2o_url_parse("ftp://example.com/abc", SIZE_MAX, &parsed);
- ok(ret != 0);
-
- ret = h2o_url_parse("http://abc:111111/def", SIZE_MAX, &parsed);
- ok(ret != 0);
-
- ret = h2o_url_parse("http://[::ffff:192.0.2.128]", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("[::ffff:192.0.2.128]")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("::ffff:192.0.2.128")));
- ok(parsed._port == 65535);
- ok(h2o_url_get_port(&parsed) == 80);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/")));
-
- ret = h2o_url_parse("https://[::ffff:192.0.2.128]/abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTPS);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("[::ffff:192.0.2.128]")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("::ffff:192.0.2.128")));
- ok(parsed._port == 65535);
- ok(h2o_url_get_port(&parsed) == 443);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/abc")));
-
- ret = h2o_url_parse("https://[::ffff:192.0.2.128]:111/abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTPS);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("[::ffff:192.0.2.128]:111")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("::ffff:192.0.2.128")));
- ok(parsed._port == 111);
- ok(h2o_url_get_port(&parsed) == 111);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/abc")));
-}
-
-static void test_parse_relative(void)
-{
- h2o_url_t parsed;
- int ret;
-
- memset(&parsed, 0x55, sizeof(parsed));
- ret = h2o_url_parse_relative("abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == NULL);
- ok(parsed.authority.base == NULL);
- ok(parsed.host.base == NULL);
- ok(parsed._port == 65535);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("abc")));
-
- memset(&parsed, 0x55, sizeof(parsed));
- ret = h2o_url_parse_relative("/abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == NULL);
- ok(parsed.authority.base == NULL);
- ok(parsed.host.base == NULL);
- ok(parsed._port == 65535);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/abc")));
-
- memset(&parsed, 0x55, sizeof(parsed));
- ret = h2o_url_parse_relative("http:abc", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTP);
- ok(parsed.authority.base == NULL);
- ok(parsed.host.base == NULL);
- ok(parsed._port == 65535);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("abc")));
-
- memset(&parsed, 0x55, sizeof(parsed));
- ret = h2o_url_parse_relative("//host", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == NULL);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("host")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("host")));
- ok(parsed._port == 65535);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/")));
-
- memset(&parsed, 0x55, sizeof(parsed));
- ret = h2o_url_parse_relative("//host:12345/path", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == NULL);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("host:12345")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("host")));
- ok(parsed._port == 12345);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/path")));
-
- memset(&parsed, 0x55, sizeof(parsed));
- ret = h2o_url_parse_relative("https://host:12345/path", SIZE_MAX, &parsed);
- ok(ret == 0);
- ok(parsed.scheme == &H2O_URL_SCHEME_HTTPS);
- ok(h2o_memis(parsed.authority.base, parsed.authority.len, H2O_STRLIT("host:12345")));
- ok(h2o_memis(parsed.host.base, parsed.host.len, H2O_STRLIT("host")));
- ok(parsed._port == 12345);
- ok(h2o_memis(parsed.path.base, parsed.path.len, H2O_STRLIT("/path")));
-}
-
-static void test_resolve(void)
-{
- h2o_mem_pool_t pool;
- h2o_url_t base, relative, resolved;
- h2o_iovec_t final;
- int ret;
-
- h2o_mem_init_pool(&pool);
-
- ret = h2o_url_parse("http://example.com/dir/index.html", SIZE_MAX, &base);
- ok(ret == 0);
-
- ret = h2o_url_parse_relative("../assets/jquery.js", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/assets/jquery.js")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 80);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/assets/jquery.js")));
-
- ret = h2o_url_parse_relative("foo.html", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/dir/foo.html")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 80);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/dir/foo.html")));
-
- ret = h2o_url_parse_relative("./bar.txt", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/dir/bar.txt")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 80);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/dir/bar.txt")));
-
- ret = h2o_url_parse_relative("../../../traverse", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/traverse")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 80);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/traverse")));
-
- ret = h2o_url_parse_relative("http:foo.html", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/dir/foo.html")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 80);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/dir/foo.html")));
-
- ret = h2o_url_parse_relative("http:/icon.ico", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/icon.ico")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 80);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/icon.ico")));
-
- ret = h2o_url_parse_relative("https:/icon.ico", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("https://example.com/icon.ico")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTPS);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.com")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.com")));
- ok(resolved._port == 65535);
- ok(h2o_url_get_port(&resolved) == 443);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/icon.ico")));
-
- ret = h2o_url_parse_relative("//example.jp:81/icon.ico", SIZE_MAX, &relative);
- ok(ret == 0);
- final = h2o_url_resolve(&pool, &base, &relative, &resolved);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.jp:81/icon.ico")));
- ok(resolved.scheme == &H2O_URL_SCHEME_HTTP);
- ok(h2o_memis(resolved.authority.base, resolved.authority.len, H2O_STRLIT("example.jp:81")));
- ok(h2o_memis(resolved.host.base, resolved.host.len, H2O_STRLIT("example.jp")));
- ok(resolved._port == 81);
- ok(h2o_url_get_port(&resolved) == 81);
- ok(h2o_memis(resolved.path.base, resolved.path.len, H2O_STRLIT("/icon.ico")));
-
- final = h2o_url_stringify(&pool, &base);
- ok(h2o_memis(final.base, final.len, H2O_STRLIT("http://example.com/dir/index.html")));
-
- h2o_mem_clear_pool(&pool);
-}
-
-void test_lib__common__url_c(void)
-{
- subtest("normalize_path", test_normalize_path);
- subtest("hostport", test_hostport);
- subtest("parse", test_parse);
- subtest("parse_relative", test_parse_relative);
- subtest("resolve", test_resolve);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/core/headers.c b/web/server/h2o/libh2o/t/00unit/lib/core/headers.c
deleted file mode 100644
index 97cea41e8..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/core/headers.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/core/headers.c"
-
-static void test_set_header_token(void)
-{
- h2o_mem_pool_t pool;
- h2o_headers_t headers = {NULL};
-
- h2o_mem_init_pool(&pool);
-
- h2o_set_header_token(&pool, &headers, H2O_TOKEN_VARY, H2O_STRLIT("cookie"));
- ok(headers.size == 1);
- ok(headers.entries[0].name == &H2O_TOKEN_VARY->buf);
- ok(h2o_memis(headers.entries[0].value.base, headers.entries[0].value.len, H2O_STRLIT("cookie")));
- h2o_set_header_token(&pool, &headers, H2O_TOKEN_VARY, H2O_STRLIT("accept-encoding"));
- ok(headers.size == 1);
- ok(headers.entries[0].name == &H2O_TOKEN_VARY->buf);
- ok(h2o_memis(headers.entries[0].value.base, headers.entries[0].value.len, H2O_STRLIT("cookie, accept-encoding")));
-
- headers.entries[0].value.base[0] = 'C';
- h2o_set_header_token(&pool, &headers, H2O_TOKEN_VARY, H2O_STRLIT("cookie"));
- ok(headers.size == 1);
- ok(headers.entries[0].name == &H2O_TOKEN_VARY->buf);
- ok(h2o_memis(headers.entries[0].value.base, headers.entries[0].value.len, H2O_STRLIT("Cookie, accept-encoding")));
-
- h2o_mem_clear_pool(&pool);
-}
-
-void test_lib__core__headers_c(void)
-{
- subtest("set_header_token", test_set_header_token);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c b/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c
deleted file mode 100644
index 6f87db1fd..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/core/proxy.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/core/proxy.c"
-
-static void test_rewrite_location(void)
-{
- h2o_url_t upstream;
- h2o_mem_pool_t pool;
- h2o_iovec_t ret;
-
- h2o_url_parse(H2O_STRLIT("http://realhost:81/real/"), &upstream);
-
- h2o_mem_init_pool(&pool);
-
- ret = rewrite_location(&pool, H2O_STRLIT("http://realhost:81/real/abc"), &upstream, &H2O_URL_SCHEME_HTTPS,
- h2o_iovec_init(H2O_STRLIT("vhost:8443")), h2o_iovec_init(H2O_STRLIT("/virtual/")));
- ok(h2o_memis(ret.base, ret.len, H2O_STRLIT("https://vhost:8443/virtual/abc")));
- ret = rewrite_location(&pool, H2O_STRLIT("http://realhost:81/other/abc"), &upstream, &H2O_URL_SCHEME_HTTPS,
- h2o_iovec_init(H2O_STRLIT("vhost:8443")), h2o_iovec_init(H2O_STRLIT("/virtual/")));
- ok(ret.base == NULL);
- ok(ret.len == 0);
-
- h2o_mem_clear_pool(&pool);
-}
-
-void test_lib__core__proxy_c()
-{
- subtest("rewrite_location", test_rewrite_location);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/core/util.c b/web/server/h2o/libh2o/t/00unit/lib/core/util.c
deleted file mode 100644
index a3141577d..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/core/util.c
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <string.h>
-#include "../../test.h"
-#include "../../../../lib/core/util.c"
-
-static void test_parse_proxy_line(void)
-{
- char in[256];
- struct sockaddr_storage sa;
- socklen_t salen;
- ssize_t ret;
-
- strcpy(in, "");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == -2);
-
- strcpy(in, "PROXY TCP4 192.168.0.1 192.168.0.11 56324 443\r\nabc");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == strlen(in) - 3);
- ok(salen == sizeof(struct sockaddr_in));
- ok(sa.ss_family == AF_INET);
- ok(((struct sockaddr_in *)&sa)->sin_addr.s_addr == htonl(0xc0a80001));
- ok(((struct sockaddr_in *)&sa)->sin_port == htons(56324));
-
- strcpy(in, "PROXY TCP4 192.168.0.1 192.168.0.11 56324 443\r");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == -2);
-
- strcpy(in, "PROXY TCP5");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == -1);
-
- strcpy(in, "PROXY UNKNOWN");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == -2);
-
- strcpy(in, "PROXY UNKNOWN\r\nabc");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == strlen(in) - 3);
- ok(salen == 0);
-
- strcpy(in, "PROXY TCP6 ::1 ::1 56324 443\r\n");
- ret = parse_proxy_line(in, strlen(in), (void *)&sa, &salen);
- ok(ret == strlen(in));
- ok(salen == sizeof(struct sockaddr_in6));
- ok(sa.ss_family == AF_INET6);
- ok(memcmp(&((struct sockaddr_in6 *)&sa)->sin6_addr, H2O_STRLIT("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1")) == 0);
- ok(((struct sockaddr_in6 *)&sa)->sin6_port == htons(56324));
-}
-
-static void test_extract_push_path_from_link_header(void)
-{
- h2o_mem_pool_t pool;
- h2o_iovec_vector_t paths;
- h2o_iovec_t path;
- h2o_iovec_t filtered_value;
- h2o_iovec_t base_path = {H2O_STRLIT("/basepath/")}, input_authority = {H2O_STRLIT("basehost")},
- other_authority = {H2O_STRLIT("otherhost")};
-#define INPUT base_path, &H2O_URL_SCHEME_HTTP, input_authority
- h2o_mem_init_pool(&pool);
- h2o_iovec_t value;
-
- value = h2o_iovec_init(H2O_STRLIT("<http://basehost/otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/basepath/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<../otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<http:otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/basepath/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<../otherpath>; rel=author"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<http://basehost:81/otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<https://basehost/otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<https:otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTPS, &input_authority,
- &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &other_authority,
- &filtered_value);
- ok(paths.entries == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<http://basehost/otherpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &other_authority,
- &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/otherpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("<http:otherpath>; rel=preload; nopush"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, NULL, NULL, &filtered_value);
- ok(paths.entries == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload, </secondpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 2);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/secondpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload; nopush, </secondpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/secondpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload; nopush, </secondpath>; nopush; rel=preload; </thirdpath>"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload; nopush, <secondpath>; rel=notpreload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload, </secondpath>; rel=preload; nopush, </thirdpath>; rel=preload"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 2);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/thirdpath")));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("hogefoo"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- h2o_mem_clear_pool(&pool);
-#undef INPUT
-}
-
-static void test_extract_push_path_from_link_header_push_only(void)
-{
- h2o_mem_pool_t pool;
- h2o_iovec_vector_t paths;
- h2o_iovec_t path;
- h2o_iovec_t filtered_value;
- h2o_iovec_t base_path = {H2O_STRLIT("/basepath/")}, input_authority = {H2O_STRLIT("basehost")};
-#define INPUT base_path, &H2O_URL_SCHEME_HTTP, input_authority
- h2o_mem_init_pool(&pool);
- h2o_iovec_t value;
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload, </secondpath>; rel=preload; nopush, </thirdpath>; rel=preload, "
- "</fourthpath>; rel=preload; x-http2-push-only"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 3);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/thirdpath")));
- path = paths.entries[2];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/fourthpath")));
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload, </secondpath>; rel=preload; nopush, </thirdpath>; rel=preload"));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload; x-http2-push-only, </secondpath>; rel=preload; nopush, "
- "</thirdpath>; rel=preload, </fourthpath>; rel=preload; x-http2-push-only"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 3);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/thirdpath")));
- path = paths.entries[2];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/fourthpath")));
- value = h2o_iovec_init(H2O_STRLIT("</secondpath>; rel=preload; nopush, </thirdpath>; rel=preload"));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload, </secondpath>; rel=preload; x-http2-push-only, </thirdpath>; "
- "rel=preload; nopush, </fourthpath>; rel=preload; x-http2-push-only"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 3);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/secondpath")));
- path = paths.entries[2];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/fourthpath")));
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload, </thirdpath>; rel=preload; nopush"));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload; x-http2-push-only, </secondpath>; rel=preload, </thirdpath>; "
- "rel=preload; x-http2-push-only, </fourthpath>; rel=preload; nopush"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 3);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/secondpath")));
- path = paths.entries[2];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/thirdpath")));
- value = h2o_iovec_init(H2O_STRLIT("</secondpath>; rel=preload, </fourthpath>; rel=preload; nopush"));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(
- H2O_STRLIT("</firstpath>; rel=preload; x-http2-push-only, </secondpath>; rel=preload; x-http2-push-only, </thirdpath>; "
- "rel=preload, </fourthpath>; rel=preload; nopush"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 3);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- path = paths.entries[1];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/secondpath")));
- path = paths.entries[2];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/thirdpath")));
- value = h2o_iovec_init(H2O_STRLIT("</thirdpath>; rel=preload, </fourthpath>; rel=preload; nopush"));
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("firstpath; rel=preload, </secondpath>; rel=preload; x-http2-push-only, </thirdpath>; "
- "rel=preload; nopush, </fourthpath>; rel=preload; x-http2-push-only"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 0);
- ok(h2o_memis(value.base, value.len, filtered_value.base, filtered_value.len));
-
- value = h2o_iovec_init(H2O_STRLIT("</firstpath>; rel=preload; x-http2-push-only, bar"));
- paths = h2o_extract_push_path_from_link_header(&pool, value.base, value.len, INPUT, &H2O_URL_SCHEME_HTTP, &input_authority,
- &filtered_value);
- ok(paths.size == 1);
- path = paths.entries[0];
- ok(h2o_memis(path.base, path.len, H2O_STRLIT("/firstpath")));
- ok(h2o_memis(H2O_STRLIT("bar"), filtered_value.base, filtered_value.len));
-
- h2o_mem_clear_pool(&pool);
-}
-void test_build_destination(void)
-{
- h2o_pathconf_t conf_not_slashed = {NULL, {H2O_STRLIT("/abc")}}, conf_slashed = {NULL, {H2O_STRLIT("/abc/")}};
- h2o_req_t req;
- h2o_iovec_t dest;
- int escape;
-
- for (escape = 0; escape <= 1; escape++) {
- h2o_init_request(&req, NULL, NULL);
-
- note("escaping: %s", escape ? "on" : "off");
- req.path_normalized = h2o_iovec_init(H2O_STRLIT("/abc/xyz"));
- req.query_at = req.path_normalized.len;
- req.input.path = req.path = h2o_concat(&req.pool, req.path_normalized, h2o_iovec_init(H2O_STRLIT("?q")));
-
- /* basic pattern */
- req.pathconf = &conf_not_slashed;
- dest = h2o_build_destination(&req, H2O_STRLIT("/def"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/xyz?q")));
- dest = h2o_build_destination(&req, H2O_STRLIT("/def/"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/xyz?q")));
- req.pathconf = &conf_slashed;
- dest = h2o_build_destination(&req, H2O_STRLIT("/def"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/xyz?q")));
- dest = h2o_build_destination(&req, H2O_STRLIT("/def/"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/xyz?q")));
-
- /* test wo. query */
- if (escape) {
- req.pathconf = &conf_not_slashed;
- req.query_at = SIZE_MAX;
- dest = h2o_build_destination(&req, H2O_STRLIT("/def"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/xyz")));
- }
-
- /* no trailing */
- req.path_normalized = h2o_iovec_init(H2O_STRLIT("/abc"));
- req.query_at = req.path_normalized.len;
- req.input.path = req.path = h2o_concat(&req.pool, req.path_normalized, h2o_iovec_init(H2O_STRLIT("?q")));
-
- req.pathconf = &conf_not_slashed;
- dest = h2o_build_destination(&req, H2O_STRLIT("/def"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def?q")));
- dest = h2o_build_destination(&req, H2O_STRLIT("/def/"), escape);
- ok(h2o_memis(dest.base, dest.len, H2O_STRLIT("/def/?q")));
- }
-
- h2o_mem_clear_pool(&req.pool);
-}
-
-void test_build_destination_escaping(void)
-{
- h2o_req_t req;
- h2o_iovec_t dest;
- int escape = 0;
- int i, j;
- struct {
- char *pathconf;
- char *dest;
- char *input;
- char *output;
- } tests[] = {
- {"/abc", "/def", "/abc/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/%61bc/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/%61%62c/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/%61%62%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/./%61%62%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/../%61%62%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/././%61%62%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/./.././%61%62%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/./../blah/../%61%62%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/./../blah/.././%61%62c/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/./../blah/.././../../%61b%63/xyz?query&m=n/o", "/def/xyz?query&m=n/o"},
- {"/abc", "/def", "/abc/xyz/?query&m=n/o", "/def/xyz/?query&m=n/o"},
- {"/abc", "/def", "/abc/xyz/.?query&m=n/o", "/def/xyz/.?query&m=n/o"},
- {"/abc", "/def", "/abc/xyz/./?query&m=n/o", "/def/xyz/./?query&m=n/o"},
- {"/abc", "/def", "/abc/xyz/..?query&m=n/o", "/def/xyz/..?query&m=n/o"},
- {"/abc", "/def", "/abc/xyz/../?query&m=n/o", "/def/xyz/../?query&m=n/o"},
- {"/abc", "/def", "/abc/xyz/../a?query&m=n/o", "/def/xyz/../a?query&m=n/o"},
- {"/abc", "/def", "/abc/%yz/?query&m=n/o", "/def/%yz/?query&m=n/o"},
- {"/abc", "/def", "/abc/%78yz/?query&m=n/o", "/def/%78yz/?query&m=n/o"},
- {"/", "/", "/xyz/../mno", "/xyz/../mno"},
- {"/", "/", "/xyz/../mno/..", "/xyz/../mno/.."},
- {"/", "/def", "/xyz/../mno", "/def/xyz/../mno"},
- {"/", "/def/", "/xyz/../mno", "/def/xyz/../mno"},
- {"/", "/def", "/xyz/../", "/def/xyz/../"},
- {"/", "/def/", "/xyz/..", "/def/xyz/.."},
- };
- h2o_init_request(&req, NULL, NULL);
-
- /* 'j' runs the test with a missing leading '/' in the input path */
- for (j = 0; j <= 1; j++) {
- for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
- h2o_pathconf_t conf = {NULL, {tests[i].pathconf, strlen(tests[i].pathconf)}};
- req.pathconf = &conf;
- req.path = req.input.path = h2o_iovec_init(tests[i].input + j, strlen(tests[i].input) - j);
- req.norm_indexes = NULL;
- req.path_normalized = h2o_url_normalize_path(&req.pool, req.path.base, req.path.len, &req.query_at, &req.norm_indexes);
- dest = h2o_build_destination(&req, tests[i].dest, strlen(tests[i].dest), escape);
- note("%s: %d, %sskipping the leading '/'", tests[i].input, i, !j ? "not " : "");
- ok(dest.len == strlen(tests[i].output));
- ok(h2o_memis(dest.base, dest.len, tests[i].output, strlen(tests[i].output)));
- }
- }
-
- h2o_mem_clear_pool(&req.pool);
-}
-
-void test_lib__core__util_c()
-{
- subtest("parse_proxy_line", test_parse_proxy_line);
- subtest("extract_push_path_from_link_header", test_extract_push_path_from_link_header);
- subtest("extract_push_path_from_link_header_push_only", test_extract_push_path_from_link_header_push_only);
- subtest("test_build_destination", test_build_destination);
- subtest("test_build_destination_escaping", test_build_destination_escaping);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c b/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c
deleted file mode 100644
index 5b430b4c5..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/compress.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include <zlib.h>
-#include "../../test.h"
-#define BUF_SIZE 256
-#include "../../../../lib/handler/compress/gzip.c"
-#include "../../../../lib/handler/compress.c"
-
-static void check_result(h2o_iovec_t *vecs, size_t num_vecs, const char *expected, size_t expectedlen)
-{
- z_stream zs;
- char decbuf[expectedlen + 1];
-
- memset(&zs, 0, sizeof(zs));
- zs.zalloc = alloc_cb;
- zs.zfree = free_cb;
- zs.next_out = (void *)decbuf;
- zs.avail_out = (unsigned)sizeof(decbuf);
-
- inflateInit2(&zs, WINDOW_BITS);
-
- int inflate_ret = -1;
- size_t i;
- for (i = 0; i != num_vecs; ++i) {
- zs.next_in = (void *)vecs[i].base;
- zs.avail_in = (unsigned)vecs[i].len;
- inflate_ret = inflate(&zs, Z_NO_FLUSH);
- if (zs.avail_out == 0) {
- ok(0);
- return;
- }
- if (zs.avail_in != 0) {
- ok(0);
- return;
- }
- }
-
- ok(inflate_ret == Z_STREAM_END);
- inflateEnd(&zs);
-
- ok(zs.avail_out == sizeof(decbuf) - expectedlen);
- ok(memcmp(decbuf, expected, expectedlen) == 0);
-}
-
-void test_gzip_simple(void)
-{
- h2o_mem_pool_t pool;
- h2o_iovec_t inbuf, *outbufs;
- size_t outbufcnt;
-
- h2o_mem_init_pool(&pool);
-
- h2o_compress_context_t *compressor = h2o_compress_gzip_open(&pool, Z_BEST_SPEED);
- inbuf = h2o_iovec_init(H2O_STRLIT("hello world"));
- compressor->transform(compressor, &inbuf, 1, 1, &outbufs, &outbufcnt);
-
- check_result(outbufs, outbufcnt, H2O_STRLIT("hello world"));
-
- h2o_mem_clear_pool(&pool);
-}
-
-void test_gzip_multi(void)
-{
-#define P1 \
- "Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she " \
- "had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a " \
- "book,' thought Alice `without pictures or conversation?'\n\n"
-#define P2 \
- "So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), " \
- "whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when " \
- "suddenly a White Rabbit with pink eyes ran close by her.\n\n"
-#define P3 \
- "There was nothing so very remarkable in that; nor did Alice think it so very much out of the way to hear the Rabbit say to " \
- "itself, `Oh dear! Oh dear! I shall be late!' (when she thought it over afterwards, it occurred to her that she ought to " \
- "have wondered at this, but at the time it all seemed quite natural); but when the Rabbit actually took a watch out of its " \
- "waistcoat-pocket, and looked at it, and then hurried on, Alice started to her feet, for it flashed across her mind that she " \
- "had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, " \
- "she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the " \
- "hedge.\n\n"
-
- h2o_mem_pool_t pool;
- h2o_iovec_t inbufs[] = {{H2O_STRLIT(P1)}, {H2O_STRLIT(P2)}, {H2O_STRLIT(P3)}}, *outbufs;
- size_t outbufcnt;
-
- h2o_mem_init_pool(&pool);
-
- h2o_compress_context_t *compressor = h2o_compress_gzip_open(&pool, Z_BEST_SPEED);
- compressor->transform(compressor, inbufs, sizeof(inbufs) / sizeof(inbufs[0]), 1, &outbufs, &outbufcnt);
-
- assert(outbufcnt > 1); /* we want to test multi-vec output */
-
- check_result(outbufs, outbufcnt, H2O_STRLIT(P1 P2 P3));
-
- h2o_mem_clear_pool(&pool);
-
-#undef P1
-#undef P2
-#undef P3
-}
-
-void test_lib__handler__gzip_c()
-{
- subtest("gzip_simple", test_gzip_simple);
- subtest("gzip_multi", test_gzip_multi);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c b/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c
deleted file mode 100644
index f79fbf708..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/fastcgi.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include "../../test.h"
-#include "../../../../lib/handler/fastcgi.c"
-
-static h2o_context_t ctx;
-
-static int check_params(h2o_iovec_t *vecs, size_t *index, uint16_t request_id, const char *expected, size_t expected_len)
-{
-#define DECODE_UINT16(p) (((unsigned char *)&p)[0] << 8 | ((unsigned char *)&p)[1])
-
- char buf[4096];
- size_t offset = 0;
-
- while (1) {
- if (vecs[*index].len != FCGI_RECORD_HEADER_SIZE) {
- fprintf(stderr, "record too short (index: %zu)\n", *index);
- return 0;
- }
- struct st_fcgi_record_header_t *header = (void *)vecs[*index].base;
- if (header->version != FCGI_VERSION_1 || header->type != FCGI_PARAMS || header->paddingLength != 0 ||
- header->reserved != 0) {
- fprintf(stderr, "header is corrupt (index: %zu)\n", *index);
- return 0;
- }
- if (DECODE_UINT16(header->requestId) != request_id) {
- fprintf(stderr, "unexpected request id (index: %zu)\n", *index);
- return 0;
- }
- ++*index;
- if (DECODE_UINT16(header->contentLength) == 0)
- break;
- if (vecs[*index].len != DECODE_UINT16(header->contentLength)) {
- fprintf(stderr, "unexpected body size (index: %zu)\n", *index);
- return 0;
- }
- memcpy(buf + offset, vecs[*index].base, vecs[*index].len);
- offset += vecs[*index].len;
- ++*index;
- }
-
- if (!h2o_memis(buf, offset, expected, expected_len)) {
- fprintf(stderr, "PARAMS content mistach\n");
- return 0;
- }
-
- return 1;
-
-#undef DECODE_UINT16
-}
-
-static void test_build_request(void)
-{
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- h2o_fastcgi_config_vars_t config = {5000, 0};
- iovec_vector_t vecs;
- size_t vec_index;
-
- conn->req.input.method = conn->req.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.scheme = conn->req.scheme = &H2O_URL_SCHEME_HTTP;
- conn->req.input.authority = conn->req.authority = h2o_iovec_init(H2O_STRLIT("localhost"));
- conn->req.input.path = conn->req.path = h2o_iovec_init(H2O_STRLIT("/"));
- conn->req.path_normalized = conn->req.path;
- conn->req.query_at = SIZE_MAX;
- conn->req.version = 0x101;
- conn->req.hostconf = *ctx.globalconf->hosts;
- conn->req.pathconf = conn->req.hostconf->paths.entries;
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_COOKIE, NULL, H2O_STRLIT("foo=bar"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_USER_AGENT, NULL,
- H2O_STRLIT("Mozilla/5.0 (X11; Linux) KHTML/4.9.1 (like Gecko) Konqueror/4.9"));
-
- /* build with max_record_size=65535 */
- build_request(&conn->req, &vecs, 0x1234, 65535, &config);
- ok(h2o_memis(vecs.entries[0].base, vecs.entries[0].len, H2O_STRLIT("\x01\x01\x12\x34\x00\x08\x00\x00"
- "\x00\x01\0\0\0\0\0\0")));
- vec_index = 1;
- ok(check_params(vecs.entries, &vec_index, 0x1234,
- H2O_STRLIT("\x0b\x00SCRIPT_NAME" /* */
- "\x09\x01PATH_INFO/" /* */
- "\x0c\x00QUERY_STRING" /* */
- "\x0b\x09REMOTE_ADDR127.0.0.1" /* */
- "\x0b\x05REMOTE_PORT55555" /* */
- "\x0e\x03REQUEST_METHODGET" /* */
- "\x09\x09HTTP_HOSTlocalhost" /* */
- "\x0b\x01REQUEST_URI/" /* */
- "\x0b\x09SERVER_ADDR127.0.0.1" /* */
- "\x0b\x02SERVER_PORT80" /* */
- "\x0b\x07SERVER_NAMEdefault" /* */
- "\x0f\x08SERVER_PROTOCOLHTTP/1.1" /* */
- "\x0f\x10SERVER_SOFTWAREh2o/1.2.1-alpha1" /* */
- "\x0f\x3fHTTP_USER_AGENTMozilla/5.0 (X11; Linux) KHTML/4.9.1 (like Gecko) Konqueror/4.9" /* */
- "\x0b\x07HTTP_COOKIEfoo=bar" /* */
- )));
- ok(h2o_memis(vecs.entries[vec_index].base, vecs.entries[vec_index].len, H2O_STRLIT("\x01\x05\x12\x34\x00\x00\x00\x00")));
- ++vec_index;
- ok(vec_index == vecs.size);
-
- /* build with max_record_size=64, DOCUMENT_ROOT, additional cookie, and content */
- config.document_root = h2o_iovec_init(H2O_STRLIT("/var/www/htdocs"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_COOKIE, NULL, H2O_STRLIT("hoge=fuga"));
- conn->req.entity = h2o_iovec_init(H2O_STRLIT("The above copyright notice and this permission notice shall be included in all "
- "copies or substantial portions of the Software."));
- build_request(&conn->req, &vecs, 0x1234, 64, &config);
- ok(h2o_memis(vecs.entries[0].base, vecs.entries[0].len, H2O_STRLIT("\x01\x01\x12\x34\x00\x08\x00\x00"
- "\x00\x01\0\0\0\0\0\0")));
- vec_index = 1;
- ok(check_params(vecs.entries, &vec_index, 0x1234,
- H2O_STRLIT("\x0e\x03"
- "CONTENT_LENGTH126" /* */
- "\x0b\x00SCRIPT_NAME" /* */
- "\x09\x01PATH_INFO/" /* */
- "\x0d\x0f"
- "DOCUMENT_ROOT/var/www/htdocs" /* */
- "\x0f\x10PATH_TRANSLATED/var/www/htdocs/" /* */
- "\x0c\x00QUERY_STRING" /* */
- "\x0b\x09REMOTE_ADDR127.0.0.1" /* */
- "\x0b\x05REMOTE_PORT55555" /* */
- "\x0e\x03REQUEST_METHODGET" /* */
- "\x09\x09HTTP_HOSTlocalhost" /* */
- "\x0b\x01REQUEST_URI/" /* */
- "\x0b\x09SERVER_ADDR127.0.0.1" /* */
- "\x0b\x02SERVER_PORT80" /* */
- "\x0b\x07SERVER_NAMEdefault" /* */
- "\x0f\x08SERVER_PROTOCOLHTTP/1.1" /* */
- "\x0f\x10SERVER_SOFTWAREh2o/1.2.1-alpha1" /* */
- "\x0f\x3fHTTP_USER_AGENTMozilla/5.0 (X11; Linux) KHTML/4.9.1 (like Gecko) Konqueror/4.9" /* */
- "\x0b\x11HTTP_COOKIEfoo=bar;hoge=fuga" /* */
- )));
- ok(h2o_memis(vecs.entries[vec_index].base, vecs.entries[vec_index].len, H2O_STRLIT("\x01\x05\x12\x34\x00\x40\x00\x00")));
- ++vec_index;
- ok(h2o_memis(vecs.entries[vec_index].base, vecs.entries[vec_index].len,
- H2O_STRLIT("The above copyright notice and this permission notice shall be i")));
- ++vec_index;
- ok(h2o_memis(vecs.entries[vec_index].base, vecs.entries[vec_index].len, H2O_STRLIT("\x01\x05\x12\x34\x00\x3e\x00\x00")));
- ++vec_index;
- ok(h2o_memis(vecs.entries[vec_index].base, vecs.entries[vec_index].len,
- H2O_STRLIT("ncluded in all copies or substantial portions of the Software.")));
- ++vec_index;
- ok(h2o_memis(vecs.entries[vec_index].base, vecs.entries[vec_index].len, H2O_STRLIT("\x01\x05\x12\x34\x00\x00\x00\x00")));
- ++vec_index;
- ok(vec_index == vecs.size);
-
- h2o_loopback_destroy(conn);
-}
-
-void test_lib__handler__fastcgi_c()
-{
- h2o_globalconf_t globalconf;
- h2o_hostconf_t *hostconf;
- h2o_pathconf_t *pathconf;
-
- h2o_config_init(&globalconf);
- globalconf.server_name = h2o_iovec_init(H2O_STRLIT("h2o/1.2.1-alpha1"));
- hostconf = h2o_config_register_host(&globalconf, h2o_iovec_init(H2O_STRLIT("default")), 65535);
- pathconf = h2o_config_register_path(hostconf, "/", 0);
-
- h2o_context_init(&ctx, test_loop, &globalconf);
-
- subtest("build-request", test_build_request);
-
- h2o_context_dispose(&ctx);
- h2o_config_dispose(&globalconf);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/file.c b/web/server/h2o/libh2o/t/00unit/lib/handler/file.c
deleted file mode 100644
index 6c0e59487..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/file.c
+++ /dev/null
@@ -1,752 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include "../../test.h"
-#include "../../../../lib/handler/file.c"
-
-static h2o_context_t ctx;
-
-static int check_header(h2o_res_t *res, const h2o_token_t *header_name, const char *expected)
-{
- size_t index = h2o_find_header(&res->headers, header_name, SIZE_MAX);
- if (index == SIZE_MAX)
- return 0;
- return h2o_lcstris(res->headers.entries[index].value.base, res->headers.entries[index].value.len, expected, strlen(expected));
-}
-
-static int check_multirange_body(char *resbody, const char *boundary, const h2o_iovec_t *expected, size_t partlen)
-{
- char *bptr = resbody;
- const h2o_iovec_t *eptr = expected;
- int not_first_line = 0;
- while (partlen--) {
- if (not_first_line) {
- if (!h2o_memis(bptr, 2, H2O_STRLIT("\r\n")))
- return 0;
- bptr += 2;
- } else
- not_first_line = 1;
- if (!h2o_memis(bptr, 2, H2O_STRLIT("--")))
- return 0;
- bptr += 2;
- if (!h2o_memis(bptr, BOUNDARY_SIZE, boundary, BOUNDARY_SIZE))
- return 0;
- bptr += 20;
- if (!h2o_memis(bptr, 2, H2O_STRLIT("\r\n")))
- return 0;
- bptr += 2;
- if (!h2o_memis(bptr, eptr->len, eptr->base, eptr->len))
- return 0;
- bptr += eptr->len;
- eptr++;
- }
- if (!h2o_memis(bptr, 4, H2O_STRLIT("\r\n--")))
- return 0;
- bptr += 4;
- if (!h2o_memis(bptr, BOUNDARY_SIZE, boundary, BOUNDARY_SIZE))
- return 0;
- bptr += 20;
- if (!h2o_memis(bptr, 4, H2O_STRLIT("--\r\n")))
- return 0;
- return 1;
-}
-
-static void test_process_range(void)
-{
- h2o_mem_pool_t testpool;
- size_t ret, *ranges;
- h2o_iovec_t testrange;
- h2o_mem_init_pool(&testpool);
-
- { /* check single range within filesize */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=, 0-10"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 1);
- ok(*ranges++ == 0);
- ok(*ranges == 11);
- }
-
- { /* check single range with only start */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=60-"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 1);
- ok(*ranges++ == 60);
- ok(*ranges == 40);
- }
-
- { /* check single suffix range */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=-10"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 1);
- ok(*ranges++ == 90);
- ok(*ranges == 10);
- }
-
- { /* this and next two check multiple ranges within filesize */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=0-10, -10"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 2);
- ok(*ranges++ == 0);
- ok(*ranges++ == 11);
- ok(*ranges++ == 90);
- ok(*ranges == 10);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=0-0, 20-89"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 2);
- ok(*ranges++ == 0);
- ok(*ranges++ == 1);
- ok(*ranges++ == 20);
- ok(*ranges == 70);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=-10,-20"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 2);
- ok(*ranges++ == 90);
- ok(*ranges++ == 10);
- ok(*ranges++ == 80);
- ok(*ranges++ == 20);
- }
-
- { /* check ranges entirely out of filesize */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=100-102"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- { /* check ranges with "negative" length */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=70-21"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- { /* check ranges with one side inside filesize */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=90-102"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 1);
- ok(*ranges++ == 90);
- ok(*ranges == 10);
- }
-
- { /* check suffix range larger than filesize */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=-200"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 1);
- ok(*ranges++ == 0);
- ok(*ranges == 100);
- }
-
- { /* check multiple ranges with unsatisfiable ranges, but also contain satisfiable ranges */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=100-102, 90-102, 72-30,-22, 95-"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 3);
- ok(*ranges++ == 90);
- ok(*ranges++ == 10);
- ok(*ranges++ == 78);
- ok(*ranges++ == 22);
- ok(*ranges++ == 95);
- ok(*ranges++ == 5);
- }
-
- { /* this and next 6 check malformed ranges */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes 20-1002"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes="));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bsdfeadsfjwleakjf"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=100-102, 90-102, -72-30,-22,95-"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=10-12-13, 90-102, -72, -22, 95-"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=100-102, 90-102, 70-39, -22$"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=-0"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- { /* check same ranges with different filesize */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=20-200"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 1);
- ok(*ranges++ == 20);
- ok(*ranges == 80);
- }
-
- {
- ranges = process_range(&testpool, &testrange, 1000, &ret);
- ok(ret == 1);
- ok(*ranges++ == 20);
- ok(*ranges == 181);
- }
-
- { /* check a range with plenty of WS and COMMA */
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=,\t,1-3 ,, ,5-9,"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 2);
- ok(*ranges++ == 1);
- ok(*ranges++ == 3);
- ok(*ranges++ == 5);
- ok(*ranges == 5);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes= 1-3"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=1-3 5-10"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ranges == NULL);
- }
-
- {
- testrange = h2o_iovec_init(H2O_STRLIT("bytes=1-\t,5-10"));
- ranges = process_range(&testpool, &testrange, 100, &ret);
- ok(ret == 2);
- ok(*ranges++ == 1);
- ok(*ranges++ == 99);
- ok(*ranges++ == 5);
- ok(*ranges == 6);
- }
-
- h2o_mem_clear_pool(&testpool);
-}
-
-static void test_if_modified_since(void)
-{
- char lm_date[H2O_TIMESTR_RFC1123_LEN + 1];
-
- { /* obtain last-modified */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- ssize_t lm_index;
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- if ((lm_index = h2o_find_header(&conn->req.res.headers, H2O_TOKEN_LAST_MODIFIED, -1)) == -1) {
- ok(0);
- return;
- }
- ok(conn->req.res.headers.entries[lm_index].value.len == H2O_TIMESTR_RFC1123_LEN);
- memcpy(lm_date, conn->req.res.headers.entries[lm_index].value.base, H2O_TIMESTR_RFC1123_LEN);
- lm_date[H2O_TIMESTR_RFC1123_LEN] = '\0';
- h2o_loopback_destroy(conn);
- }
-
- { /* send if-modified-since using the obtained last-modified */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_IF_MODIFIED_SINCE, NULL, lm_date, H2O_TIMESTR_RFC1123_LEN);
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 304);
- ok(conn->body->size == 0);
- ok(h2o_find_header(&conn->req.res.headers, H2O_TOKEN_ETAG, -1) != -1);
- h2o_loopback_destroy(conn);
- }
-
- { /* send if-modified-since using an old date */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_IF_MODIFIED_SINCE, NULL,
- H2O_STRLIT("Sun, 06 Nov 1994 08:49:37 GMT"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- h2o_loopback_destroy(conn);
- }
-
- { /* send if-modified-since using a date in the future */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_IF_MODIFIED_SINCE, NULL,
- H2O_STRLIT("Wed, 18 May 2033 12:33:20 GMT"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 304);
- ok(conn->body->size == 0);
- ok(h2o_find_header(&conn->req.res.headers, H2O_TOKEN_ETAG, -1) != -1);
- h2o_loopback_destroy(conn);
- }
-}
-
-static void test_if_match(void)
-{
- h2o_iovec_t etag = {NULL};
-
- { /* obtain etag */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- ssize_t etag_index;
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- if ((etag_index = h2o_find_header(&conn->req.res.headers, H2O_TOKEN_ETAG, -1)) == -1) {
- ok(0);
- return;
- }
- etag = h2o_strdup(NULL, conn->req.res.headers.entries[etag_index].value.base,
- conn->req.res.headers.entries[etag_index].value.len);
- h2o_loopback_destroy(conn);
- }
-
- { /* send if-non-match using the obtained etag */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_IF_NONE_MATCH, NULL, etag.base, etag.len);
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 304);
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
-
- free(etag.base);
-}
-
-static void test_range_req(void)
-{
- { /* check if accept-ranges is "bytes" */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- if (check_header(&conn->req.res, H2O_TOKEN_ACCEPT_RANGES, "none")) {
- ok(1);
- return;
- }
- ok(check_header(&conn->req.res, H2O_TOKEN_ACCEPT_RANGES, "bytes"));
- ok(conn->body->size == 1000);
- ok(strcmp(sha1sum(conn->body->bytes, conn->body->size), "dfd3ae1f5c475555fad62efe42e07309fa45f2ed") == 0);
- h2o_loopback_destroy(conn);
- }
- { /* check a normal single range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=0-10"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes 0-10/1000"));
- ok(conn->body->size == 11);
- ok(memcmp(conn->body->bytes, "123456789\n1", 11) == 0);
- h2o_loopback_destroy(conn);
- }
- { /* check an over range single range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=990-1100"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes 990-999/1000"));
- ok(conn->body->size == 10);
- ok(memcmp(conn->body->bytes, "123456789\n", 10) == 0);
- h2o_loopback_destroy(conn);
- }
- { /* check a single range without end */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=989-"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes 989-999/1000"));
- ok(conn->body->size == 11);
- ok(memcmp(conn->body->bytes, "\n123456789\n", 11) == 0);
- h2o_loopback_destroy(conn);
- }
- { /* check a single suffix range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=-21"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes 979-999/1000"));
- ok(conn->body->size == 21);
- ok(memcmp(conn->body->bytes, "\n123456789\n123456789\n", 21) == 0);
- h2o_loopback_destroy(conn);
- }
- { /* check a single suffix range over filesize */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=-2100"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes 0-999/1000"));
- ok(conn->body->size == 1000);
- ok(strcmp(sha1sum(conn->body->bytes, conn->body->size), "dfd3ae1f5c475555fad62efe42e07309fa45f2ed") == 0);
- h2o_loopback_destroy(conn);
- }
- { /* malformed range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=-0-10, 9-, -10"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 416);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain; charset=utf-8"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes */1000"));
- ok(conn->body->size == strlen("requested range not satisfiable"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("requested range not satisfiable")));
- h2o_loopback_destroy(conn);
- }
- { /* malformed range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=0-10-12, 9-, -10"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 416);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain; charset=utf-8"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes */1000"));
- ok(conn->body->size == strlen("requested range not satisfiable"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("requested range not satisfiable")));
- h2o_loopback_destroy(conn);
- }
- { /* malformed range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytfasdf"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 416);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain; charset=utf-8"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes */1000"));
- ok(conn->body->size == strlen("requested range not satisfiable"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("requested range not satisfiable")));
- h2o_loopback_destroy(conn);
- }
- { /* half-malformed range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=-0"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 416);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain; charset=utf-8"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes */1000"));
- ok(conn->body->size == strlen("requested range not satisfiable"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("requested range not satisfiable")));
- h2o_loopback_destroy(conn);
- }
- { /* single range over filesize */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=1000-1001"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 416);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain; charset=utf-8"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes */1000"));
- ok(conn->body->size == strlen("requested range not satisfiable"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("requested range not satisfiable")));
- h2o_loopback_destroy(conn);
- }
- { /* single range with "negative" length */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=900-100"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 416);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain; charset=utf-8"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes */1000"));
- ok(conn->body->size == strlen("requested range not satisfiable"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("requested range not satisfiable")));
- h2o_loopback_destroy(conn);
- }
- { /* check a half-malformed range with a normal range */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=-0, 0-0"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_RANGE, "bytes 0-0/1000"));
- ok(conn->body->size == 1);
- ok(memcmp(conn->body->bytes, "1", 1) == 0);
- h2o_loopback_destroy(conn);
- }
- { /* multiple ranges */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- ssize_t content_type_index;
- h2o_iovec_t content_type, expected[2] = {{NULL}};
- char boundary[BOUNDARY_SIZE + 1];
- size_t mimebaselen = strlen("multipart/byteranges; boundary=");
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=-0, 0-9,-11"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- if ((content_type_index = h2o_find_header(&conn->req.res.headers, H2O_TOKEN_CONTENT_TYPE, -1)) == -1) {
- ok(0);
- return;
- }
- content_type = conn->req.res.headers.entries[content_type_index].value;
- ok(h2o_memis(content_type.base, mimebaselen, "multipart/byteranges; boundary=", mimebaselen));
- memcpy(boundary, content_type.base + mimebaselen, BOUNDARY_SIZE);
- boundary[BOUNDARY_SIZE] = 0;
- expected[0].base = h2o_mem_alloc_pool(&conn->req.pool, 256);
- expected[0].len =
- sprintf(expected[0].base, "Content-Type: %s\r\nContent-Range: bytes 0-9/1000\r\n\r\n%s", "text/plain", "123456789\n");
- expected[1].base = h2o_mem_alloc_pool(&conn->req.pool, 256);
- expected[1].len = sprintf(expected[1].base, "Content-Type: %s\r\nContent-Range: bytes 989-999/1000\r\n\r\n%s", "text/plain",
- "\n123456789\n");
- ok(h2o_find_header(&conn->req.res.headers, H2O_TOKEN_CONTENT_RANGE, -1) == -1);
- ok(conn->body->size == conn->req.res.content_length);
- ok(check_multirange_body(conn->body->bytes, boundary, expected, 2));
- h2o_loopback_destroy(conn);
- }
- { /* multiple ranges with plenty of WS and COMMA */
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- ssize_t content_type_index;
- h2o_iovec_t content_type, expected[2] = {{NULL}};
- char boundary[BOUNDARY_SIZE + 1];
- size_t mimebaselen = strlen("multipart/byteranges; boundary=");
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_add_header(&conn->req.pool, &conn->req.headers, H2O_TOKEN_RANGE, NULL, H2O_STRLIT("bytes=,\t,1-3 ,, ,5-9,"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 206);
- if ((content_type_index = h2o_find_header(&conn->req.res.headers, H2O_TOKEN_CONTENT_TYPE, -1)) == -1) {
- ok(0);
- return;
- }
- content_type = conn->req.res.headers.entries[content_type_index].value;
- ok(h2o_memis(content_type.base, mimebaselen, "multipart/byteranges; boundary=", mimebaselen));
- memcpy(boundary, content_type.base + mimebaselen, BOUNDARY_SIZE);
- boundary[BOUNDARY_SIZE] = 0;
- expected[0].base = h2o_mem_alloc_pool(&conn->req.pool, 256);
- expected[0].len =
- sprintf(expected[0].base, "Content-Type: %s\r\nContent-Range: bytes 1-3/1000\r\n\r\n%s", "text/plain", "234");
- expected[1].base = h2o_mem_alloc_pool(&conn->req.pool, 256);
- expected[1].len =
- sprintf(expected[1].base, "Content-Type: %s\r\nContent-Range: bytes 5-9/1000\r\n\r\n%s", "text/plain", "6789\n");
- ok(h2o_find_header(&conn->req.res.headers, H2O_TOKEN_CONTENT_RANGE, -1) == -1);
- ok(conn->body->size == conn->req.res.content_length);
- ok(check_multirange_body(conn->body->bytes, boundary, expected, 2));
- h2o_loopback_destroy(conn);
- }
-}
-
-void test_lib__handler__file_c()
-{
- h2o_globalconf_t globalconf;
- h2o_hostconf_t *hostconf;
- h2o_pathconf_t *pathconf;
-
- h2o_config_init(&globalconf);
- hostconf = h2o_config_register_host(&globalconf, h2o_iovec_init(H2O_STRLIT("default")), 65535);
- pathconf = h2o_config_register_path(hostconf, "/", 0);
- h2o_file_register(pathconf, "t/00unit/assets", NULL, NULL, 0);
-
- h2o_context_init(&ctx, test_loop, &globalconf);
-
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/html"));
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/html"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("hello html\n")));
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index.html"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/html"));
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index.html"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/html"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("hello html\n")));
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000.txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(conn->body->size == 1000);
- ok(strcmp(sha1sum(conn->body->bytes, conn->body->size), "dfd3ae1f5c475555fad62efe42e07309fa45f2ed") == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000000.txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/1000000.txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(conn->body->size == 1000000);
- ok(strcmp(sha1sum(conn->body->bytes, conn->body->size), "00c8ab71d0914dce6a1ec2eaa0fda0df7044b2a2") == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index_txt/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index_txt/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 200);
- ok(check_header(&conn->req.res, H2O_TOKEN_CONTENT_TYPE, "text/plain"));
- ok(h2o_memis(conn->body->bytes, conn->body->size, H2O_STRLIT("hello text\n")));
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index_txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "/index_txt/"));
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index_txt"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "/index_txt/"));
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index_txt_as_dir/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "/index_txt_as_dir/index.txt/"));
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/index_txt_as_dir/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "/index_txt_as_dir/index.txt/"));
- h2o_loopback_destroy(conn);
- }
- subtest("if-modified-since", test_if_modified_since);
- subtest("if-match", test_if_match);
- subtest("process_range()", test_process_range);
- subtest("range request", test_range_req);
-
- h2o_context_dispose(&ctx);
- h2o_config_dispose(&globalconf);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c b/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c
deleted file mode 100644
index 9ef8386b9..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/headers.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/handler/headers.c"
-
-static int headers_are(h2o_mem_pool_t *pool, h2o_headers_t *headers, const char *s, size_t len)
-{
- size_t i;
- h2o_iovec_t flattened = {NULL};
-
- for (i = 0; i != headers->size; ++i) {
- flattened = h2o_concat(pool, flattened, *headers->entries[i].name, h2o_iovec_init(H2O_STRLIT(": ")),
- headers->entries[i].value, h2o_iovec_init(H2O_STRLIT("\n")));
- }
-
- return h2o_memis(flattened.base, flattened.len, s, len);
-}
-
-static void setup_headers(h2o_mem_pool_t *pool, h2o_headers_t *headers)
-{
- *headers = (h2o_headers_t){NULL};
- h2o_add_header(pool, headers, H2O_TOKEN_CONTENT_TYPE, NULL, H2O_STRLIT("text/plain"));
- h2o_add_header(pool, headers, H2O_TOKEN_CACHE_CONTROL, NULL, H2O_STRLIT("public, max-age=86400"));
- h2o_add_header(pool, headers, H2O_TOKEN_SET_COOKIE, NULL, H2O_STRLIT("a=b"));
- h2o_add_header_by_str(pool, headers, H2O_STRLIT("x-foo"), 0, NULL, H2O_STRLIT("bar"));
-}
-
-void test_lib__handler__headers_c(void)
-{
- h2o_mem_pool_t pool;
- h2o_headers_t headers;
- h2o_headers_command_t cmd;
- h2o_iovec_t header_str;
-
- h2o_mem_init_pool(&pool);
-
- /* tests using token headers */
- setup_headers(&pool, &headers);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\n")));
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_ADD, &H2O_TOKEN_SET_COOKIE->buf, {H2O_STRLIT("c=d")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(
- &pool, &headers,
- H2O_STRLIT(
- "content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\nset-cookie: c=d\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_APPEND, &H2O_TOKEN_CACHE_CONTROL->buf, {H2O_STRLIT("public")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(
- &pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400, public\nset-cookie: a=b\nx-foo: bar\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_MERGE, &H2O_TOKEN_CACHE_CONTROL->buf, {H2O_STRLIT("public")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_SET, &H2O_TOKEN_CACHE_CONTROL->buf, {H2O_STRLIT("no-cache")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\nset-cookie: a=b\nx-foo: bar\ncache-control: no-cache\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_SETIFEMPTY, &H2O_TOKEN_CACHE_CONTROL->buf, {H2O_STRLIT("no-cache")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\n")));
-
- /* tests using non-token headers */
- header_str = h2o_iovec_init(H2O_STRLIT("x-foo"));
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_ADD, &header_str, {H2O_STRLIT("baz")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(
- &pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\nx-foo: baz\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_APPEND, &header_str, {H2O_STRLIT("bar")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(
- &pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar, bar\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_MERGE, &header_str, {H2O_STRLIT("bar")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_SET, &header_str, {H2O_STRLIT("baz")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: baz\n")));
-
- setup_headers(&pool, &headers);
- cmd = (h2o_headers_command_t){H2O_HEADERS_CMD_SETIFEMPTY, &header_str, {H2O_STRLIT("baz")}};
- h2o_rewrite_headers(&pool, &headers, &cmd);
- ok(headers_are(&pool, &headers,
- H2O_STRLIT("content-type: text/plain\ncache-control: public, max-age=86400\nset-cookie: a=b\nx-foo: bar\n")));
-
- h2o_mem_clear_pool(&pool);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c b/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c
deleted file mode 100644
index 51ebdff6c..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/mimemap.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../../test.h"
-#include "../../../../lib/handler/mimemap.c"
-
-static void test_default_attributes(void)
-{
- h2o_mime_attributes_t attr;
-
- h2o_mimemap_get_default_attributes("text/plain", &attr);
- ok(attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_NORMAL);
-
- h2o_mimemap_get_default_attributes("text/plain; charset=utf-8", &attr);
- ok(attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_NORMAL);
-
- h2o_mimemap_get_default_attributes("application/xhtml+xml", &attr);
- ok(attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_NORMAL);
-
- h2o_mimemap_get_default_attributes("application/xhtml+xml; charset=utf-8", &attr);
- ok(attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_NORMAL);
-
- h2o_mimemap_get_default_attributes("text/css", &attr);
- ok(attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_HIGHEST);
-
- h2o_mimemap_get_default_attributes("text/css; charset=utf-8", &attr);
- ok(attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_HIGHEST);
-
- h2o_mimemap_get_default_attributes("application/octet-stream", &attr);
- ok(!attr.is_compressible);
- ok(attr.priority == H2O_MIME_ATTRIBUTE_PRIORITY_NORMAL);
-}
-
-static int is_mimetype(h2o_mimemap_type_t *type, const char *expected)
-{
- return type->type == H2O_MIMEMAP_TYPE_MIMETYPE && type->data.mimetype.len == strlen(expected) &&
- memcmp(type->data.mimetype.base, expected, type->data.mimetype.len) == 0;
-}
-
-static void test_basic()
-{
- h2o_mimemap_t *mimemap = h2o_mimemap_create(), *mimemap2;
-
- subtest("default-attributes", test_default_attributes);
-
- /* default and set default */
- ok(is_mimetype(h2o_mimemap_get_default_type(mimemap), "application/octet-stream"));
- {
- char buf[sizeof("text/plain")];
- strcpy(buf, "text/plain");
- h2o_mimemap_set_default_type(mimemap, buf, NULL);
- memset(buf, 0, sizeof(buf));
- }
- ok(is_mimetype(h2o_mimemap_get_default_type(mimemap), "text/plain"));
-
- /* set and overwrite */
- h2o_mimemap_define_mimetype(mimemap, "foo", "example/foo", NULL);
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))), "example/foo"));
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("FOO"))), "example/foo"));
- ok(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))) ==
- h2o_mimemap_get_type_by_mimetype(mimemap, h2o_iovec_init(H2O_STRLIT("example/foo")), 0));
- h2o_mimemap_define_mimetype(mimemap, "foo", "example/overwritten", NULL);
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))), "example/overwritten"));
- ok(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))) ==
- h2o_mimemap_get_type_by_mimetype(mimemap, h2o_iovec_init(H2O_STRLIT("example/overwritten")), 0));
- ok(h2o_mimemap_get_type_by_mimetype(mimemap, h2o_iovec_init(H2O_STRLIT("example/foo")), 0) == NULL);
-
- /* clone and release */
- mimemap2 = h2o_mimemap_clone(mimemap);
- ok(is_mimetype(h2o_mimemap_get_default_type(mimemap2), "text/plain"));
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap2, h2o_iovec_init(H2O_STRLIT("foo"))), "example/overwritten"));
- ok(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))) ==
- h2o_mimemap_get_type_by_mimetype(mimemap, h2o_iovec_init(H2O_STRLIT("example/overwritten")), 0));
- h2o_mem_release_shared(mimemap2);
-
- /* check original */
- ok(is_mimetype(h2o_mimemap_get_default_type(mimemap), "text/plain"));
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))), "example/overwritten"));
-
- /* remove */
- h2o_mimemap_remove_type(mimemap, "foo");
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))), "text/plain"));
- ok(h2o_mimemap_get_type_by_mimetype(mimemap, h2o_iovec_init(H2O_STRLIT("example/overwritten")), 0) == NULL);
- h2o_mimemap_remove_type(mimemap, "foo");
- ok(is_mimetype(h2o_mimemap_get_type_by_extension(mimemap, h2o_iovec_init(H2O_STRLIT("foo"))), "text/plain"));
-
- h2o_mem_release_shared(mimemap);
-}
-
-static void test_dynamic()
-{
- h2o_mimemap_t *mimemap = h2o_mimemap_create();
- const char *exts[] = {".php", NULL};
- h2o_globalconf_t global = {NULL};
- h2o_mimemap_define_dynamic(mimemap, exts, &global);
- h2o_mem_release_shared(mimemap);
-}
-
-void test_lib__handler__mimemap_c()
-{
- subtest("basic", test_basic);
- subtest("dynamic", test_dynamic);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c b/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c
deleted file mode 100644
index 90cb987d3..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/handler/redirect.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdlib.h>
-#include "../../test.h"
-#include "../../../../lib/handler/redirect.c"
-
-static h2o_context_t ctx;
-
-static int check_header(h2o_res_t *res, const h2o_token_t *header_name, const char *expected)
-{
- size_t index = h2o_find_header(&res->headers, header_name, SIZE_MAX);
- if (index == SIZE_MAX)
- return 0;
- return h2o_lcstris(res->headers.entries[index].value.base, res->headers.entries[index].value.len, expected, strlen(expected));
-}
-
-void test_lib__handler__redirect_c()
-{
- h2o_globalconf_t globalconf;
- h2o_hostconf_t *hostconf;
- h2o_pathconf_t *pathconf;
-
- h2o_config_init(&globalconf);
- hostconf = h2o_config_register_host(&globalconf, h2o_iovec_init(H2O_STRLIT("default")), 65535);
- pathconf = h2o_config_register_path(hostconf, "/", 0);
- h2o_redirect_register(pathconf, 0, 301, "https://example.com/bar/");
-
- h2o_context_init(&ctx, test_loop, &globalconf);
-
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "https://example.com/bar/"));
- ok(conn->body->size != 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/abc"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "https://example.com/bar/abc"));
- ok(conn->body->size != 0);
- h2o_loopback_destroy(conn);
- }
- {
- h2o_loopback_conn_t *conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("HEAD"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
- ok(conn->req.res.status == 301);
- ok(check_header(&conn->req.res, H2O_TOKEN_LOCATION, "https://example.com/bar/"));
- ok(conn->body->size == 0);
- h2o_loopback_destroy(conn);
- }
-
- h2o_context_dispose(&ctx);
- h2o_config_dispose(&globalconf);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c b/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c
deleted file mode 100644
index 3e55d1732..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/cache_digests.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2016 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <string.h>
-#include "../../test.h"
-#include "../../../../lib/http2/cache_digests.c"
-
-static void test_calc_hash(void)
-{
- ok(calc_hash(H2O_STRLIT("https://example.com/style.css"), H2O_STRLIT("")) == 0xbaf9e86f03330860);
- ok(calc_hash(H2O_STRLIT("https://example.com/style.css"), H2O_STRLIT("\"deadbeef\"")) == 0xa53eb398509042d7);
-}
-
-static void test_decode(void)
-{
- h2o_cache_digests_t *digests = NULL;
-
- h2o_cache_digests_load_header(&digests, H2O_STRLIT("AeLA"));
- ok(digests != NULL);
- if (digests == NULL)
- return;
- ok(digests->fresh.url_only.size == 1);
- ok(digests->fresh.url_and_etag.size == 0);
- ok(digests->fresh.url_only.entries[0].capacity_bits == 7);
- ok(digests->fresh.url_only.entries[0].keys.size == 1);
- ok(digests->fresh.url_only.entries[0].keys.entries[0] == 0x0b);
- ok(!digests->fresh.complete);
-
- ok(h2o_cache_digests_lookup_by_url(digests, H2O_STRLIT("https://127.0.0.1.xip.io:8081/cache-digests.cgi/hello.js")) ==
- H2O_CACHE_DIGESTS_STATE_FRESH);
- ok(h2o_cache_digests_lookup_by_url(digests, H2O_STRLIT("https://127.0.0.1.xip.io:8081/notfound.js")) ==
- H2O_CACHE_DIGESTS_STATE_UNKNOWN);
-
- h2o_cache_digests_load_header(&digests, H2O_STRLIT("FOO; stale, AcA; validators; complete"));
- ok(digests->fresh.url_only.size == 1);
- ok(digests->fresh.url_and_etag.size == 1);
- ok(digests->fresh.url_and_etag.entries[0].capacity_bits == 7);
- ok(digests->fresh.url_and_etag.entries[0].keys.size == 0);
- ok(digests->fresh.complete);
-
- ok(h2o_cache_digests_lookup_by_url(digests, H2O_STRLIT("https://127.0.0.1.xip.io:8081/notfound.js")) ==
- H2O_CACHE_DIGESTS_STATE_NOT_CACHED);
- ok(h2o_cache_digests_lookup_by_url(digests, H2O_STRLIT("https://127.0.0.1.xip.io:8081/cache-digests.cgi/hello.js")) ==
- H2O_CACHE_DIGESTS_STATE_FRESH);
-
- h2o_cache_digests_load_header(&digests, H2O_STRLIT("AcA; reset"));
- ok(digests->fresh.url_only.size == 1);
- ok(digests->fresh.url_and_etag.size == 0);
- ok(digests->fresh.url_only.entries[0].capacity_bits == 7);
- ok(digests->fresh.url_only.entries[0].keys.size == 0);
- ok(!digests->fresh.complete);
-
- h2o_cache_digests_destroy(digests);
-}
-
-void test_lib__http2__cache_digests(void)
-{
- subtest("calc_hash", test_calc_hash);
- subtest("test_decode", test_decode);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c b/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c
deleted file mode 100644
index 5b2a43a5e..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/casper.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <string.h>
-#include "../../test.h"
-#include "../../../../lib/http2/casper.c"
-
-static size_t get_end_of_cookie_value(char *cookie, size_t cookie_len)
-{
- size_t i;
- for (i = 0; i != cookie_len; ++i)
- if (cookie[i] == ';')
- break;
- return i;
-}
-
-static void test_calc_key(void)
-{
- h2o_http2_casper_t *casper = h2o_http2_casper_create(13, 6);
-
- unsigned key = calc_key(casper, H2O_STRLIT("/index.html")), expected;
- memcpy(&expected, "\x14\xfe\x45\x59", 4);
- expected &= (1 << 13) - 1;
- ok(key == expected);
-
- h2o_http2_casper_destroy(casper);
-}
-
-static void test_lookup(void)
-{
- h2o_http2_casper_t *casper;
- casper = h2o_http2_casper_create(13, 6);
-
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 0) == 0);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 1) == 0);
- ok(casper->keys.size == 1);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 0) == 1);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 1) == 1);
- ok(casper->keys.size == 1);
-
- h2o_http2_casper_destroy(casper);
-}
-
-static void test_cookie(void)
-{
- h2o_http2_casper_t *casper;
-
- casper = h2o_http2_casper_create(13, 6);
-
- h2o_iovec_t cookie = h2o_http2_casper_get_cookie(casper);
- ok(cookie.base == NULL);
- ok(cookie.len == 0);
-
- h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 1);
- cookie = h2o_http2_casper_get_cookie(casper);
- ok(cookie.len != 0);
- cookie = h2o_strdup(NULL, cookie.base, cookie.len);
- h2o_http2_casper_destroy(casper);
- casper = h2o_http2_casper_create(13, 6);
-
- h2o_http2_casper_consume_cookie(casper, cookie.base, get_end_of_cookie_value(cookie.base, cookie.len));
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 0) == 1);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.php"), 0) == 0);
- h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.php"), 1);
-
- h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 1);
- cookie = h2o_http2_casper_get_cookie(casper);
- ok(cookie.len != 0);
- cookie = h2o_strdup(NULL, cookie.base, cookie.len);
-
- h2o_http2_casper_destroy(casper);
- casper = h2o_http2_casper_create(13, 6);
-
- h2o_http2_casper_consume_cookie(casper, cookie.base, get_end_of_cookie_value(cookie.base, cookie.len));
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 0) == 1);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.php"), 0) == 1);
-
- h2o_http2_casper_destroy(casper);
-}
-
-static void test_cookie_merge(void)
-{
- h2o_http2_casper_t *casper;
-
- casper = h2o_http2_casper_create(13, 6);
- h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 1);
- h2o_iovec_t cookie1 = h2o_http2_casper_get_cookie(casper);
- cookie1 = h2o_strdup(NULL, cookie1.base, cookie1.len);
- h2o_http2_casper_destroy(casper);
-
- casper = h2o_http2_casper_create(13, 6);
- h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.php"), 1);
- h2o_iovec_t cookie2 = h2o_http2_casper_get_cookie(casper);
- cookie2 = h2o_strdup(NULL, cookie2.base, cookie2.len);
- h2o_http2_casper_destroy(casper);
-
- casper = h2o_http2_casper_create(13, 6);
- h2o_http2_casper_consume_cookie(casper, cookie1.base, get_end_of_cookie_value(cookie1.base, cookie1.len));
- h2o_http2_casper_consume_cookie(casper, cookie1.base, get_end_of_cookie_value(cookie1.base, cookie1.len));
- ok(casper->keys.size == 1);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 0) == 1);
- h2o_http2_casper_consume_cookie(casper, cookie2.base, get_end_of_cookie_value(cookie2.base, cookie2.len));
- ok(casper->keys.size == 2);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.html"), 0) == 1);
- ok(h2o_http2_casper_lookup(casper, H2O_STRLIT("/index.php"), 0) == 1);
- h2o_http2_casper_destroy(casper);
-}
-
-void test_lib__http2__casper(void)
-{
- subtest("calc_key", test_calc_key);
- subtest("test_lookup", test_lookup);
- subtest("cookie", test_cookie);
- subtest("cookie-merge", test_cookie_merge);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c b/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c
deleted file mode 100644
index 059df82c7..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/hpack.c
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <stdarg.h>
-#include "../../test.h"
-#include "../../../../lib/http2/hpack.c"
-
-static void test_request(h2o_iovec_t first_req, h2o_iovec_t second_req, h2o_iovec_t third_req)
-{
- h2o_hpack_header_table_t header_table;
- h2o_req_t req;
- h2o_iovec_t in;
- int r, pseudo_headers_map;
- size_t content_length;
- const char *err_desc = NULL;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 4096;
-
- memset(&req, 0, sizeof(req));
- h2o_mem_init_pool(&req.pool);
- in = first_req;
- r = h2o_hpack_parse_headers(&req, &header_table, (const uint8_t *)in.base, in.len, &pseudo_headers_map, &content_length, NULL,
- &err_desc);
- ok(r == 0);
- ok(req.input.authority.len == 15);
- ok(memcmp(req.input.authority.base, H2O_STRLIT("www.example.com")) == 0);
- ok(req.input.method.len == 3);
- ok(memcmp(req.input.method.base, H2O_STRLIT("GET")) == 0);
- ok(req.input.path.len == 1);
- ok(memcmp(req.input.path.base, H2O_STRLIT("/")) == 0);
- ok(req.input.scheme == &H2O_URL_SCHEME_HTTP);
- ok(req.headers.size == 0);
-
- h2o_mem_clear_pool(&req.pool);
-
- memset(&req, 0, sizeof(req));
- h2o_mem_init_pool(&req.pool);
- in = second_req;
- r = h2o_hpack_parse_headers(&req, &header_table, (const uint8_t *)in.base, in.len, &pseudo_headers_map, &content_length, NULL,
- &err_desc);
- ok(r == 0);
- ok(req.input.authority.len == 15);
- ok(memcmp(req.input.authority.base, H2O_STRLIT("www.example.com")) == 0);
- ok(req.input.method.len == 3);
- ok(memcmp(req.input.method.base, H2O_STRLIT("GET")) == 0);
- ok(req.input.path.len == 1);
- ok(memcmp(req.input.path.base, H2O_STRLIT("/")) == 0);
- ok(req.input.scheme == &H2O_URL_SCHEME_HTTP);
- ok(req.headers.size == 1);
- ok(h2o_memis(req.headers.entries[0].name->base, req.headers.entries[0].name->len, H2O_STRLIT("cache-control")));
- ok(h2o_lcstris(req.headers.entries[0].value.base, req.headers.entries[0].value.len, H2O_STRLIT("no-cache")));
-
- h2o_mem_clear_pool(&req.pool);
-
- memset(&req, 0, sizeof(req));
- h2o_mem_init_pool(&req.pool);
- in = third_req;
- r = h2o_hpack_parse_headers(&req, &header_table, (const uint8_t *)in.base, in.len, &pseudo_headers_map, &content_length, NULL,
- &err_desc);
- ok(r == 0);
- ok(req.input.authority.len == 15);
- ok(memcmp(req.input.authority.base, H2O_STRLIT("www.example.com")) == 0);
- ok(req.input.method.len == 3);
- ok(memcmp(req.input.method.base, H2O_STRLIT("GET")) == 0);
- ok(req.input.path.len == 11);
- ok(memcmp(req.input.path.base, H2O_STRLIT("/index.html")) == 0);
- ok(req.input.scheme == &H2O_URL_SCHEME_HTTPS);
- ok(req.headers.size == 1);
- ok(h2o_memis(req.headers.entries[0].name->base, req.headers.entries[0].name->len, H2O_STRLIT("custom-key")));
- ok(h2o_lcstris(req.headers.entries[0].value.base, req.headers.entries[0].value.len, H2O_STRLIT("custom-value")));
-
- h2o_hpack_dispose_header_table(&header_table);
- h2o_mem_clear_pool(&req.pool);
-}
-
-static void check_flatten(h2o_hpack_header_table_t *header_table, h2o_res_t *res, const char *expected, size_t expected_len)
-{
- h2o_buffer_t *buf;
- h2o_http2_frame_t frame;
- const char *err_desc;
-
- h2o_buffer_init(&buf, &h2o_socket_buffer_prototype);
- h2o_hpack_flatten_response(&buf, header_table, 1, H2O_HTTP2_SETTINGS_DEFAULT.max_frame_size, res, NULL, NULL, SIZE_MAX);
-
- ok(h2o_http2_decode_frame(&frame, (uint8_t *)buf->bytes, buf->size, &H2O_HTTP2_SETTINGS_DEFAULT, &err_desc) > 0);
- ok(h2o_memis(frame.payload, frame.length, expected, expected_len));
-
- h2o_buffer_dispose(&buf);
-}
-
-static void test_hpack(void)
-{
- h2o_mem_pool_t pool;
- const char *err_desc;
-
- h2o_mem_init_pool(&pool);
-
- note("decode_int");
- {
- h2o_iovec_t in;
- const uint8_t *p;
- int32_t out;
-#define TEST(input, output) \
- in = h2o_iovec_init(H2O_STRLIT(input)); \
- p = (const uint8_t *)in.base; \
- out = decode_int(&p, p + in.len, 7); \
- ok(out == output); \
- ok(p == (const uint8_t *)in.base + in.len);
- TEST("\x00", 0);
- TEST("\x03", 3);
- TEST("\x81", 1);
- TEST("\x7f\x00", 127);
- TEST("\x7f\x01", 128);
- TEST("\x7f\x7f", 254);
- TEST("\x7f\x81\x00", 128);
- TEST("\x7f\x80\x01", 255);
- TEST("\x7f\xff\xff\xff\x7f", 0xfffffff + 127);
- /* failures */
- TEST("", -1);
- TEST("\x7f", -1);
- TEST("\x7f\xff", -1);
- TEST("\x7f\xff\xff\xff\xff", -1);
-#undef TEST
- }
-
- note("encode_int");
- {
- uint8_t buf[16];
- size_t len;
-#define TEST(encoded, value) \
- memset(buf, 0, sizeof(buf)); \
- len = encode_int(buf, value, 7) - buf; \
- ok(len == sizeof(encoded) - 1); \
- ok(memcmp(buf, encoded, sizeof(encoded) - 1) == 0);
- TEST("\x00", 0);
- TEST("\x03", 3);
- TEST("\x7e", 126);
- TEST("\x7f\x00", 127);
- TEST("\x7f\x01", 128);
- TEST("\x7f\x7f", 254);
- TEST("\x7f\x80\x01", 255);
- TEST("\x7f\xff\xff\xff\x7f", 0xfffffff + 127);
-#undef TEST
- }
-
- note("decode_huffman");
- {
- h2o_iovec_t huffcode = {H2O_STRLIT("\xf1\xe3\xc2\xe5\xf2\x3a\x6b\xa0\xab\x90\xf4\xff")};
- uint8_t flags = 0;
- h2o_iovec_t *decoded = decode_huffman(&pool, (const uint8_t *)huffcode.base, huffcode.len, &flags);
- ok(decoded->len == sizeof("www.example.com") - 1);
- ok(strcmp(decoded->base, "www.example.com") == 0);
- ok(flags == 0);
- }
- h2o_mem_clear_pool(&pool);
-
- note("decode_string_bogus");
- {
- char *str = "\x8c\xf1\xe3\xc2\xe5\xf2\x3a\x6b\xa0\xab\x90\xf4\xff";
- const uint8_t *buf;
- const char *errstr = NULL;
- size_t len;
- len = strlen(str);
- buf = (const uint8_t *)str;
- /* since we're only passing one byte, decode_string should fail */
- h2o_iovec_t *decoded = decode_string(&pool, &buf, &buf[1], 0, &errstr);
- ok(decoded == NULL);
- }
- h2o_mem_clear_pool(&pool);
-
- note("decode_header (literal header field with indexing)");
- {
- struct st_h2o_decode_header_result_t result;
- h2o_hpack_header_table_t header_table;
- h2o_iovec_t in;
- int r;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 4096;
- in = h2o_iovec_init(
- H2O_STRLIT("\x40\x0a\x63\x75\x73\x74\x6f\x6d\x2d\x6b\x65\x79\x0d\x63\x75\x73\x74\x6f\x6d\x2d\x68\x65\x61\x64\x65\x72"));
- const uint8_t *p = (const uint8_t *)in.base;
- err_desc = NULL;
- r = decode_header(&pool, &result, &header_table, &p, p + in.len, &err_desc);
- ok(r == 0);
- ok(result.name->len == 10);
- ok(strcmp(result.name->base, "custom-key") == 0);
- ok(result.value->len == 13);
- ok(strcmp(result.value->base, "custom-header") == 0);
- ok(header_table.hpack_size == 55);
- }
- h2o_mem_clear_pool(&pool);
-
- note("decode_header (literal header field without indexing)");
- {
- struct st_h2o_decode_header_result_t result;
- h2o_hpack_header_table_t header_table;
- h2o_iovec_t in;
- int r;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 4096;
- in = h2o_iovec_init(H2O_STRLIT("\x04\x0c\x2f\x73\x61\x6d\x70\x6c\x65\x2f\x70\x61\x74\x68"));
- const uint8_t *p = (const uint8_t *)in.base;
- err_desc = NULL;
- r = decode_header(&pool, &result, &header_table, &p, p + in.len, &err_desc);
- ok(r == 0);
- ok(result.name == &H2O_TOKEN_PATH->buf);
- ok(result.value->len == 12);
- ok(strcmp(result.value->base, "/sample/path") == 0);
- ok(header_table.hpack_size == 0);
- }
- h2o_mem_clear_pool(&pool);
-
- note("decode_header (literal header field never indexed)");
- {
- struct st_h2o_decode_header_result_t result;
- h2o_hpack_header_table_t header_table;
- h2o_iovec_t in;
- int r;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 4096;
- in = h2o_iovec_init(H2O_STRLIT("\x10\x08\x70\x61\x73\x73\x77\x6f\x72\x64\x06\x73\x65\x63\x72\x65\x74"));
- const uint8_t *p = (const uint8_t *)in.base;
- err_desc = NULL;
- r = decode_header(&pool, &result, &header_table, &p, p + in.len, &err_desc);
- ok(r == 0);
- ok(result.name->len == 8);
- ok(strcmp(result.name->base, "password") == 0);
- ok(result.value->len == 6);
- ok(strcmp(result.value->base, "secret") == 0);
- ok(header_table.hpack_size == 0);
- }
- h2o_mem_clear_pool(&pool);
-
- note("decode_header (indexed header field)");
- {
- struct st_h2o_decode_header_result_t result;
- h2o_hpack_header_table_t header_table;
- h2o_iovec_t in;
- int r;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 4096;
- in = h2o_iovec_init(H2O_STRLIT("\x82"));
- const uint8_t *p = (const uint8_t *)in.base;
- err_desc = NULL;
- r = decode_header(&pool, &result, &header_table, &p, p + in.len, &err_desc);
- ok(r == 0);
- ok(result.name == &H2O_TOKEN_METHOD->buf);
- ok(result.value->len == 3);
- ok(strcmp(result.value->base, "GET") == 0);
- ok(header_table.hpack_size == 0);
- }
- h2o_mem_clear_pool(&pool);
-
- note("request examples without huffman coding");
- test_request(h2o_iovec_init(H2O_STRLIT("\x82\x86\x84\x41\x0f\x77\x77\x77\x2e\x65\x78\x61\x6d\x70\x6c\x65\x2e\x63\x6f\x6d")),
- h2o_iovec_init(H2O_STRLIT("\x82\x86\x84\xbe\x58\x08\x6e\x6f\x2d\x63\x61\x63\x68\x65")),
- h2o_iovec_init(H2O_STRLIT("\x82\x87\x85\xbf\x40\x0a\x63\x75\x73\x74\x6f\x6d\x2d\x6b\x65\x79\x0c\x63\x75\x73\x74"
- "\x6f\x6d\x2d\x76\x61\x6c\x75\x65")));
-
- note("request examples with huffman coding");
- test_request(h2o_iovec_init(H2O_STRLIT("\x82\x86\x84\x41\x8c\xf1\xe3\xc2\xe5\xf2\x3a\x6b\xa0\xab\x90\xf4\xff")),
- h2o_iovec_init(H2O_STRLIT("\x82\x86\x84\xbe\x58\x86\xa8\xeb\x10\x64\x9c\xbf")),
- h2o_iovec_init(H2O_STRLIT(
- "\x82\x87\x85\xbf\x40\x88\x25\xa8\x49\xe9\x5b\xa9\x7d\x7f\x89\x25\xa8\x49\xe9\x5b\xb8\xe8\xb4\xbf")));
-
- note("encode_huffman");
- {
- h2o_iovec_t huffcode = {H2O_STRLIT("\xf1\xe3\xc2\xe5\xf2\x3a\x6b\xa0\xab\x90\xf4\xff")};
- char buf[sizeof("www.example.com")];
- size_t l = encode_huffman((uint8_t *)buf, (uint8_t *)H2O_STRLIT("www.example.com"));
- ok(l == huffcode.len);
- ok(memcmp(buf, huffcode.base, huffcode.len) == 0);
- }
-
- note("response examples with huffmann coding");
- {
- h2o_hpack_header_table_t header_table;
- h2o_res_t res;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 256;
-
- memset(&res, 0, sizeof(res));
- res.status = 302;
- res.reason = "Found";
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_CACHE_CONTROL, NULL, H2O_STRLIT("private"));
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_DATE, NULL, H2O_STRLIT("Mon, 21 Oct 2013 20:13:21 GMT"));
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_LOCATION, NULL, H2O_STRLIT("https://www.example.com"));
- check_flatten(&header_table, &res, H2O_STRLIT("\x08\x03\x33\x30\x32\x58\x85\xae\xc3\x77\x1a\x4b\x61\x96\xd0\x7a\xbe\x94\x10"
- "\x54\xd4\x44\xa8\x20\x05\x95\x04\x0b\x81\x66\xe0\x82\xa6\x2d\x1b\xff\x6e\x91"
- "\x9d\x29\xad\x17\x18\x63\xc7\x8f\x0b\x97\xc8\xe9\xae\x82\xae\x43\xd3"));
-
- memset(&res, 0, sizeof(res));
- res.status = 307;
- res.reason = "Temporary Redirect";
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_CACHE_CONTROL, NULL, H2O_STRLIT("private"));
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_DATE, NULL, H2O_STRLIT("Mon, 21 Oct 2013 20:13:21 GMT"));
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_LOCATION, NULL, H2O_STRLIT("https://www.example.com"));
- check_flatten(&header_table, &res, H2O_STRLIT("\x08\x03\x33\x30\x37\xc0\xbf\xbe"));
-#if 0
- h2o_iovec_init(H2O_STRLIT("\x48\x03\x33\x30\x37\xc1\xc0\xbf")),
- h2o_iovec_init(H2O_STRLIT("\x88\xc1\x61\x1d\x4d\x6f\x6e\x2c\x20\x32\x31\x20\x4f\x63\x74\x20\x32\x30\x31\x33\x20\x32\x30\x3a\x31\x33\x3a\x32\x32\x20\x47\x4d\x54\xc0\x5a\x04\x67\x7a\x69\x70\x77\x38\x66\x6f\x6f\x3d\x41\x53\x44\x4a\x4b\x48\x51\x4b\x42\x5a\x58\x4f\x51\x57\x45\x4f\x50\x49\x55\x41\x58\x51\x57\x45\x4f\x49\x55\x3b\x20\x6d\x61\x78\x2d\x61\x67\x65\x3d\x33\x36\x30\x30\x3b\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x31")));
-#endif
- }
-
- h2o_mem_clear_pool(&pool);
-}
-
-static void parse_and_compare_request(h2o_hpack_header_table_t *ht, const char *promise_base, size_t promise_len,
- h2o_iovec_t expected_method, const h2o_url_scheme_t *expected_scheme,
- h2o_iovec_t expected_authority, h2o_iovec_t expected_path, ...)
-{
- h2o_req_t req = {NULL};
- h2o_mem_init_pool(&req.pool);
-
- int pseudo_header_exists_map = 0;
- size_t content_length = SIZE_MAX;
- const char *err_desc = NULL;
- int r = h2o_hpack_parse_headers(&req, ht, (void *)(promise_base + 13), promise_len - 13, &pseudo_header_exists_map,
- &content_length, NULL, &err_desc);
- ok(r == 0);
- ok(h2o_memis(req.input.method.base, req.input.method.len, expected_method.base, expected_method.len));
- ok(req.input.scheme == expected_scheme);
- ok(h2o_memis(req.input.authority.base, req.input.authority.len, expected_authority.base, expected_authority.len));
- ok(h2o_memis(req.input.path.base, req.input.path.len, expected_path.base, expected_path.len));
-
- va_list args;
- va_start(args, expected_path);
- size_t i;
- for (i = 0; i != req.headers.size; ++i) {
- h2o_iovec_t expected_name = va_arg(args, h2o_iovec_t);
- if (expected_name.base == NULL)
- break;
- h2o_iovec_t expected_value = va_arg(args, h2o_iovec_t);
- ok(h2o_memis(req.headers.entries[i].name->base, req.headers.entries[i].name->len, expected_name.base, expected_name.len));
- ok(h2o_memis(req.headers.entries[i].value.base, req.headers.entries[i].value.len, expected_value.base, expected_value.len));
- }
- ok(i == req.headers.size);
- va_end(args);
-
- h2o_mem_clear_pool(&req.pool);
-}
-
-static void test_hpack_push(void)
-{
- const static h2o_iovec_t method = {H2O_STRLIT("GET")}, authority = {H2O_STRLIT("example.com")},
- user_agent = {H2O_STRLIT(
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:40.0) Gecko/20100101 Firefox/40.0")},
- accept_root = {H2O_STRLIT("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")},
- accept_images = {H2O_STRLIT("image/png,image/*;q=0.8,*/*;q=0.5")},
- accept_language = {H2O_STRLIT("ja,en-US;q=0.7,en;q=0.3")},
- accept_encoding = {H2O_STRLIT("gzip, deflate")}, referer = {H2O_STRLIT("https://example.com/")};
-
- h2o_hpack_header_table_t encode_table = {NULL}, decode_table = {NULL};
- encode_table.hpack_capacity = decode_table.hpack_capacity = 4096;
- h2o_req_t req = {NULL};
- h2o_mem_init_pool(&req.pool);
- h2o_buffer_t *buf;
- h2o_buffer_init(&buf, &h2o_socket_buffer_prototype);
-
- /* setup first request */
- req.input.method = method;
- req.input.scheme = &H2O_URL_SCHEME_HTTPS;
- req.input.authority = authority;
- req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_USER_AGENT, NULL, user_agent.base, user_agent.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_ACCEPT, NULL, accept_root.base, accept_root.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_ACCEPT_LANGUAGE, NULL, accept_language.base, accept_language.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_ACCEPT_ENCODING, NULL, accept_encoding.base, accept_encoding.len);
-
- /* serialize, deserialize, and compare */
- h2o_hpack_flatten_request(&buf, &encode_table, 0, 16384, &req, 0);
- parse_and_compare_request(&decode_table, buf->bytes, buf->size, method, &H2O_URL_SCHEME_HTTPS, authority,
- h2o_iovec_init(H2O_STRLIT("/")), H2O_TOKEN_USER_AGENT->buf, user_agent, H2O_TOKEN_ACCEPT->buf,
- accept_root, H2O_TOKEN_ACCEPT_LANGUAGE->buf, accept_language, H2O_TOKEN_ACCEPT_ENCODING->buf,
- accept_encoding, (h2o_iovec_t){NULL});
- h2o_buffer_consume(&buf, buf->size);
-
- /* setup second request */
- req.input.path = h2o_iovec_init(H2O_STRLIT("/banner.jpg"));
- req.headers = (h2o_headers_t){NULL};
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_USER_AGENT, NULL, user_agent.base, user_agent.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_ACCEPT, NULL, accept_images.base, accept_images.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_ACCEPT_LANGUAGE, NULL, accept_language.base, accept_language.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_ACCEPT_ENCODING, NULL, accept_encoding.base, accept_encoding.len);
- h2o_add_header(&req.pool, &req.headers, H2O_TOKEN_REFERER, NULL, referer.base, referer.len);
-
- /* serialize, deserialize, and compare */
- h2o_hpack_flatten_request(&buf, &encode_table, 0, 16384, &req, 0);
- parse_and_compare_request(
- &decode_table, buf->bytes, buf->size, method, &H2O_URL_SCHEME_HTTPS, authority, h2o_iovec_init(H2O_STRLIT("/banner.jpg")),
- H2O_TOKEN_USER_AGENT->buf, user_agent, H2O_TOKEN_ACCEPT->buf, accept_images, H2O_TOKEN_ACCEPT_LANGUAGE->buf,
- accept_language, H2O_TOKEN_ACCEPT_ENCODING->buf, accept_encoding, H2O_TOKEN_REFERER->buf, referer, (h2o_iovec_t){NULL});
- h2o_buffer_consume(&buf, buf->size);
-
- /* setup third request (headers are the same) */
- req.input.path = h2o_iovec_init(H2O_STRLIT("/icon.png"));
-
- /* serialize, deserialize, and compare */
- h2o_hpack_flatten_request(&buf, &encode_table, 0, 16384, &req, 0);
- parse_and_compare_request(&decode_table, buf->bytes, buf->size, method, &H2O_URL_SCHEME_HTTPS, authority,
- h2o_iovec_init(H2O_STRLIT("/icon.png")), H2O_TOKEN_USER_AGENT->buf, user_agent, H2O_TOKEN_ACCEPT->buf,
- accept_images, H2O_TOKEN_ACCEPT_LANGUAGE->buf, accept_language, H2O_TOKEN_ACCEPT_ENCODING->buf,
- accept_encoding, H2O_TOKEN_REFERER->buf, referer, (h2o_iovec_t){NULL});
- h2o_buffer_consume(&buf, buf->size);
-
- h2o_buffer_dispose(&buf);
- h2o_mem_clear_pool(&req.pool);
-}
-
-static void test_hpack_dynamic_table(void)
-{
- h2o_hpack_header_table_t header_table;
- uint8_t encoded[256], *p;
- h2o_iovec_t n, v;
-
- memset(&header_table, 0, sizeof(header_table));
- header_table.hpack_capacity = 4096;
-
- p = encoded;
- /* expected: literal header with incremental indexing (name not indexed) */
- n = h2o_iovec_init(H2O_STRLIT("x-name"));
- v = h2o_iovec_init(H2O_STRLIT("v1"));
- p = encode_header(&header_table, p, &n, &v);
- /* expected: literal header with incremental indexing (name indexed) */
- v = h2o_iovec_init(H2O_STRLIT("v2"));
- p = encode_header(&header_table, p, &n, &v);
- /* expected: literal header with incremental indexing (name indexed, referring to the name associated with v2) */
- v = h2o_iovec_init(H2O_STRLIT("v3"));
- p = encode_header(&header_table, p, &n, &v);
- /* expected: indexed header field */
- v = h2o_iovec_init(H2O_STRLIT("v1"));
- p = encode_header(&header_table, p, &n, &v);
-
- const h2o_iovec_t expected = h2o_iovec_init(
- H2O_STRLIT("\x40\x85" /* literal header with incremental indexing (name not indexed, 5 bytes, huffman coded) */
- "\xf2\xb5\x43\xa4\xbf" /* "x-name" */
- "\x02" /* value not compressed, 2 bytes */
- "v1" /* "v1" */
- "\x7e" /* literal header with incremental indexing (name indexed) */
- "\x02" /* value not compressed, 2 bytes */
- "v2" /* "v2" */
- "\x7e" /* literal header with incremental indexing (name indexed, referring to the last entry) */
- "\x02" /* value not compressed, 2 bytes */
- "v3" /* "v3" */
- "\xc0" /* indexed header field */
- ));
- ok(p - encoded == expected.len);
- ok(memcmp(encoded, expected.base, expected.len) == 0);
-}
-
-void test_token_wo_hpack_id(void)
-{
- h2o_mem_pool_t pool;
- h2o_mem_init_pool(&pool);
- h2o_hpack_header_table_t table = {NULL};
- table.hpack_capacity = 4096;
- h2o_res_t res = {0};
- h2o_buffer_t *buf;
- h2o_buffer_init(&buf, &h2o_socket_buffer_prototype);
-
- res.status = 200;
- res.reason = "OK";
- h2o_add_header(&pool, &res.headers, H2O_TOKEN_TE, NULL, H2O_STRLIT("test"));
-
- h2o_hpack_flatten_response(&buf, &table, 1, H2O_HTTP2_SETTINGS_DEFAULT.max_frame_size, &res, NULL, NULL, SIZE_MAX);
- ok(h2o_memis(buf->bytes + 9, buf->size - 9, H2O_STRLIT("\x88" /* :status:200 */
- "\x40\x02" /* literal header w. incremental indexing, raw, TE */
- "te"
- "\x83" /* header value, huffman */
- "IP\x9f" /* test */)));
- h2o_buffer_consume(&buf, buf->size);
- h2o_hpack_flatten_response(&buf, &table, 1, H2O_HTTP2_SETTINGS_DEFAULT.max_frame_size, &res, NULL, NULL, SIZE_MAX);
- ok(h2o_memis(buf->bytes + 9, buf->size - 9, H2O_STRLIT("\x88" /* :status:200 */
- "\xbe" /* te: test, indexed */)));
-
- h2o_buffer_dispose(&buf);
- h2o_hpack_dispose_header_table(&table);
- h2o_mem_clear_pool(&pool);
-}
-
-void test_lib__http2__hpack(void)
-{
- subtest("hpack", test_hpack);
- subtest("hpack-push", test_hpack_push);
- subtest("hpack-dynamic-table", test_hpack_dynamic_table);
- subtest("token-wo-hpack-id", test_token_wo_hpack_id);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c b/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c
deleted file mode 100644
index d643cbf4c..000000000
--- a/web/server/h2o/libh2o/t/00unit/lib/http2/scheduler.c
+++ /dev/null
@@ -1,563 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include <string.h>
-#include "../../test.h"
-#include "../../../../lib/http2/scheduler.c"
-
-static void test_queue(void)
-{
- h2o_http2_scheduler_queue_t drr;
- struct node_t {
- h2o_http2_scheduler_queue_node_t super;
- uint16_t weight;
- size_t cnt;
- } w256 = {{{NULL}}, 256}, w128 = {{{NULL}}, 128}, w32 = {{{NULL}}, 32}, w1 = {{{NULL}}, 1};
- size_t i;
-
- queue_init(&drr);
- queue_set(&drr, &w256.super, 256);
- queue_set(&drr, &w128.super, 128);
- queue_set(&drr, &w32.super, 32);
- queue_set(&drr, &w1.super, 1);
-
- for (i = 0; i != (256 + 128 + 32 + 1) * 100; ++i) {
- struct node_t *popped = (struct node_t *)queue_pop(&drr);
- if (popped == NULL) {
- ok(0);
- return;
- }
- ++popped->cnt;
- queue_set(&drr, &popped->super, popped->weight);
- }
-
- ok(w256.cnt == 25600);
- ok(w128.cnt == 12800);
- ok(w32.cnt == 3200);
- ok(w1.cnt == 100);
-}
-
-typedef struct {
- h2o_http2_scheduler_openref_t ref;
- const char *name;
- int still_is_active;
- int bail_out;
-} node_t;
-
-static char output[1024];
-static size_t max_cnt;
-
-static int iterate_cb(h2o_http2_scheduler_openref_t *ref, int *still_is_active, void *_unused)
-{
- node_t *node = (void *)ref;
-
- if (output[0] != '\0')
- strcat(output, ",");
- strcat(output, node->name);
- *still_is_active = node->still_is_active;
-
- if (--max_cnt == 0)
- return 1;
- return node->bail_out;
-}
-
-static void test_round_robin(void)
-{
- h2o_http2_scheduler_node_t root;
- node_t nodeA = {{{NULL}}, "A", 1, 0};
- node_t nodeB = {{{NULL}}, "B", 1, 0};
- node_t nodeC = {{{NULL}}, "C", 1, 0};
-
- h2o_http2_scheduler_init(&root);
- h2o_http2_scheduler_open(&nodeA.ref, &root, 1, 0);
- h2o_http2_scheduler_open(&nodeB.ref, &root, 1, 0);
- h2o_http2_scheduler_open(&nodeC.ref, &root, 1, 0);
-
- /* none are active */
- output[0] = '\0';
- max_cnt = 4;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "") == 0);
-
- /* set A to active */
- h2o_http2_scheduler_activate(&nodeA.ref);
- output[0] = '\0';
- max_cnt = 4;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A,A,A,A") == 0);
-
- /* A should change to inactive */
- nodeA.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 4;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A") == 0);
-
- /* set all to active */
- h2o_http2_scheduler_activate(&nodeA.ref);
- nodeA.still_is_active = 1;
- h2o_http2_scheduler_activate(&nodeB.ref);
- h2o_http2_scheduler_activate(&nodeC.ref);
- output[0] = '\0';
- max_cnt = 7;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A,B,C,A,B,C,A") == 0);
-
- /* change them to inactive */
- nodeA.still_is_active = 0;
- nodeB.still_is_active = 0;
- nodeC.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 4;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "B,C,A") == 0);
-
- /* close C */
- h2o_http2_scheduler_close(&nodeC.ref);
- h2o_http2_scheduler_activate(&nodeA.ref);
- h2o_http2_scheduler_activate(&nodeB.ref);
- output[0] = '\0';
- max_cnt = 4;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A,B") == 0);
-
- h2o_http2_scheduler_close(&nodeA.ref);
- h2o_http2_scheduler_close(&nodeB.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-static void test_priority(void)
-{
- h2o_http2_scheduler_node_t root;
- node_t nodeA = {{{NULL}}, "A", 1, 0};
- node_t nodeB = {{{NULL}}, "B", 1, 0};
- node_t nodeC = {{{NULL}}, "C", 1, 0};
-
- h2o_http2_scheduler_init(&root);
- h2o_http2_scheduler_open(&nodeA.ref, &root, 32, 0);
- h2o_http2_scheduler_activate(&nodeA.ref);
- h2o_http2_scheduler_open(&nodeB.ref, &root, 32, 0);
- h2o_http2_scheduler_activate(&nodeB.ref);
- h2o_http2_scheduler_open(&nodeC.ref, &root, 12, 0);
- h2o_http2_scheduler_activate(&nodeC.ref);
-
- /* should only get the higher ones */
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A,B,A,B,C,A,B,A,B,A,B,C,A,B,A,B,C,A,B,A") == 0);
-
- /* eventually disactivate A */
- nodeA.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 10;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "B,A,B,C,B,B,B,C,B,B") == 0);
-
- /* should start serving C as B gets disactivated */
- nodeB.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 10;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "C,B,C,C,C,C,C,C,C,C") == 0);
-
- h2o_http2_scheduler_close(&nodeA.ref);
- h2o_http2_scheduler_close(&nodeB.ref);
- h2o_http2_scheduler_close(&nodeC.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-static void test_dependency(void)
-{
- h2o_http2_scheduler_node_t root;
- node_t nodeA = {{{NULL}}, "A", 1, 0};
- node_t nodeB = {{{NULL}}, "B", 1, 0};
- node_t nodeC = {{{NULL}}, "C", 1, 0};
- node_t nodeD = {{{NULL}}, "D", 1, 0};
-
- /*
- * root
- * /|\
- * A B C
- * |
- * D
- */
-
- h2o_http2_scheduler_init(&root);
- h2o_http2_scheduler_open(&nodeA.ref, &root, 32, 0);
- h2o_http2_scheduler_activate(&nodeA.ref);
- h2o_http2_scheduler_open(&nodeB.ref, &root, 32, 0);
- h2o_http2_scheduler_activate(&nodeB.ref);
- h2o_http2_scheduler_open(&nodeC.ref, &root, 12, 0);
- h2o_http2_scheduler_activate(&nodeC.ref);
- h2o_http2_scheduler_open(&nodeD.ref, &nodeA.ref.node, 6, 0);
- h2o_http2_scheduler_activate(&nodeD.ref);
-
- /* should get A and B (and some C) */
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A,B,A,B,C,A,B,A,B,A,B,C,A,B,A,B,C,A,B,A") == 0);
-
- /* eventually disactivate A, should get D,B (and some C) */
- nodeA.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "B,A,B,C,D,B,D,B,D,B,C,D,B,D,B,C,D,B,D,B") == 0);
-
- /* eventually disactivate B, should get D only (and some C) */
- nodeB.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "D,B,C,D,D,D,C,D,D,C,D,D,D,C,D,D,C,D,D,D") == 0);
-
- /* closing A raises D, and the priority becomes D = B > C */
- h2o_http2_scheduler_close(&nodeA.ref);
- h2o_http2_scheduler_activate(&nodeB.ref);
- nodeB.still_is_active = 1;
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "D,C,B,D,B,D,B,C,D,B,D,B,D,C,B,D,B,D,B,C") == 0);
-
- h2o_http2_scheduler_close(&nodeB.ref);
- h2o_http2_scheduler_close(&nodeC.ref);
- h2o_http2_scheduler_close(&nodeD.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-static void test_exclusive(void)
-{
- h2o_http2_scheduler_node_t scheduler;
- node_t nodeA = {{{NULL}}, "A", 1, 0};
- node_t nodeB = {{{NULL}}, "B", 1, 0};
- node_t nodeC = {{{NULL}}, "C", 1, 0};
-
- h2o_http2_scheduler_init(&scheduler);
-
- /*
- * root root
- * /\ |
- * A B => C
- * |\
- * A B
- */
-
- /* open A & B */
- h2o_http2_scheduler_open(&nodeA.ref, &scheduler, 32, 0);
- h2o_http2_scheduler_activate(&nodeA.ref);
- h2o_http2_scheduler_open(&nodeB.ref, &scheduler, 32, 0);
- h2o_http2_scheduler_activate(&nodeB.ref);
-
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&scheduler, iterate_cb, NULL);
- ok(strcmp(output, "A,B,A,B,A") == 0);
-
- /* add C as an exclusive */
- h2o_http2_scheduler_open(&nodeC.ref, &scheduler, 12, 1);
-
- /* should get A & B since C is inactive */
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&scheduler, iterate_cb, NULL);
- ok(strcmp(output, "A,B,A,B,A") == 0); /* under current impl, moving the deps causes them to be ordered using _all_ref */
-
- /* should see C once it is activated */
- h2o_http2_scheduler_activate(&nodeC.ref);
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&scheduler, iterate_cb, NULL);
- ok(strcmp(output, "C,C,C,C,C") == 0);
-
- /* eventually disabling C should show A and B */
- nodeC.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&scheduler, iterate_cb, NULL);
- ok(strcmp(output, "C,B,A,B,A") == 0);
-
- h2o_http2_scheduler_close(&nodeA.ref);
- h2o_http2_scheduler_close(&nodeB.ref);
- h2o_http2_scheduler_close(&nodeC.ref);
- h2o_http2_scheduler_dispose(&scheduler);
-}
-
-static void test_firefox(void)
-{
- /*
- * firefox sends something like below
- *
- * PRIORITY: id:3, dependency:0, weight: 201
- * PRIORITY: id:5, dependency:0, weight: 101
- * PRIORITY: id:7, dependency:0, weight: 1
- * PRIORITY: id:9, dependency:7, weight: 1
- * PRIORITY: id:11, dependency:3, weight: 1
- * HEADERS: id:13, dependency:11, weight: 22
- * HEADERS: id:15, dependency:3, weight: 22
- * HEADERS: id:17, dependency:3, weight: 22
- */
- h2o_http2_scheduler_node_t root;
- node_t g1 = {{{NULL}}, "g1", 0, 0};
- node_t g2 = {{{NULL}}, "g2", 0, 0};
- node_t g3 = {{{NULL}}, "g3", 0, 0};
- node_t g4 = {{{NULL}}, "g4", 0, 0};
- node_t g5 = {{{NULL}}, "g5", 0, 0};
- node_t r1 = {{{NULL}}, "r1", 1, 0};
- node_t r2 = {{{NULL}}, "r2", 1, 0};
- node_t r3 = {{{NULL}}, "r3", 1, 0};
-
- h2o_http2_scheduler_init(&root);
-
- /* setup the proirity groups */
- h2o_http2_scheduler_open(&g1.ref, &root, 201, 0);
- h2o_http2_scheduler_open(&g2.ref, &root, 101, 0);
- h2o_http2_scheduler_open(&g3.ref, &root, 1, 0);
- h2o_http2_scheduler_open(&g4.ref, &g3.ref.node, 1, 0);
- h2o_http2_scheduler_open(&g5.ref, &g1.ref.node, 1, 0);
-
- /* open r1 and set serving */
- h2o_http2_scheduler_open(&r1.ref, &g5.ref.node, 22, 0);
- h2o_http2_scheduler_activate(&r1.ref);
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "r1,r1,r1,r1,r1") == 0);
-
- /* open r2,r3 and serve */
- h2o_http2_scheduler_open(&r2.ref, &g1.ref.node, 22, 0);
- h2o_http2_scheduler_activate(&r2.ref);
- h2o_http2_scheduler_open(&r3.ref, &g1.ref.node, 22, 0);
- h2o_http2_scheduler_activate(&r3.ref);
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "r2,r3,r2,r3,r2") == 0);
-
- /* eventually disactive r2,r3 */
- r2.still_is_active = 0;
- r3.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "r3,r2,r1,r1,r1") == 0);
-
- /* close r2,r3 */
- h2o_http2_scheduler_close(&r2.ref);
- h2o_http2_scheduler_close(&r3.ref);
- output[0] = '\0';
- max_cnt = 5;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "r1,r1,r1,r1,r1") == 0);
-
- h2o_http2_scheduler_close(&r1.ref);
-
- h2o_http2_scheduler_close(&g1.ref);
- h2o_http2_scheduler_close(&g2.ref);
- h2o_http2_scheduler_close(&g3.ref);
- h2o_http2_scheduler_close(&g4.ref);
- h2o_http2_scheduler_close(&g5.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-static void dump_tree(h2o_http2_scheduler_node_t *node)
-{
- if (node->_parent != NULL) {
- node_t *n = (void *)node;
- strcat(output, n->name);
- sprintf(output + strlen(output), "%u", (unsigned)h2o_http2_scheduler_get_weight(&n->ref));
- }
-
- if (!h2o_linklist_is_empty(&node->_all_refs)) {
- unsigned weight;
- int found_any = 0;
- for (weight = 256; weight >= 1; --weight) {
- h2o_linklist_t *link;
- for (link = node->_all_refs.next; link != &node->_all_refs; link = link->next) {
- h2o_http2_scheduler_openref_t *ref = H2O_STRUCT_FROM_MEMBER(h2o_http2_scheduler_openref_t, _all_link, link);
- if (ref->weight == weight) {
- if (!found_any) {
- found_any = 1;
- strcat(output, "(");
- }
- dump_tree(&ref->node);
- }
- }
- }
- if (found_any)
- strcat(output, ")");
- }
-}
-
-static int test_reprioritize_exclusive;
-
-static void test_reprioritize(void)
-{
- /* from 5.3.3 of HTTP-2 draft 16
- * ? ? ? ?
- * | / \ | |
- * A D A D D
- * / \ / / \ / \ |
- * B C ==> F B C ==> F A OR A
- * / \ | / \ /|\
- * D E E B C B C F
- * | | |
- * F E E
- * (intermediate) (non-exclusive) (exclusive)
- */
- h2o_http2_scheduler_node_t root;
- node_t a = {{{NULL}}, "A"};
- node_t b = {{{NULL}}, "B"};
- node_t c = {{{NULL}}, "C"};
- node_t d = {{{NULL}}, "D"};
- node_t e = {{{NULL}}, "E"};
- node_t f = {{{NULL}}, "F"};
-
- h2o_http2_scheduler_init(&root);
- h2o_http2_scheduler_open(&a.ref, &root, 6, 0);
- h2o_http2_scheduler_open(&b.ref, &a.ref.node, 5, 0);
- h2o_http2_scheduler_open(&c.ref, &a.ref.node, 4, 0);
- h2o_http2_scheduler_open(&d.ref, &c.ref.node, 3, 0);
- h2o_http2_scheduler_open(&e.ref, &c.ref.node, 2, 0);
- h2o_http2_scheduler_open(&f.ref, &d.ref.node, 1, 0);
-
- output[0] = '\0';
- dump_tree(&root);
- ok(strcmp(output, "(A6(B5C4(D3(F1)E2)))") == 0);
-
- h2o_http2_scheduler_rebind(&a.ref, &d.ref.node, 1, test_reprioritize_exclusive);
- output[0] = '\0';
- dump_tree(&root);
- if (!test_reprioritize_exclusive) {
- ok(strcmp(output, "(D3(F1A1(B5C4(E2))))") == 0);
- } else {
- ok(strcmp(output, "(D3(A1(B5C4(E2)F1)))") == 0);
- }
-
- h2o_http2_scheduler_close(&a.ref);
- h2o_http2_scheduler_close(&b.ref);
- h2o_http2_scheduler_close(&c.ref);
- h2o_http2_scheduler_close(&d.ref);
- h2o_http2_scheduler_close(&e.ref);
- h2o_http2_scheduler_close(&f.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-static void test_change_weight(void)
-{
- h2o_http2_scheduler_node_t root;
- node_t nodeA = {{{NULL}}, "A", 1, 0};
- node_t nodeB = {{{NULL}}, "B", 1, 0};
- node_t nodeC = {{{NULL}}, "C", 1, 0};
-
- h2o_http2_scheduler_init(&root);
-
- /* open them all with priority=16 */
- h2o_http2_scheduler_open(&nodeA.ref, &root, 16, 0);
- h2o_http2_scheduler_activate(&nodeA.ref);
- h2o_http2_scheduler_open(&nodeB.ref, &root, 16, 0);
- h2o_http2_scheduler_activate(&nodeB.ref);
- h2o_http2_scheduler_open(&nodeC.ref, &root, 16, 0);
- h2o_http2_scheduler_activate(&nodeC.ref);
- output[0] = '\0';
- dump_tree(&root);
- ok(strcmp(output, "(A16B16C16)") == 0);
-
- /* check the output */
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "A,B,C,A,B,C,A,B,C,A,B,C,A,B,C,A,B,C,A,B") == 0);
-
- /* nodeA.priority = 4 */
- h2o_http2_scheduler_rebind(&nodeA.ref, &root, 4, 0);
- output[0] = '\0';
- dump_tree(&root);
- ok(strcmp(output, "(B16C16A4)") == 0);
- output[0] = '\0';
- max_cnt = 20;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "C,B,C,B,C,B,C,A,B,C,B,C,B,C,B,C,A,B,C,B") == 0);
-
- /* eventually disactivate B,C */
- nodeB.still_is_active = 0;
- nodeC.still_is_active = 0;
- output[0] = '\0';
- max_cnt = 10;
- h2o_http2_scheduler_run(&root, iterate_cb, NULL);
- ok(strcmp(output, "C,B,A,A,A,A,A,A,A,A") == 0);
-
- h2o_http2_scheduler_close(&nodeA.ref);
- h2o_http2_scheduler_close(&nodeB.ref);
- h2o_http2_scheduler_close(&nodeC.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-static void test_exclusive_at_current_pos(void)
-{
- h2o_http2_scheduler_node_t root;
- node_t nodeA = {{{NULL}}, "A", 1, 0};
- node_t nodeB = {{{NULL}}, "B", 1, 0};
- node_t nodeC = {{{NULL}}, "C", 1, 0};
-
- h2o_http2_scheduler_init(&root);
-
- /* open them all with priority=16 */
- h2o_http2_scheduler_open(&nodeA.ref, &root, 16, 0);
- h2o_http2_scheduler_activate(&nodeA.ref);
- h2o_http2_scheduler_open(&nodeB.ref, &root, 16, 0);
- h2o_http2_scheduler_activate(&nodeB.ref);
- h2o_http2_scheduler_open(&nodeC.ref, &root, 16, 0);
- h2o_http2_scheduler_activate(&nodeC.ref);
-
- output[0] = '\0';
- dump_tree(&root);
- ok(strcmp(output, "(A16B16C16)") == 0);
-
- h2o_http2_scheduler_rebind(&nodeB.ref, &root, 1, 1);
-
- output[0] = '\0';
- dump_tree(&root);
- ok(strcmp(output, "(B1(A16C16))") == 0);
-
- h2o_http2_scheduler_close(&nodeA.ref);
- h2o_http2_scheduler_close(&nodeB.ref);
- h2o_http2_scheduler_close(&nodeC.ref);
- h2o_http2_scheduler_dispose(&root);
-}
-
-void test_lib__http2__scheduler(void)
-{
- subtest("drr", test_queue);
- subtest("round-robin", test_round_robin);
- subtest("priority", test_priority);
- subtest("dependency", test_dependency);
- subtest("exclusive", test_exclusive);
- subtest("firefox", test_firefox);
- test_reprioritize_exclusive = 0;
- subtest("repriortize-nonexclusive", test_reprioritize);
- test_reprioritize_exclusive = 1;
- subtest("repriortize-exclusive", test_reprioritize);
- subtest("change-weight", test_change_weight);
- subtest("exclusive-at-current-pos", test_exclusive_at_current_pos);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/src/ssl.c b/web/server/h2o/libh2o/t/00unit/src/ssl.c
deleted file mode 100644
index 10fb27375..000000000
--- a/web/server/h2o/libh2o/t/00unit/src/ssl.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 2015 DeNA Co., Ltd., Kazuho Oku
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "../test.h"
-#include "../../../src/ssl.c"
-
-const uint64_t UTC2000 = (365 * 30 + 7) * 86400;
-
-static void test_load_tickets_file(void)
-{
- int ret = load_tickets_file("t/assets/session_tickets.yaml");
- ok(ret == 0);
- if (ret != 0)
- return;
-
- pthread_rwlock_rdlock(&session_tickets.rwlock);
- ok(session_tickets.tickets.size == 2);
- if (session_tickets.tickets.size != 2)
- goto Exit;
-
- /* first entry should be the newer one */
- struct st_session_ticket_t *ticket = session_tickets.tickets.entries[0];
- ok(memcmp(ticket->name, H2O_STRLIT("\xe7\xe3\xc6\x98\x0b\x18\x32\xbd\x5d\x23\x91\x75\x72\xe8\x44\x8f")) == 0);
- ok(ticket->cipher.cipher == EVP_aes_256_cbc());
- ok(memcmp(ticket->cipher.key, H2O_STRLIT("\xf6\xe0\x71\xd9\x93\xb0\x5f\x77\xce\x51\xcb\x0f\xe2\xe0\xe1\x8c\x72\x00\xc2\xa7"
- "\x87\x3a\x66\x00\x8c\x8e\x1d\x75\xae\x7b\x8e\x2a")) == 0);
- ok(ticket->hmac.md == EVP_sha256());
- ok(memcmp(ticket->hmac.key,
- H2O_STRLIT("\xf4\xfc\xb8\x6f\xdf\x03\xa7\xf3\x35\x63\x2e\x66\x8a\x8f\xe9\x56\xc5\xbf\xe7\x7a\x41\x41\x2d\x26\x99"
- "\x79\x63\x47\x68\x99\x9a\xdd\x6a\x84\xca\xfe\xa4\x1b\x6b\x2c\x47\xaa\xf1\xa5\x14\xca\x9d\x2a\x84\xf4"
- "\x8d\x1f\x5f\x70\x18\xff\x17\x40\xcf\x9b\x94\x4b\x8f\xcf")) == 0);
- ok(ticket->not_before == 1437093330);
- ok(ticket->not_after == 1437096929);
-
- /* second is the older one */
- ticket = session_tickets.tickets.entries[1];
- ok(memcmp(ticket->name, H2O_STRLIT("\xa3\x97\xb6\xb7\xfa\xb9\x29\x36\x62\x03\xf1\x6f\xc8\x1f\xfb\xed")) == 0);
- ok(ticket->cipher.cipher == EVP_aes_128_cbc());
- ok(memcmp(ticket->cipher.key, H2O_STRLIT("\xf1\xed\x89\xcd\xe6\x87\x63\x63\x0e\x80\xd2\xbe\x82\x7c\xfb\x98")) == 0);
- ok(ticket->hmac.md == EVP_sha1());
- ok(memcmp(ticket->hmac.key,
- H2O_STRLIT("\xe3\xfe\x72\x64\x4f\x64\x31\x5a\x4a\x8a\xd6\x37\x69\xa3\x57\x7c\xce\xc4\xdd\x13\xb2\x0e\xaf\x8c\x00\x88"
- "\x86\xe5\x45\x8d\xb1\x0e\x65\x8c\xf2\xa8\x3f\x04\x40\x3a\xc4\xe9\x80\x35\xd2\x42\x2a\x75\x80\x67\x30\xeb"
- "\x4f\x2f\xee\x12\xfa\xff\x95\x48\x95\xbc\x65\xd1")) == 0);
- ok(ticket->not_before == 1437092430);
- ok(ticket->not_after == 1437096029);
-
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437092429);
- ok(ticket == NULL);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437092430);
- ok(ticket == session_tickets.tickets.entries[1]);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437093329);
- ok(ticket == session_tickets.tickets.entries[1]);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437093330);
- ok(ticket == session_tickets.tickets.entries[0]);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437096029);
- ok(ticket == session_tickets.tickets.entries[0]);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437096030);
- ok(ticket == session_tickets.tickets.entries[0]);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437096929);
- ok(ticket == session_tickets.tickets.entries[0]);
- ticket = find_ticket_for_encryption(&session_tickets.tickets, 1437096930);
- ok(ticket == NULL);
-
-Exit:
- pthread_rwlock_unlock(&session_tickets.rwlock);
- ;
-}
-
-static void test_serialize_tickets(void)
-{
- session_ticket_vector_t orig = {NULL}, parsed = {NULL};
- h2o_iovec_t serialized;
- char errstr[256];
- int ret;
- size_t i;
-
- h2o_vector_reserve(NULL, &orig, orig.size + 2);
- orig.entries[orig.size++] = new_ticket(EVP_aes_256_cbc(), EVP_sha256(), UTC2000, UTC2000 + 3600, 1);
- orig.entries[orig.size++] = new_ticket(EVP_aes_256_cbc(), EVP_sha256(), UTC2000 + 600, UTC2000 + 4200, 1);
-
- serialized = serialize_tickets(&orig);
- ok(serialized.base != NULL);
-
- ret = parse_tickets(&parsed, serialized.base, serialized.len, errstr);
- ok(ret == 0);
-
- ok(parsed.size == orig.size);
- for (i = 0; i != parsed.size; ++i) {
-#define OK_VALUE(n) ok(parsed.entries[i]->n == orig.entries[i]->n)
-#define OK_MEMCMP(n, s) ok(memcmp(parsed.entries[i]->n, orig.entries[i]->n, (s)) == 0)
- OK_MEMCMP(name, sizeof(parsed.entries[i]->name));
- OK_VALUE(cipher.cipher);
- OK_MEMCMP(cipher.key, EVP_CIPHER_key_length(parsed.entries[i]->cipher.cipher));
- OK_VALUE(hmac.md);
- OK_MEMCMP(hmac.key, EVP_MD_block_size(parsed.entries[i]->hmac.md));
- OK_VALUE(not_before);
- OK_VALUE(not_after);
-#undef OK_VALUE
-#undef OK_MEMCMP
- }
-
- free_tickets(&orig);
- free_tickets(&parsed);
- free(serialized.base);
-}
-
-static void test_memcached_ticket_update(void)
-{
-#define TEST_KEY "h2o:session-ticket-test"
-
- const char *memc_port_str;
- uint16_t memc_port;
- yrmcds conn;
- yrmcds_response resp;
- yrmcds_error err;
-
- /* obtain port number (or skip) */
- if ((memc_port_str = getenv("MEMCACHED_PORT")) == NULL) {
- printf("MEMCACHED_PORT is not defined; skipping tests\n");
- return;
- }
- if (sscanf(memc_port_str, "%" SCNu16, &memc_port) != 1) {
- fprintf(stderr, "failed to parse the value of MEMCACHED_PORT\n");
- ok(0);
- return;
- }
- /* connect */
- err = yrmcds_connect(&conn, "127.0.0.1", memc_port);
- ok(err == YRMCDS_OK);
- if (err != YRMCDS_OK)
- return;
- /* delete test key */
- err = yrmcds_remove(&conn, H2O_STRLIT(TEST_KEY), 0, NULL);
- ok(err == YRMCDS_OK);
- if (err != YRMCDS_OK)
- return;
- err = yrmcds_recv(&conn, &resp);
- ok(err == YRMCDS_OK);
- if (err != YRMCDS_OK)
- return;
-
- /* set a new entry that immediately becomes active */
- int retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000);
- ok(retry == 1); /* first attempt should return a retry, since valid ticket does not exist */
- retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000 + 1);
- ok(retry == 0);
- ok(session_tickets.tickets.size == 1);
- ok(session_tickets.tickets.entries[0]->not_before == UTC2000);
-
- /* continue using existing one */
- retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000 + conf.lifetime / 8);
- ok(retry == 0);
- ok(session_tickets.tickets.size == 1);
- ok(session_tickets.tickets.entries[0]->not_before == UTC2000);
-
- /* schedule a new entry */
- retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000 + conf.lifetime / 2);
- ok(retry == 1);
- retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000 + conf.lifetime / 2);
- ok(retry == 0);
- ok(session_tickets.tickets.size == 2);
- ok(session_tickets.tickets.entries[0]->not_before > UTC2000 + conf.lifetime / 2);
- ok(session_tickets.tickets.entries[1]->not_before == UTC2000);
-
- /* old entry gets removed when expired, and new entry is scheduled */
- retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000 + conf.lifetime);
- ok(retry == 1);
- retry = ticket_memcached_update_tickets(&conn, h2o_iovec_init(H2O_STRLIT(TEST_KEY)), UTC2000 + conf.lifetime);
- ok(retry == 0);
- ok(session_tickets.tickets.size == 2);
- ok(session_tickets.tickets.entries[0]->not_before > UTC2000 + conf.lifetime);
- ok(session_tickets.tickets.entries[1]->not_before > UTC2000 + conf.lifetime / 2);
-
- /* disconnect */
- yrmcds_close(&conn);
-}
-
-void test_src__ssl_c(void)
-{
- subtest("load-tickets-file", test_load_tickets_file);
- subtest("serialize-tickets", test_serialize_tickets);
- subtest("memcached-ticket-update", test_memcached_ticket_update);
-}
diff --git a/web/server/h2o/libh2o/t/00unit/test.c b/web/server/h2o/libh2o/t/00unit/test.c
deleted file mode 100644
index a74859d22..000000000
--- a/web/server/h2o/libh2o/t/00unit/test.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#include "h2o.h"
-#include "h2o/configurator.h"
-#include "../../src/standalone.h"
-#include "./test.h"
-
-static void loopback_on_send(h2o_ostream_t *self, h2o_req_t *req, h2o_iovec_t *inbufs, size_t inbufcnt, h2o_send_state_t send_state)
-{
- h2o_loopback_conn_t *conn = H2O_STRUCT_FROM_MEMBER(h2o_loopback_conn_t, _ostr_final, self);
- size_t i;
-
- for (i = 0; i != inbufcnt; ++i) {
- h2o_buffer_reserve(&conn->body, inbufs[i].len);
- memcpy(conn->body->bytes + conn->body->size, inbufs[i].base, inbufs[i].len);
- conn->body->size += inbufs[i].len;
- }
-
- if (h2o_send_state_is_in_progress(send_state))
- h2o_proceed_response(&conn->req);
- else
- conn->_is_complete = 1;
-}
-
-static socklen_t get_sockname(h2o_conn_t *conn, struct sockaddr *sa)
-{
- struct sockaddr_in *sin = (void *)sa;
- sin->sin_family = AF_INET;
- sin->sin_addr.s_addr = htonl(0x7f000001);
- sin->sin_port = htons(80);
- return sizeof(*sin);
-}
-
-static socklen_t get_peername(h2o_conn_t *conn, struct sockaddr *sa)
-{
- struct sockaddr_in *sin = (void *)sa;
- sin->sin_family = AF_INET;
- sin->sin_addr.s_addr = htonl(0x7f000001);
- sin->sin_port = htons(55555);
- return sizeof(*sin);
-}
-
-h2o_loopback_conn_t *h2o_loopback_create(h2o_context_t *ctx, h2o_hostconf_t **hosts)
-{
- static const h2o_conn_callbacks_t callbacks = {get_sockname, get_peername};
- h2o_loopback_conn_t *conn = (void *)h2o_create_connection(sizeof(*conn), ctx, hosts, (struct timeval){0}, &callbacks);
-
- memset((char *)conn + sizeof(conn->super), 0, offsetof(struct st_h2o_loopback_conn_t, req) - sizeof(conn->super));
- conn->super.ctx = ctx;
- conn->super.hosts = hosts;
- conn->super.callbacks = &callbacks;
- h2o_init_request(&conn->req, &conn->super, NULL);
- h2o_buffer_init(&conn->body, &h2o_socket_buffer_prototype);
- conn->req._ostr_top = &conn->_ostr_final;
- conn->_ostr_final.do_send = loopback_on_send;
-
- return conn;
-}
-
-void h2o_loopback_destroy(h2o_loopback_conn_t *conn)
-{
- h2o_buffer_dispose(&conn->body);
- h2o_dispose_request(&conn->req);
- free(conn);
-}
-
-void h2o_loopback_run_loop(h2o_loopback_conn_t *conn)
-{
- if (conn->req.input.scheme == NULL)
- conn->req.input.scheme = &H2O_URL_SCHEME_HTTP;
- if (conn->req.version == 0)
- conn->req.version = 0x100; /* HTTP/1.0 */
-
- h2o_process_request(&conn->req);
-
- while (!conn->_is_complete) {
-#if H2O_USE_LIBUV
- uv_run(conn->super.ctx->loop, UV_RUN_ONCE);
-#else
- h2o_evloop_run(conn->super.ctx->loop, INT32_MAX);
-#endif
- }
-}
-
-char *sha1sum(const void *src, size_t len)
-{
- SHA_CTX ctx;
- unsigned char bin[SHA_DIGEST_LENGTH];
- static char hexbuf[SHA_DIGEST_LENGTH * 2 + 1];
- size_t i;
-
- SHA1_Init(&ctx);
- SHA1_Update(&ctx, src, len);
- SHA1_Final(bin, &ctx);
-
- for (i = 0; i != SHA_DIGEST_LENGTH; ++i) {
- hexbuf[i * 2] = ("0123456789abcdef")[bin[i] >> 4];
- hexbuf[i * 2 + 1] = ("0123456789abcdef")[bin[i] & 0xf];
- }
- hexbuf[i * 2] = '\0';
-
- return hexbuf;
-}
-
-h2o_loop_t *test_loop;
-
-static void test_loopback(void)
-{
- h2o_globalconf_t conf;
- h2o_context_t ctx;
- h2o_loopback_conn_t *conn;
-
- h2o_config_init(&conf);
- h2o_config_register_host(&conf, h2o_iovec_init(H2O_STRLIT("default")), 65535);
- h2o_context_init(&ctx, test_loop, &conf);
-
- conn = h2o_loopback_create(&ctx, ctx.globalconf->hosts);
- conn->req.input.method = h2o_iovec_init(H2O_STRLIT("GET"));
- conn->req.input.path = h2o_iovec_init(H2O_STRLIT("/"));
- h2o_loopback_run_loop(conn);
-
- ok(conn->req.res.status == 404);
-
- h2o_loopback_destroy(conn);
-
- h2o_context_dispose(&ctx);
- h2o_config_dispose(&conf);
-}
-
-int main(int argc, char **argv)
-{
- init_openssl();
-
- { /* library tests */
- subtest("lib/cache.c", test_lib__common__cache_c);
- subtest("lib/common/multithread.c", test_lib__common__multithread_c);
- subtest("lib/common/hostinfo.c", test_lib__common__hostinfo_c);
- subtest("lib/common/serverutil.c", test_lib__common__serverutil_c);
- subtest("lib/common/serverutil.c", test_lib__common__socket_c);
- subtest("lib/common/string.c", test_lib__common__string_c);
- subtest("lib/common/url.c", test_lib__common__url_c);
- subtest("lib/common/time.c", test_lib__common__time_c);
- subtest("lib/core/headers.c", test_lib__core__headers_c);
- subtest("lib/core/proxy.c", test_lib__core__proxy_c);
- subtest("lib/core/util.c", test_lib__core__util_c);
- subtest("lib/handler/headers.c", test_lib__handler__headers_c);
- subtest("lib/handler/mimemap.c", test_lib__handler__mimemap_c);
- subtest("lib/http2/hpack.c", test_lib__http2__hpack);
- subtest("lib/http2/scheduler.c", test_lib__http2__scheduler);
- subtest("lib/http2/casper.c", test_lib__http2__casper);
- subtest("lib/http2/cache_digests.c", test_lib__http2__cache_digests);
- }
-
- { /* tests that use the run loop */
-#if H2O_USE_LIBUV
- test_loop = h2o_mem_alloc(sizeof(*test_loop));
- uv_loop_init(test_loop);
-#else
- test_loop = h2o_evloop_create();
-#endif
-
- subtest("lib/t/test.c/loopback", test_loopback);
- subtest("lib/fastcgi.c", test_lib__handler__fastcgi_c);
- subtest("lib/file.c", test_lib__handler__file_c);
- subtest("lib/gzip.c", test_lib__handler__gzip_c);
- subtest("lib/redirect.c", test_lib__handler__redirect_c);
- subtest("issues/293.c", test_issues293);
- subtest("issues/percent-encode-zero-byte.c", test_percent_encode_zero_byte);
-
-#if H2O_USE_LIBUV
- uv_loop_close(test_loop);
- free(test_loop);
-#else
-// h2o_evloop_destroy(loop);
-#endif
- }
-
- { /* src tests */
- subtest("src/ssl.c", test_src__ssl_c);
- }
-
- return done_testing();
-}
diff --git a/web/server/h2o/libh2o/t/00unit/test.h b/web/server/h2o/libh2o/t/00unit/test.h
deleted file mode 100644
index b1479eba3..000000000
--- a/web/server/h2o/libh2o/t/00unit/test.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2014 DeNA Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-#ifndef h2o__t__test_h
-#define h2o__t__test_h
-
-#include "picotest.h"
-#include "h2o.h"
-
-typedef struct st_h2o_loopback_conn_t {
- h2o_conn_t super;
- /**
- * the response
- */
- h2o_buffer_t *body;
- /* internal structure */
- h2o_ostream_t _ostr_final;
- int _is_complete;
- /**
- * the HTTP request / response (intentionally placed at the last, since it is a large structure and has it's own ctor)
- */
- h2o_req_t req;
-} h2o_loopback_conn_t;
-
-h2o_loopback_conn_t *h2o_loopback_create(h2o_context_t *ctx, h2o_hostconf_t **hosts);
-void h2o_loopback_destroy(h2o_loopback_conn_t *conn);
-void h2o_loopback_run_loop(h2o_loopback_conn_t *conn);
-
-extern h2o_loop_t *test_loop;
-
-char *sha1sum(const void *src, size_t len);
-
-void test_lib__common__cache_c(void);
-void test_lib__common__hostinfo_c(void);
-void test_lib__common__multithread_c(void);
-void test_lib__common__serverutil_c(void);
-void test_lib__common__socket_c(void);
-void test_lib__common__string_c(void);
-void test_lib__common__time_c(void);
-void test_lib__common__url_c(void);
-void test_lib__core__headers_c(void);
-void test_lib__core__proxy_c(void);
-void test_lib__core__util_c(void);
-void test_lib__handler__fastcgi_c(void);
-void test_lib__handler__file_c(void);
-void test_lib__handler__gzip_c(void);
-void test_lib__handler__headers_c(void);
-void test_lib__handler__mimemap_c(void);
-void test_lib__handler__redirect_c(void);
-void test_lib__http2__hpack(void);
-void test_lib__http2__scheduler(void);
-void test_lib__http2__casper(void);
-void test_lib__http2__cache_digests(void);
-void test_src__ssl_c(void);
-void test_issues293(void);
-void test_percent_encode_zero_byte(void);
-
-#endif
diff --git a/web/server/h2o/libh2o/t/10http1client.t b/web/server/h2o/libh2o/t/10http1client.t
deleted file mode 100644
index 7461d146e..000000000
--- a/web/server/h2o/libh2o/t/10http1client.t
+++ /dev/null
@@ -1,13 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-my $fn = bindir() . "/examples-http1client";
-
-plan skip_all => 'http1client not found'
- unless -x $fn;
-
-is(system("$fn http://kazuhooku.com > /dev/null"), 0);
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40bad-request.t b/web/server/h2o/libh2o/t/40bad-request.t
deleted file mode 100644
index 643e1f02d..000000000
--- a/web/server/h2o/libh2o/t/40bad-request.t
+++ /dev/null
@@ -1,28 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => "nc not found"
- unless prog_exists("nc");
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-my $resp;
-
-$resp = `nc 127.0.0.1 $server->{port} < /dev/null 2>&1`;
-is $resp, "", "silent close on empty request";
-
-$resp = `echo "GET / HTTP/1.2\r\na\r\n\r" | nc 127.0.0.1 $server->{port} 2>&1`;
-like $resp, qr{^HTTP/1\.1 400 .*Content-Length:\s*11\r\n\r\nBad Request$}is, "400 on broken request";
-
-$resp = `echo "\r" | nc 127.0.0.1 $server->{port} 2>&1`;
-is $resp, "", "silent close on CRLF";
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40env.t b/web/server/h2o/libh2o/t/40env.t
deleted file mode 100644
index daaa08665..000000000
--- a/web/server/h2o/libh2o/t/40env.t
+++ /dev/null
@@ -1,80 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-subtest "fastcgi" => sub {
- my $server = spawn_h2o(<< "EOT");
-file.custom-handler:
- extension: .cgi
- fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi"
- unsetenv:
- - "foo"
-setenv:
- "global": 123
-hosts:
- default:
- setenv:
- "host": 234
- paths:
- "/":
- setenv:
- "path": 345
- "foo": "abc"
- file.dir: @{[ DOC_ROOT ]}
- "/unset":
- unsetenv: "host"
- file.dir: @{[ DOC_ROOT ]}
-EOT
- subtest "basic" => sub {
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/printenv.cgi`;
- like $resp, qr{^global:123$}m;
- like $resp, qr{^host:234$}m;
- like $resp, qr{^path:345$}m;
- unlike $resp, qr{^foo:}m;
- });
- };
- subtest "unsetenv" => sub {
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/unset/printenv.cgi`;
- like $resp, qr{^global:123$}m;
- unlike $resp, qr{^host:}m;
- unlike $resp, qr{^path:}m;
- unlike $resp, qr{^foo:}m;
- });
- };
-};
-
-subtest "mruby" => sub {
- plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- "/":
- setenv:
- foo: 123
- mruby.handler: |
- Proc.new do |env|
- [
- 200,
- {"content-type" => "text/plain; charset=utf-8"},
- [(env.map {|k, v| k + ":" + String(v) + "\n"}).join]
- ]
- end
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/`;
- like $resp, qr{^foo:123$}m;
- });
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/40max-connections.t b/web/server/h2o/libh2o/t/40max-connections.t
deleted file mode 100644
index 1fa7cbe6a..000000000
--- a/web/server/h2o/libh2o/t/40max-connections.t
+++ /dev/null
@@ -1,80 +0,0 @@
-use strict;
-use warnings;
-use IO::Socket::INET;
-use Test::More;
-use Time::HiRes qw(sleep);
-use t::Util;
-
-my $MAX_CONN = 2;
-my $WAIT = 0.1;
-
-subtest "single-threaded" => sub {
- doit(1);
-};
-subtest "multi-threaded" => sub {
- doit(4);
-};
-
-done_testing;
-
-sub doit {
- my $num_threads = shift;
- my $server = spawn_h2o(<< "EOT");
-num-threads: $num_threads
-max-connections: $MAX_CONN
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- my $port = $server->{port};
- my $tls_port = $server->{tls_port};
-
- # establish connections to the maximum (and write partial requests so that the server would accept(2) the connections)
- my @conns;
- for (1..$MAX_CONN) {
- my $conn = IO::Socket::INET->new(
- PeerAddr => "127.0.0.1:$port",
- Proto => "tcp",
- ) or die "connection failed:$!";
- syswrite($conn, "GET / HTTP/1.0\r\n")
- or die "failed to write partial request:$!";
- push @conns, $conn;
- }
-
- sleep $WAIT;
-
- # create one more connection and send request
- my $blocked_conn = IO::Socket::INET->new(
- PeerAddr => "127.0.0.1:$port",
- Proto => "tcp",
- ) or die "connection failed:$!";
- syswrite($blocked_conn, "GET / HTTP/1.0\r\n\r\n")
- or die "failed to write request:$!";
-
- sleep $WAIT;
-
- ok ! data_ready($blocked_conn), "succeeding conn is not handled";
-
- # close the preceeding connections
- while (@conns) {
- close shift @conns;
- }
-
- sleep $WAIT;
-
- ok data_ready($blocked_conn), "succeeding conn should have been handled";
-
- my $resp = do { local $/; <$blocked_conn> };
- like $resp, qr{^HTTP/1\.1 200 OK\r\n}s, "response is valid";
-}
-
-sub data_ready {
- my $conn = shift;
- my $rfds = '';
- vec($rfds, fileno($conn), 1) = 1;
- my $nfound = select $rfds, undef, undef, 0;
- return $nfound != 0;
-}
diff --git a/web/server/h2o/libh2o/t/40memcached-session-resumption.t b/web/server/h2o/libh2o/t/40memcached-session-resumption.t
deleted file mode 100644
index 129affbe0..000000000
--- a/web/server/h2o/libh2o/t/40memcached-session-resumption.t
+++ /dev/null
@@ -1,62 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => "could not find memcached"
- unless prog_exists("memcached");
-
-plan skip_all => "could not find openssl"
- unless prog_exists("openssl");
-
-my $tempdir = tempdir(CLEANUP => 1);
-
-doit("binary");
-doit("ascii");
-
-done_testing;
-
-sub doit {
- my $memc_proto = shift;
- subtest $memc_proto => sub {
- # start memcached
- my $memc_port = empty_port();
- my $memc_guard = spawn_server(
- argv => [ qw(memcached -l 127.0.0.1 -p), $memc_port, "-B", $memc_proto ],
- is_ready => sub {
- check_port($memc_port);
- },
- );
- # the test
- my $spawn_and_connect = sub {
- my ($opts, $expected) = @_;
- my $server = spawn_h2o(<< "EOT");
-ssl-session-resumption:
- mode: cache
- cache-store: memcached
- memcached:
- host: 127.0.0.1
- port: $memc_port
- protocol: $memc_proto
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
- my $lines = do {
- open my $fh, "-|", "openssl s_client -no_ticket $opts -connect 127.0.0.1:$server->{tls_port} 2>&1 < /dev/null"
- or die "failed to open pipe:$!";
- local $/;
- <$fh>;
- };
- $lines =~ m{---\n(New|Reused),}s
- or die "failed to parse the output of s_client:{{{$lines}}}";
- is $1, $expected;
- };
- $spawn_and_connect->("-sess_out $tempdir/session", "New");
- $spawn_and_connect->("-sess_in $tempdir/session", "Reused");
- };
-}
diff --git a/web/server/h2o/libh2o/t/40protocol.t b/web/server/h2o/libh2o/t/40protocol.t
deleted file mode 100644
index e12f01604..000000000
--- a/web/server/h2o/libh2o/t/40protocol.t
+++ /dev/null
@@ -1,63 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-my %files = map { do {
- my $fn = DOC_ROOT . "/$_";
- +($_ => { size => +(stat $fn)[7], md5 => md5_file($fn) });
-} } qw(index.txt halfdome.jpg);
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-my $port = $server->{port};
-my $tls_port = $server->{tls_port};
-
-subtest 'curl' => sub {
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- for my $file (sort keys %files) {
- my $content = `$curl --silent --show-error $proto://127.0.0.1:$port/$file`;
- is length($content), $files{$file}->{size}, "$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$file (md5)";
- }
- });
-};
-
-subtest 'nghttp' => sub {
- plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
- my $doit = sub {
- my ($proto, $port) = @_;
- my $opt = $proto eq 'http' ? '-u' : '';
- for my $file (sort keys %files) {
- my $content = `nghttp $opt $proto://127.0.0.1:$port/$file`;
- is length($content), $files{$file}->{size}, "$proto://127.0.0.1/$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$proto://127.0.0.1/$file (md5)";
- }
- my $out = `nghttp -u -m 100 $proto://127.0.0.1:$port/index.txt`;
- is $out, "hello\n" x 100, "$proto://127.0.0.1/index.txt x 100 times";
- };
- $doit->('http', $port);
- subtest 'https' => sub {
- plan skip_all => 'OpenSSL does not support protocol negotiation; it is too old'
- unless openssl_can_negotiate();
- $doit->('https', $tls_port);
- };
-};
-
-subtest 'ab' => sub {
- plan skip_all => 'ab not found'
- unless prog_exists('ab');
- ok(system("ab -c 10 -n 10000 -k http://127.0.0.1:$port/index.txt") == 0);
- ok(system("ab -f tls1 -c 10 -n 10000 -k https://127.0.0.1:$tls_port/index.txt") == 0);
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40proxy-protocol.t b/web/server/h2o/libh2o/t/40proxy-protocol.t
deleted file mode 100644
index b6c5f149a..000000000
--- a/web/server/h2o/libh2o/t/40proxy-protocol.t
+++ /dev/null
@@ -1,153 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempdir);
-use IO::Socket::INET;
-use IO::Socket::SSL;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-my $tempdir = tempdir(CLEANUP => 1);
-my $port = empty_port();
-
-sub spawn_h2o {
- my ($proxy_protocol, $ssl) = @_;
-
- open my $fh, ">", "$tempdir/h2o.conf"
- or die "failed to create file:$tempdir/h2o.conf:$!";
- print $fh <<"EOT";
-handshake-timeout: 3
-hosts:
- default:
- access-log:
- format: "%h"
- path: $tempdir/access_log
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- listen:
- host: 127.0.0.1
- port: $port
- proxy-protocol: @{[$proxy_protocol ? "ON" : "OFF"]}
-EOT
- if ($ssl) {
- print $fh <<"EOT";
- ssl:
- key-file: examples/h2o/server.key
- certificate-file: examples/h2o/server.crt
-EOT
- }
- close $fh;
-
- spawn_server(
- argv => [ bindir() . "/h2o", "-c", "$tempdir/h2o.conf" ],
- is_ready => sub {
- check_port($port);
- },
- );
-}
-
-sub fetch {
- my $req = shift;
- my $conn = IO::Socket::INET->new(
- PeerHost => q(127.0.0.1),
- PeerPort => $port,
- Proto => q(tcp),
- ) or die "failed to connect to host:$!";
- $conn->write($req);
- $conn->read(my $buf, 1048576);
- $buf;
-}
-
-sub fetch_ssl {
- my ($pre, $req) = @_;
- my $conn = IO::Socket::INET->new(
- PeerHost => q(127.0.0.1),
- PeerPort => $port,
- SSL_startHandshake => 0,
- ) or die "failed to connect to host:$!";
- $conn->write($pre);
- IO::Socket::SSL->start_SSL($conn, SSL_verify_mode => 0)
- or die $SSL_ERROR;
- $conn->write($req);
- $conn->read(my $buf, 1048576);
- $buf;
-}
-
-sub last_log {
- open my $fh, "<", "$tempdir/access_log"
- or die "failed to open file:$tempdir/access_log:$!";
- my $last;
- while (<$fh>) {
- $last = $_;
- }
- chomp $last;
- $last;
-}
-
-sub test_timeout {
- local $@;
- my $gotsig = 0;
- local $SIG{ALRM} = sub {
- $gotsig = 1;
- die "gotsig";
- };
- alarm(5);
- eval { fetch("") };
- alarm(0);
- ok ! $gotsig;
-}
-
-subtest "http" => sub {
- my $guard = spawn_h2o(1, 0);
- subtest "with proxy" => sub {
- my $resp = fetch("PROXY TCP4 1.2.3.4 5.6.7.8 1234 9999\r\nGET / HTTP/1.0\r\n\r\n");
- like $resp, qr{^HTTP/1.1 200 OK\r\n}s;
- is last_log(), "1.2.3.4";
- };
- subtest "without proxy" => sub {
- my $resp = fetch("GET / HTTP/1.0\r\n\r\n");
- like $resp, qr{^HTTP/1.1 200 OK\r\n}s;
- is last_log(), "127.0.0.1";
- };
- subtest "timeout" => sub {
- test_timeout();
- };
-};
-
-subtest "https" => sub {
- my $guard = spawn_h2o(1, 1);
- subtest "with proxy" => sub {
- my $resp = fetch_ssl("PROXY TCP4 1.2.3.4 5.6.7.8 1234 9999\r\n", "GET / HTTP/1.0\r\n\r\n");
- like $resp, qr{^HTTP/1.1 200 OK\r\n}s;
- is last_log(), "1.2.3.4";
- };
- subtest "without proxy" => sub {
- my $resp = fetch_ssl("", "GET / HTTP/1.0\r\n\r\n");
- like $resp, qr{^HTTP/1.1 200 OK\r\n}s;
- is last_log(), "127.0.0.1";
- };
- subtest "timeout" => sub {
- test_timeout();
- };
-};
-
-subtest "off" => sub {
- my $guard = spawn_h2o(0, 0);
- subtest "with proxy" => sub {
- my $resp = fetch("PROXY TCP4 1.2.3.4 5.6.7.8 1234 9999\r\nGET / HTTP/1.0\r\n\r\n");
- unlike $resp, qr{^HTTP/1.1 200 OK\r\n}s;
- };
- subtest "without proxy" => sub {
- my $resp = fetch("GET / HTTP/1.0\r\n\r\n");
- like $resp, qr{^HTTP/1.1 200 OK\r\n}s;
- };
-};
-
-subtest "https handshake timeout" => sub {
- # timeout test for PROXY:OFF over HTTPS is implemented here since it is easier to do so
- my $guard = spawn_h2o(0, 1);
- test_timeout();
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40running-user.t b/web/server/h2o/libh2o/t/40running-user.t
deleted file mode 100644
index 53ebc1176..000000000
--- a/web/server/h2o/libh2o/t/40running-user.t
+++ /dev/null
@@ -1,38 +0,0 @@
-use strict;
-use warnings;
-use English;
-use Test::More;
-use t::Util;
-
-plan skip_all => "not running as root"
- if $UID != 0;
-plan skip_all => "user 'nobody' does not exist"
- unless defined getpwnam("nobody");
-
-
-subtest "set-user" => sub {
- doit(<< 'EOT');
-user: nobody
-EOT
-};
-
-subtest "automatic fallback to nobody" => sub {
- doit('');
-};
-
-done_testing;
-
-sub doit {
- my $conf = shift;
- my $server = spawn_h2o(<< "EOT");
-$conf
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- my $resp = `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/ 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1}s;
-}
diff --git a/web/server/h2o/libh2o/t/40server-push-attrs.t b/web/server/h2o/libh2o/t/40server-push-attrs.t
deleted file mode 100644
index 059152314..000000000
--- a/web/server/h2o/libh2o/t/40server-push-attrs.t
+++ /dev/null
@@ -1,65 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-subtest "basic" => sub {
- # spawn upstream
- my $upstream_port = empty_port();
- my $upstream = spawn_server(
- argv => [
- qw(plackup -s Starlet --access-log /dev/null -p), $upstream_port, ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
- );
- # spawn server
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /assets:
- file.dir: @{[DOC_ROOT]}
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
- my $pushes_encoded = "</assets/index.txt.gz>; rel=preload, </assets/index.txt.gz?1>; rel=preload, </assets/index.txt.gz?nopush>; rel=preload; nopush";
- $pushes_encoded =~ s{([^A-Za-z0-9_])}{sprintf "%%%02x", ord $1}eg;
- my $resp = `nghttp -vn --stat 'https://127.0.0.1:$server->{tls_port}/push-attr?pushes=$pushes_encoded'`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz}is, "index.txt.gz is pushed";
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz\?1}is, "index.txt.gz?1 is pushed";
- unlike $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz\?nopush}is, "index.txt.gz?nopush isn't pushed";
-
- $pushes_encoded = "</assets/index.txt.gz>; rel=preload, </assets/index.txt.gz?1>; rel=preload, </assets/index.txt.gz?nopush>; rel=preload; nopush, </assets/index.txt.gz?push-only>; rel=preload; x-http2-push-only";
- $pushes_encoded =~ s{([^A-Za-z0-9_])}{sprintf "%%%02x", ord $1}eg;
- $resp = `nghttp -vn --stat 'https://127.0.0.1:$server->{tls_port}/push-attr?pushes=$pushes_encoded'`;
-
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz}is, "index.txt.gz is pushed";
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz\?1}is, "index.txt.gz?1 is pushed";
- unlike $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz\?nopush}is, "index.txt.gz?nopush isn't pushed";
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz\?push-only}is, "index.txt.gz?push-only is pushed";
- like $resp, qr{link: </assets/index\.txt\.gz>; rel=preload, </assets/index\.txt\.gz\?1>; rel=preload, </assets/index\.txt\.gz\?nopush>; rel=preload; nopush\n}, "push-only doesn't appear in the link header";
-
- # Check that the header is removed if there's only one link with x-http2-push-only
- $pushes_encoded = "</assets/index.txt.gz?push-only>; rel=preload; x-http2-push-only";
- $pushes_encoded =~ s{([^A-Za-z0-9_])}{sprintf "%%%02x", ord $1}eg;
- $resp = `nghttp -vn --stat 'https://127.0.0.1:$server->{tls_port}/push-attr?pushes=$pushes_encoded'`;
-
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.txt\.gz\?push-only}is, "index.txt.gz?push-only is pushed";
- unlike $resp, qr{link:\s*\n}, "push-only doesn't appear in the link header";
-};
-
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40server-push-multiple.t b/web/server/h2o/libh2o/t/40server-push-multiple.t
deleted file mode 100644
index b43c9675f..000000000
--- a/web/server/h2o/libh2o/t/40server-push-multiple.t
+++ /dev/null
@@ -1,66 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-subtest "basic" => sub {
- # spawn upstream
- my $upstream_port = empty_port();
- my $upstream = spawn_server(
- argv => [
- qw(plackup -s Starlet --access-log /dev/null -p), $upstream_port, ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
- );
- # spawn server
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- /mruby:
- mruby.handler: |
- Proc.new do |env|
- [399, { "link" => "</index.txt.gz>; rel=preload, </index.txt.gz?1>; rel=preload, </index.txt.gz?nopush>; rel=preload; nopush" }, [] ]
- end
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- /assets:
- file.dir: @{[DOC_ROOT]}
-EOT
-
- my $doit = sub {
- my ($proto, $opts, $port) = @_;
- subtest 'push-prioritized' => sub {
- my $resp = `nghttp $opts -n --stat '$proto://127.0.0.1:$port/mruby'`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.txt\.gz}is, "index.txt.gz is pushed";
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.txt\.gz\?1}is, "index.txt.gz?1 is pushed";
- unlike $resp, qr{\nid\s*responseEnd\s.*\s/index\.txt\.gz\?nopush}is, "index.txt.gz?nopush isn't pushed";
- };
- };
-
- subtest 'h2 direct' => sub {
- $doit->('http', '', $server->{port});
- };
- subtest 'h2 upgrade' => sub {
- $doit->('http', '-u', $server->{port});
- };
- subtest 'h2c' => sub {
- $doit->('https', '', $server->{tls_port});
- };
-};
-
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40server-push.t b/web/server/h2o/libh2o/t/40server-push.t
deleted file mode 100644
index 519d1be80..000000000
--- a/web/server/h2o/libh2o/t/40server-push.t
+++ /dev/null
@@ -1,245 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-subtest "basic" => sub {
- # spawn upstream
- my $upstream_port = empty_port();
- my $upstream = spawn_server(
- argv => [
- qw(plackup -s Starlet --access-log /dev/null -p), $upstream_port, ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
- );
- # spawn server
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- /mruby:
- mruby.handler: |
- Proc.new do |env|
- [399, { "link" => "</index.txt.gz>; rel=preload" }, [] ]
- end
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- /assets:
- file.dir: @{[DOC_ROOT]}
-EOT
-
- my $doit = sub {
- my ($proto, $opts, $port) = @_;
- subtest 'push-prioritized' => sub {
- my $resp = `nghttp $opts -n --stat '$proto://127.0.0.1:$port/index.txt?resp:link=</assets/index.js>\%3b\%20rel=preload'`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.js\n.*\s/index\.txt\?}is;
- };
- subtest 'push-unprioritized' => sub {
- my $resp = `nghttp $opts -n --stat '$proto://127.0.0.1:$port/index.txt?resp:link=</index.txt.gz>\%3b\%20rel=preload'`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.txt\?.*\s/index\.txt.gz\n}is;
- };
- subtest "push-1xx" => sub {
- my $out = `nghttp $opts -n --stat '$proto://127.0.0.1:$port/1xx-push/'`;
- # index.js arrives < 100ms, and /1xx-push/ arrives > 1sec
- $out = (split /^.*?\nid *responseEnd .*?\n/s, $out, 2)[1];
- chomp $out;
- my @responses = split /\n/, $out;
- is scalar(@responses), 2, "2 responses";
- like $responses[0], qr{\+[0-9]{1,2}\.[0-9]*ms .* /index.js$}, "index.js arrives < 100ms";
- like $responses[1], qr{\+1\.[0-9]*s .* /1xx-push/$}, "/1xx-push/ arrives >= 1sec";
- };
- subtest 'push-while-sleep' => sub {
- my $resp = `nghttp $opts -n --stat '$proto://127.0.0.1:$port/mruby/sleep-and-respond?sleep=1'`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.txt\.gz\n.*\s/mruby/sleep-and-respond}is;
- };
- };
-
- subtest 'h2 direct' => sub {
- $doit->('http', '', $server->{port});
- };
- subtest 'h2 upgrade' => sub {
- $doit->('http', '-u', $server->{port});
- };
- subtest 'h2c' => sub {
- $doit->('https', '', $server->{tls_port});
- };
-};
-
-subtest "push-twice" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1:$tls_port":
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- case env["PATH_INFO"]
- when "/index.txt"
- push_paths = []
- push_paths << "/index.js"
- [399, push_paths.empty? ? {} : {"link" => push_paths.map{|p| "<#{p}>; rel=preload"}.join("\\n")}, []]
- else
- [399, {}, []]
- end
- end
- file.dir: t/assets/doc_root
-EOT
- });
- my $resp = `nghttp -v -m 2 -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- like $resp, qr{\s+200\s+16\s+/index\.js\n}is, "receives index.js";
- unlike $resp, qr{\s+200\s+16\s+/index\.js\n.*\s+200\s+16\s+/index\.js\n}is, "receives index.js only once";
-};
-
-
-subtest "push-after-reproxy" => sub {
- subtest "authority-match" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1:$tls_port":
- paths:
- /:
- reproxy: ON
- mruby.handler: |
- Proc.new do |env|
- case env["PATH_INFO"]
- when "/reproxy"
- [307, {"x-reproxy-url" => "/index.txt"}, ["should never see this"]]
- when "/index.txt"
- push_paths = []
- push_paths << "/index.js"
- [399, push_paths.empty? ? {} : {"link" => push_paths.map{|p| "<#{p}>; rel=preload"}.join("\\n")}, []]
- else
- [399, {}, []]
- end
- end
- file.dir: t/assets/doc_root
-EOT
- });
- my $resp = `nghttp -n --stat https://127.0.0.1:$server->{tls_port}/reproxy`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n.*\s/reproxy}is, "receives index.js then /reproxy";
- };
- subtest "authority-mismatch" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- default:
- paths:
- /:
- reproxy: ON
- mruby.handler: |
- Proc.new do |env|
- case env["PATH_INFO"]
- when "/reproxy"
- [307, {"x-reproxy-url" => "/index.txt"}, ["should never see this"]]
- when "/index.txt"
- push_paths = []
- push_paths << "/index.js?1"
- push_paths << "https://127.0.0.1:$tls_port/index.js?2"
- [399, push_paths.empty? ? {} : {"link" => push_paths.map{|p| "<#{p}>; rel=preload"}.join("\\n")}, []]
- else
- [399, {}, []]
- end
- end
- file.dir: t/assets/doc_root
-EOT
- });
- my $resp = `nghttp -n --stat https://127.0.0.1:$server->{tls_port}/reproxy`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\?2\n.*\s/reproxy}is, "receives index.js?2 then /reproxy";
- unlike $resp, qr{/index\.js\?1\n}is, "index.js?1 not received (authority mismatch)";
- };
-};
-
-subtest "casper" => sub {
- subtest "custom capacity-bits" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1:$tls_port":
- http2-casper:
- capacity-bits: 11
- paths:
- /:
- reproxy: ON
- mruby.handler: |
- Proc.new do |env|
- case env["PATH_INFO"]
- when "/index.txt"
- push_paths = []
- push_paths << "/index.js"
- [399, push_paths.empty? ? {} : {"link" => push_paths.map{|p| "<#{p}>; rel=preload"}.join("\\n")}, []]
- else
- [399, {}, []]
- end
- end
- file.dir: t/assets/doc_root
-EOT
- });
- my $resp = `nghttp -v -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n.*\s/index.txt}is, "receives index.js then /index.txt";
- my ($casper) = ($resp =~ qr{set-cookie:\s*(h2o_casper=[^\s;]+)}i);
-
- is length($casper), 17;
-
- {
- my $resp = `nghttp -H'cookie: $casper' -v -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- unlike $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n}is, "does not receives index.js";
- }
- };
-};
-
-subtest "cache-digest" => sub {
- plan skip_all => 'node not found'
- unless prog_exists('node');
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1:$tls_port":
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- case env["PATH_INFO"]
- when "/index.txt"
- [399, {"link" => "</index.js>; rel=preload"}, []]
- else
- [399, {}, []]
- end
- end
- file.dir: t/assets/doc_root
-EOT
- });
- my $calc_digest = sub {
- my $cmd = "node misc/cache-digest.js/cli.js -b @{[join ' ', map { qq{https://127.0.0.1:$server->{tls_port}$_} } @_]}";
- my $digest = `$cmd`;
- chomp $digest;
- return "$digest; complete";
- };
- my $resp = `nghttp -H'cache-digest: @{[$calc_digest->()]}' -v -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n.*\s/index.txt}is, "receives index.js then /index.txt";
- $resp = `nghttp -H'cache-digest: @{[$calc_digest->("/index.js", "/style.css")]}' -v -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- unlike $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n}is, "does not receive index.js";
- $resp = `nghttp -H'cache-digest: @{[$calc_digest->("/script.js", "/style.css")]}' -v -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n.*\s/index.txt}is, "receives index.js then /index.txt";
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40session-ticket.t b/web/server/h2o/libh2o/t/40session-ticket.t
deleted file mode 100644
index 2e5d5e4ac..000000000
--- a/web/server/h2o/libh2o/t/40session-ticket.t
+++ /dev/null
@@ -1,133 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => "could not find openssl"
- unless prog_exists("openssl");
-#plan skip_all => "openssl 1.0.2 or above is required"
-# unless `openssl version` =~ /^OpenSSL 1\.(?:0\.[2-9][^0-9]|[1-9])/s;
-
-my $tempdir = tempdir(CLEANUP => 1);
-
-subtest "internal" => sub {
- spawn_with(<< "EOT",
- mode: ticket
-EOT
- sub {
- is test(), "New";
- test(); # openssl 0.9.8 seems to return "New" (maybe because in the first run we did not specify -sess_in)
- is test(), "Reused";
- is test(), "Reused";
- });
- spawn_with(<< "EOT",
- mode: ticket
-EOT
- sub {
- is test(), "New";
- });
-};
-
-subtest "file" => sub {
- my $tickets_file = "t/40session-ticket/forever_ticket.yaml";
- spawn_with(<< "EOT",
- mode: ticket
- ticket-store: file
- ticket-file: $tickets_file
-EOT
- sub {
- is test(), "New";
- is test(), "Reused";
- is test(), "Reused";
- });
- spawn_with(<< "EOT",
- mode: ticket
- ticket-store: file
- ticket-file: $tickets_file
-EOT
- sub {
- sleep 1;
- is test(), "Reused";
- });
-};
-
-subtest "no-tickets-in-file" => sub {
- my $tickets_file = "t/40session-ticket/nonexistent";
- spawn_with(<< "EOT",
- mode: ticket
- ticket-store: file
- ticket-file: $tickets_file
-EOT
- sub {
- is test(), "New";
- is test(), "New";
- is test(), "New";
- });
-};
-
-subtest "memcached" => sub {
- plan skip_all => "memcached not found"
- unless prog_exists("memcached");
- my $memc_port = empty_port();
- my $doit = sub {
- my $memc_proto = shift;
- my $memc_guard = spawn_server(
- argv => [ qw(memcached -l 127.0.0.1 -p), $memc_port, "-B", $memc_proto ],
- is_ready => sub {
- check_port($memc_port);
- },
- );
- my $conf =<< "EOT";
- mode: ticket
- ticket-store: memcached
- memcached:
- host: 127.0.0.1
- port: $memc_port
- protocol: $memc_proto
-EOT
- spawn_with($conf, sub {
- is test(), "New";
- is test(), "Reused";
- is test(), "Reused";
- });
- spawn_with($conf, sub {
- sleep 1;
- is test(), "Reused";
- });
- };
- $doit->("binary");
- $doit->("ascii");
-};
-
-done_testing;
-
-my $server;
-
-sub spawn_with {
- my ($opts, $cb) = @_;
- $server = spawn_h2o(<< "EOT");
-ssl-session-resumption:
-$opts
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
- $cb->();
-}
-
-sub test {
- my $lines = do {
- my $cmd_opts = (-e "$tempdir/session" ? "-sess_in $tempdir/session" : "") . " -sess_out $tempdir/session";
- open my $fh, "-|", "openssl s_client $cmd_opts -connect 127.0.0.1:$server->{tls_port} 2>&1 < /dev/null"
- or die "failed to open pipe:$!";
- local $/;
- <$fh>;
- };
- $lines =~ m{---\n(New|Reused),}s
- or die "failed to parse the output of s_client:{{{$lines}}}";
- $1;
-}
diff --git a/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml b/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml
deleted file mode 100644
index 0d7157887..000000000
--- a/web/server/h2o/libh2o/t/40session-ticket/forever_ticket.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-- name: a397b6b7fab929366203f16fc81ffbed
- cipher: aes-128-cbc
- hash: sha1
- key: f1ed89cde68763630e80d2be827cfb98e3fe72644f64315a4a8ad63769a3577ccec4dd13b20eaf8c008886e5458db10e658cf2a83f04403ac4e98035d2422a75806730eb4f2fee12faff954895bc65d1
- not_before: 0
- not_after: 18446744073709551615
diff --git a/web/server/h2o/libh2o/t/40ssl-cipher-suite.t b/web/server/h2o/libh2o/t/40ssl-cipher-suite.t
deleted file mode 100644
index bda718421..000000000
--- a/web/server/h2o/libh2o/t/40ssl-cipher-suite.t
+++ /dev/null
@@ -1,38 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Net::EmptyPort qw(check_port empty_port);
-use Scope::Guard qw(scope_guard);
-use Test::More;
-use t::Util;
-
-my $port = empty_port();
-
-# spawn server that only accepts AES128-SHA
-my ($conffh, $conffn) = tempfile(UNLINK => 1);
-print $conffh <<"EOT";
-listen:
- host: 127.0.0.1
- port: $port
- ssl:
- key-file: examples/h2o/server.key
- certificate-file: examples/h2o/server.crt
- cipher-suite: AES128-SHA
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-my ($guard, $pid) = spawn_server(
- argv => [ bindir() . "/h2o", "-c", $conffn ],
- is_ready => sub {
- check_port($port);
- },
-);
-
-# connect to the server with AES256-SHA as the first choice, and check that AES128-SHA was selected
-my $log = `openssl s_client -cipher AES256-SHA:AES128-SHA -host 127.0.0.1 -port $port < /dev/null 2>&1`;
-like $log, qr/^\s*Cipher\s*:\s*AES128-SHA\s*$/m;
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40unix-socket.t b/web/server/h2o/libh2o/t/40unix-socket.t
deleted file mode 100644
index 985e76d38..000000000
--- a/web/server/h2o/libh2o/t/40unix-socket.t
+++ /dev/null
@@ -1,28 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nc -U not found'
- unless prog_exists('nc') and `nc -h 2>&1` =~ /-U\t+Use UNIX domain socket/;
-
-my $tempdir = tempdir(CLEANUP => 1);
-my $sock_path = "$tempdir/h2o.sock";
-
-my $server = spawn_h2o(<< "EOT");
-listen:
- type: unix
- port: $sock_path
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-my $resp = `(echo "GET / HTTP/1.0" ; echo) | nc -U $sock_path 2>&1`;
-like $resp, qr{^HTTP/1\.[0-9]+ 200 OK\r\n}s;
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/40virtual-host.t b/web/server/h2o/libh2o/t/40virtual-host.t
deleted file mode 100644
index aef1b6566..000000000
--- a/web/server/h2o/libh2o/t/40virtual-host.t
+++ /dev/null
@@ -1,83 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Net::EmptyPort qw(check_port);
-use File::Temp qw(tempfile);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "basic" => sub {
- # create config
- my ($global_port, $alternate_port) = empty_ports(2);
- my ($conffh, $conffn) = tempfile(UNLINK => 1);
- print $conffh <<"EOT";
-listen:
- host: 127.0.0.1
- port: $global_port
-hosts:
- "default:$global_port":
- paths:
- /:
- file.dir: examples/doc_root
- "alternate:$global_port":
- listen:
- host: 127.0.0.1
- port: $alternate_port
- paths:
- /:
- file.dir: examples/doc_root.alternate
-EOT
-
- # start server
- my ($guard, $pid) = spawn_server(
- argv => [ bindir() . "/h2o", "-c", $conffn ],
- is_ready => sub {
- check_port($global_port) && check_port($alternate_port);
- },
- );
-
- my $resp = `curl --silent --resolve default:$global_port:127.0.0.1 http://default:$global_port/`;
- is md5_hex($resp), md5_file("examples/doc_root/index.html"), "'host: default' against default port";
-
- $resp = `curl --silent --resolve alternate:$global_port:127.0.0.1 http://alternate:$global_port/`;
- is md5_hex($resp), md5_file("examples/doc_root.alternate/index.txt"), "'host: alternate' against default port";
-
- $resp = `curl --silent --resolve default:$alternate_port:127.0.0.1 http://default:$alternate_port/`;
- is md5_hex($resp), md5_file("examples/doc_root.alternate/index.txt"), "'host: default' against alternate port";
-
- $resp = `curl --silent --resolve alternate:$alternate_port:127.0.0.1 http://alternate:$alternate_port/`;
- is md5_hex($resp), md5_file("examples/doc_root.alternate/index.txt"), "'host: alternate' against alternate port";
-};
-
-subtest "wildcard" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- default:
- paths:
- /:
- file.dir: examples/doc_root
- "*.example.com:$port":
- paths:
- /:
- file.dir: examples/doc_root.alternate
-EOT
- });
-
- my $fetch = sub {
- my $host = shift;
- my $resp = `curl --silent --resolve $host:$server->{port}:127.0.0.1 http://$host:$server->{port}/`;
- md5_hex($resp);
- };
-
- is $fetch->("www.example.com"), md5_file("examples/doc_root.alternate/index.txt"), "www.example.com";
- is $fetch->("xxx.example.com"), md5_file("examples/doc_root.alternate/index.txt"), "xxx.example.com";
- is $fetch->("example.com"), md5_file("examples/doc_root/index.html"), "example.com";
- is $fetch->("example.org"), md5_file("examples/doc_root/index.html"), "example.org";
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/40websocket.t b/web/server/h2o/libh2o/t/40websocket.t
deleted file mode 100644
index a321c034a..000000000
--- a/web/server/h2o/libh2o/t/40websocket.t
+++ /dev/null
@@ -1,114 +0,0 @@
-use strict;
-use warnings;
-use IO::Socket::INET;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-# spawn upstream
-my $upstream_port = empty_port();
-my $upstream = spawn_server(
- argv => [
- qw(plackup -s Starlet --access-log /dev/null -p), $upstream_port, ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-sub silent_server {
- return spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port/
- proxy.websocket: ON
- proxy.websocket.timeout: 1000
-EOT
-}
-
-subtest "http/1.1" => sub {
- my $server = silent_server();
- plan skip_all => "curl not found"
- unless prog_exists("curl");
- my $resp = `curl --silent --insecure 'http://127.0.0.1:$server->{port}/index.txt'`;
- is $resp, "hello\n";
-};
-
-sub doit {
- my $conn = shift;
- my $req = join(
- "\r\n",
- "GET /websocket/ HTTP/1.1",
- "Connection: upgrade",
- "Upgrade: websocket",
- "Sec-Websocket-Key: abcde",
- "Sec-Websocket-Version: 13",
- "",
- "",
- );
- is $conn->syswrite($req), length($req), "send request";
- $conn->sysread(my $rbuf, 65536) > 0
- or die "failed to read HTTP response";
- like $rbuf, qr{^HTTP\/1\.1 101 }is;
- like $rbuf, qr{\r\n\r\n$}is;
- like $rbuf, qr{\r\nupgrade: websocket\r\n}is;
- unlike $rbuf, qr{\r\nupgrade:.*\r\nupgrade:}is;
- like $rbuf, qr{\r\nsec-websocket-accept: .*\r\n}is;
- for my $i (1..10) {
- my $msg = "hello world $i\n";
- is $conn->syswrite($msg), length($msg), "write text ($i)";
- is $conn->sysread($rbuf, 65536), length($msg), "read echo ($i)";
- is $rbuf, $msg, "echo is correct ($i)";
- }
- $conn->close;
-}
-
-subtest "ws" => sub {
- my $server = silent_server();
- my $conn = IO::Socket::INET->new(
- PeerHost => '127.0.0.1',
- PeerPort => $server->{port},
- Proto => 'tcp',
- ) or die "failed to connect to 127.0.0.1:$server->{port}:$!";
- doit($conn);
-};
-
-subtest "wss" => sub {
- my $server = silent_server();
- eval q{use IO::Socket::SSL; 1}
- or plan skip_all => "IO::Socket::SSL not found";
- my $conn = IO::Socket::SSL->new(
- PeerAddr => "127.0.0.1:$server->{tls_port}",
- SSL_verify_mode => 0,
- ) or die "failed to connect via TLS to 127.0.0.1:$server->{tls_port}:". IO::Socket::SSL::errstr();
- doit($conn);
-};
-
-subtest "logged-ws" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port/
- proxy.websocket: ON
- proxy.websocket.timeout: 1000
-access-log: /dev/null # enable logging
-EOT
-
- my $conn = IO::Socket::INET->new(
- PeerHost => '127.0.0.1',
- PeerPort => $server->{port},
- Proto => 'tcp',
- ) or die "failed to connect to 127.0.0.1:$server->{port}:$!";
- doit($conn);
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50access-log.t b/web/server/h2o/libh2o/t/50access-log.t
deleted file mode 100644
index fd96217c2..000000000
--- a/web/server/h2o/libh2o/t/50access-log.t
+++ /dev/null
@@ -1,281 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempdir);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $tempdir = tempdir(CLEANUP => 1);
-
-sub doit {
- my ($cmd, $args, @expected) = @_;
-
- unlink "$tempdir/access_log";
-
- $args = { format => $args }
- unless ref $args;
-
- my $server = spawn_h2o(<< "EOT");
-ssl-session-resumption:
- mode: cache
- cache-store: internal
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- /fastcgi:
- fastcgi.connect:
- port: /nonexistent
- type: unix
- error-log.emit-request-errors: OFF
- /set-cookie:
- file.dir: @{[ DOC_ROOT ]}
- header.add: "set-cookie: a=b"
- header.add: "set-cookie: c=d"
- header.add: "cache-control: must-revalidate"
- header.add: "cache-control: no-store"
- /compress:
- file.dir: @{[ DOC_ROOT ]}
- compress: [gzip]
- access-log:
- format: "$args->{format}"
-@{[$args->{escape} ? " escape: $args->{escape}" : ""]}
- path: $tempdir/access_log
-EOT
-
- $cmd->($server);
-
- my @log = do {
- open my $fh, "<", "$tempdir/access_log"
- or die "failed to open access_log:$!";
- map { my $l = $_; chomp $l; $l } <$fh>;
- };
-
- for (my $i = 0; $i != @expected; ++$i) {
- $expected[$i] = $expected[$i]->($server)
- if ref $expected[$i] eq 'CODE';
- like $log[$i], $expected[$i];
- }
-}
-
-subtest "custom-log" => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent --referer http://example.com/ http://127.0.0.1:$server->{port}/ > /dev/null");
- },
- '%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"',
- qr{^127\.0\.0\.1 - - \[[0-9]{2}/[A-Z][a-z]{2}/20[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2} [+\-][0-9]{4}\] "GET / HTTP/1\.1" 200 6 "http://example.com/" "curl/.*"$},
- );
-};
-
-subtest "strftime" => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/ > /dev/null");
- },
- '%{%Y-%m-%dT%H:%M:%S}t',
- qr{^20[0-9]{2}-(?:0[1-9]|1[012])-(?:[012][0-9]|3[01])T[0-9]{2}:[0-9]{2}:[0-9]{2}$},
- );
-};
-
-subtest "strftime-special" => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/ > /dev/null");
- },
- '%{msec_frac}t::%{usec_frac}t::%{sec}t::%{msec}t::%{usec}t',
- qr{^([0-9]{3})::(\1[0-9]{3})::([0-9]+)::\3\1::\3\2$},
- );
-};
-
-subtest "more-fields" => sub {
- my $local_port = "";
- doit(
- sub {
- my $server = shift;
- my $resp = `curl --silent -w ',\%{local_port}' http://127.0.0.1:$server->{port}/`;
- like $resp, qr{,(\d+)$}s;
- $local_port = do { $resp =~ /,(\d+)$/s; $1 };
- },
- '\"%A:%p\" \"%{local}p\" \"%{remote}p\"',
- sub { my $server = shift; qr{^\"127\.0\.0\.1:$server->{port}\" \"$server->{port}\" \"$local_port\"$} },
- );
-};
-
-subtest 'ltsv-related' => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port} > /dev/null");
- system("curl --silent http://127.0.0.1:$server->{port}/query?abc=d > /dev/null");
- },
- '%m::%U%q::%H::%V::%v',
- qr{^GET::/::HTTP/1\.1::127\.0\.0\.1:[0-9]+::default$},
- qr{^GET::/query\?abc=d::HTTP/1\.1::127\.0\.0\.1:[0-9]+::default$},
- );
-};
-
-subtest 'timings' => sub {
- my $doit = sub {
- my $opts = shift;
- doit(
- sub {
- my $server = shift;
- system("curl $opts --silent --data helloworld http://127.0.0.1:$server->{port}/ > /dev/null");
- system("curl $opts --silent --insecure --data helloworld https://127.0.0.1:$server->{tls_port}/ > /dev/null");
- },
- '%{connect-time}x:%{request-header-time}x:%{request-body-time}x:%{response-time}x:%{request-total-time}x:%{duration}x:%{undefined}x',
- map { qr{^[0-9\.]+:[0-9\.]+:[0-9\.]+:[0-9\.]+:[0-9\.]+:[0-9\.]+:-$} } (1..2),
- );
- };
- subtest 'http1' => sub {
- $doit->("");
- };
- subtest 'http2' => sub {
- plan skip_all => "curl does not support HTTP/2"
- unless curl_supports_http2();
- $doit->("--http2");
- };
-};
-
-subtest 'header-termination (issue 462)' => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --user-agent foobar/1 --silent http://127.0.0.1:$server->{port} > /dev/null");
- },
- '%{user-agent}i',
- qr{^foobar/1$},
- );
- doit(
- sub {
- my $server = shift;
- system("curl --user-agent foobar/1 --silent http://127.0.0.1:$server->{port} > /dev/null");
- },
- '%{content-type}o',
- qr{^text/plain$},
- );
-};
-
-subtest 'extensions' => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/ > /dev/null");
- system("curl --silent --insecure @{[curl_supports_http2() ? ' --http1.1' : '']} https://127.0.0.1:$server->{tls_port}/ > /dev/null");
- if (prog_exists("nghttp")) {
- system("nghttp -n https://127.0.0.1:$server->{tls_port}/");
- system("nghttp -n --weight=22 https://127.0.0.1:$server->{tls_port}/");
- }
- },
- '%{connection-id}x %{ssl.protocol-version}x %{ssl.session-reused}x %{ssl.cipher}x %{ssl.cipher-bits}x %{http2.stream-id}x %{http2.priority.received}x',
- do {
- my @expected = (
- qr{^2 - - - - - -$}is,
- qr{^3 TLSv[0-9.]+ 0 \S+RSA\S+ (?:128|256) - -$}is,
- );
- if (prog_exists("nghttp")) {
- push @expected, +(
- qr{^4 TLSv[0-9.]+ 0 \S+RSA\S+ (?:128|256) [0-9]*[13579] 0:[0-9]+:16}is,
- qr{^5 TLSv[0-9.]+ 0 \S+RSA\S+ (?:128|256) [0-9]*[13579] 0:[0-9]+:22}is,
- );
- }
- @expected;
- },
- );
-};
-
-subtest 'ssl-log' => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent -k https://127.0.0.1:$server->{tls_port}/ > /dev/null");
- },
- '%{ssl.session-id}x',
- qr{^\S+$}s,
- );
-};
-
-subtest 'error' => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/fastcgi > /dev/null");
- },
- '%{error}x',
- qr{^\[lib/handler/fastcgi\.c\] connection failed:}s,
- );
-};
-
-subtest 'set-cookie' => sub {
- # set-cookie header is the only header to be concatenated with %{...}o, according to Apache
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/set-cookie/ > /dev/null");
- },
- '\\"%<{set-cookie}o\\" \\"%>{set-cookie}o\\" \\"%{set-cookie}o\\" \\"%{cache-control}o\\"',
- qr{^"-" "a=b, c=d" "a=b, c=d" "must-revalidate"$}s,
- );
-};
-
-subtest 'escape' => sub {
- for my $i ([default => qr{^/\\xe3\\x81\\x82$}s], [apache => qr{^/\\xe3\\x81\\x82$}s], [json => qr{^/\\u00e3\\u0081\\u0082$}s]) {
- my ($escape, $expected) = @$i;
- subtest $escape => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/\xe3\x81\x82 > /dev/null");
- },
- $escape eq 'default' ? '%U' : { format => '%U', escape => $escape },
- $expected,
- );
- };
- }
-};
-
-subtest "json-null" => sub {
- doit(
- sub {
- my $server = shift;
- system("curl --silent http://127.0.0.1:$server->{port}/ > /dev/null");
- },
- # single specifier surrounded by quotes that consist a string literal in JSON should be converted to `null` if the specifier
- # resolves to null
- { format => '\\"%h\\" %l \\"%l\\" \'%l\' \'%l \' \'\\"%l\\"\'', escape => 'json' },
- qr{^"127\.0\.0\.1" null null null 'null ' '"null"'$},
- );
-};
-
-subtest 'compressed-body-size' => sub {
- my $doit = sub {
- my ($opts, $expected) = @_;
- doit(
- sub {
- my $server = shift;
- system("curl $opts --silent http://127.0.0.1:$server->{port}/compress/alice.txt > /dev/null");
- },
- '%b',
- qr{^$expected$},
- );
- };
- subtest 'http1' => sub {
- $doit->("", 1661);
- $doit->("-H 'Accept-Encoding: gzip'", 908); # it doesn't contain chunked encoding overhead (12)
- };
- subtest 'http2' => sub {
- plan skip_all => "curl does not support HTTP/2"
- unless curl_supports_http2();
- $doit->("--http2", 1661);
- $doit->("--http2 -H 'Accept-Encoding: gzip'", 908);
- };
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t b/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t
deleted file mode 100644
index bb0dff806..000000000
--- a/web/server/h2o/libh2o/t/50chunked-encoding-proxying.t
+++ /dev/null
@@ -1,84 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-use Time::HiRes qw(usleep);
-
-plan skip_all => 'nc not found'
- unless prog_exists('nc');
-
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-my $upstream_port = empty_port();
-$| = 1;
-my $socket = new IO::Socket::INET (
- LocalHost => '127.0.0.1',
- LocalPort => $upstream_port,
- Proto => 'tcp',
- Listen => 1,
- Reuse => 1
-);
-die "cannot create socket $!\n" unless $socket;
-
-check_port($upstream_port) or die "can't connect to server socket";
-# accent and close check_port's connection
-my $client_socket = $socket->accept();
-close($client_socket);
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-sub doit {
- my $chunk = shift;
- my $data = shift;
- my $stream_window_bits = shift;
- my $defer_close = shift;
- my $expect_rst_stream = shift;
- open my $nghttp, "-|", "nghttp -w $stream_window_bits -v http://127.0.0.1:$server->{'port'}/ -H 'host: host.example.com' 2>&1";
-
- my $req;
- $client_socket = $socket->accept();
- $client_socket->recv($req, 1024);
- $client_socket->send("HTTP/1.1 200 Ok\r\nTransfer-Encoding:chunked\r\nConnection:close\r\n\r\n$chunk");
- if ($defer_close) {
- usleep(50000);
- }
- close($client_socket);
-
- my $found_rst_stream=0;
- my $found_data="";
- while(<$nghttp>) {
- if (/^[\[|\s]/) {
- if (/RST_STREAM/) {
- $found_rst_stream = 1;
- }
- } else {
- # reassamble the DATA output
- if (/^([^\[|^\s]+)[\[|\s].*DATA.*/) {
- $found_data = $found_data.$1;
- }
- }
- }
- if ($expect_rst_stream) {
- ok($found_rst_stream == 1, "Found RST_STREAM");
- } else {
- ok($found_rst_stream == 0, "RST_STREAM not found, as expected");
- }
- ok($found_data eq $data, "Found the expected data");
-}
-
-for my $w (1 .. 5) {
- doit("5\r\nHello\r\n50\r\nThere", "HelloThere", $w, 0, 1);
- doit("5\r\nHello\r\n50\r\nThere", "HelloThere", $w, 1, 1);
-}
-doit("5\r\nHello\r\n5\r\nThere\r\n", "HelloThere", 14);
-
-$socket->close();
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50compress-hint.t b/web/server/h2o/libh2o/t/50compress-hint.t
deleted file mode 100644
index 23e52c50f..000000000
--- a/web/server/h2o/libh2o/t/50compress-hint.t
+++ /dev/null
@@ -1,88 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nc not found'
- unless prog_exists('nc');
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $upstream_port = empty_port();
-$| = 1;
-my $socket = new IO::Socket::INET (
- LocalHost => '127.0.0.1',
- LocalPort => $upstream_port,
- Proto => 'tcp',
- Listen => 1,
- Reuse => 1
-);
-die "cannot create socket $!\n" unless $socket;
-
-check_port($upstream_port) or die "can't connect to server socket";
-# accent and close check_port's connection
-my $client_socket = $socket->accept();
-close($client_socket);
-
-my $server = spawn_h2o(<< "EOT");
-compress: ON
-compress-minimum-size: 10
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-sub doit {
- my $msg = shift;
- my $x_compress_header = shift;
- my $expect_content_encoding = shift;
- my $accept_gzip = shift;
-
- my $ae_header = "";
- if ($accept_gzip) {
- $ae_header = "-Haccept-encoding:gzip";
- }
- open(CURL, "curl $ae_header -Hhost:host.example.com -svo /dev/null http://127.0.0.1:$server->{'port'}/ 2>&1 |");
-
- my $req;
- $client_socket = $socket->accept();
- $client_socket->recv($req, 1024);
- my $cl = length($msg);
- $client_socket->send("HTTP/1.1 200 Ok\r\ncontent-length:${cl}\r\ncontent-type:text/html\r\n${x_compress_header}Connection:close\r\n\r\n$msg");
- close($client_socket);
-
- my $seen_content_encoding = 0;
- while(<CURL>) {
- if (/< content-encoding/) {
- $seen_content_encoding = 1;
- }
- }
-
- my $neg = "";
- if ($expect_content_encoding == 0) {
- $neg = "not ";
- }
- ok($seen_content_encoding == $expect_content_encoding, "The body was ${neg}encoded as expected");
-}
-
-doit("This is large enough to be compressed", "", 1, 1);
-doit("This is large enough to be compressed", "x-compress-hint: auto\r\n", 1, 1);
-doit("This is large enough to be compressed", "x-compress-hint: on\r\n", 1, 1);
-doit("This is large enough to be compressed", "x-compress-hint: off\r\n", 0, 1);
-
-doit("too small", "", 0, 1);
-doit("too small", "x-compress-hint: auto\r\n", 0, 1);
-doit("too small", "x-compress-hint: on\r\n", 1, 1);
-doit("too small", "x-compress-hint: off\r\n", 0, 1);
-
-doit("This is large enough to be compressed", "", 0, 0);
-doit("This is large enough to be compressed", "x-compress-hint: auto\r\n", 0, 0);
-doit("This is large enough to be compressed", "x-compress-hint: on\r\n", 0, 0);
-doit("This is large enough to be compressed", "x-compress-hint: off\r\n", 0, 0);
-
-$socket->close();
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50compress.t b/web/server/h2o/libh2o/t/50compress.t
deleted file mode 100644
index b8674f7fa..000000000
--- a/web/server/h2o/libh2o/t/50compress.t
+++ /dev/null
@@ -1,88 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /off:
- file.dir: @{[DOC_ROOT]}
- /on:
- file.dir: @{[DOC_ROOT]}
- compress: ON
- /off-by-mime:
- file.dir: @{[DOC_ROOT]}
- compress: ON
- file.mime.settypes:
- text/plain:
- extensions: [".txt"]
- is_compressible: NO
- /compress-jpg:
- file.dir: @{[DOC_ROOT]}
- compress: ON
- file.mime.settypes:
- image/jpg:
- extensions: [".jpg"]
- is_compressible: YES
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- plan skip_all => 'curl issue #661'
- if $curl =~ /--http2/;
- my $fetch_orig = sub {
- my ($path, $opts) = @_;
- run_prog("$curl --silent $opts $proto://127.0.0.1:$port$path/alice.txt");
- };
- my $fetch_gunzip = sub {
- my ($path, $opts) = @_;
- run_prog("$curl --silent $opts $proto://127.0.0.1:$port$path/alice.txt | gzip -cd");
- };
- my $expected = md5_file("@{[DOC_ROOT]}/alice.txt");
-
- my $resp = $fetch_orig->("/off", "");
- is md5_hex($resp), $expected, "off wo. accept-encoding";
- $resp = $fetch_orig->("/on", "");
- is md5_hex($resp), $expected, "on wo. accept-encoding";
- $resp = $fetch_orig->("/off", "-H accept-encoding:gzip");
- is md5_hex($resp), $expected, "off with accept-encoding";
- $resp = $fetch_gunzip->("/on", "-H accept-encoding:gzip");
- is md5_hex($resp), $expected, "on with accept-encoding";
- $resp = $fetch_gunzip->("/on", "-H 'accept-encoding:gzip, deflate'");
- is md5_hex($resp), $expected, "on with accept-encoding: gzip, deflate";
- $resp = $fetch_gunzip->("/on", "-H 'accept-encoding:deflate, gzip'");
- is md5_hex($resp), $expected, "on with accept-encoding: deflate, gzip";
- $resp = $fetch_orig->("/on", "-H accept-encoding:deflate");
- is md5_hex($resp), $expected, "on with accept-encoding, deflate only";
-
- $resp = $fetch_orig->("/off-by-mime", "-H accept-encoding:gzip");
- is md5_hex($resp), $expected, "off due to is_compressible:NO";
-
- $resp = run_prog("$curl --silent -H accept-encoding:gzip $proto://127.0.0.1:$port/on/index.txt");
- is md5_hex($resp), md5_file("@{[DOC_ROOT]}/index.txt"), "tiny file not compressed";
-
- $resp = run_prog("$curl --silent -H accept-encoding:gzip $proto://127.0.0.1:$port/on/halfdome.jpg");
- is md5_hex($resp), md5_file("@{[DOC_ROOT]}/halfdome.jpg"), "image not compressed";
-
- $resp = run_prog("$curl --silent -H accept-encoding:gzip $proto://127.0.0.1:$port/compress-jpg/halfdome.jpg | gzip -cd");
- is md5_hex($resp), md5_file("@{[DOC_ROOT]}/halfdome.jpg"), "image compressed using gzip";
-
- subtest "brotli-decompress" => sub {
- plan skip_all => "bro not found"
- unless prog_exists("bro");
- $resp = run_prog("$curl --silent -H accept-encoding:br $proto://127.0.0.1:$port/on/alice.txt | bro --decompress");
- is md5_hex($resp), md5_file("@{[DOC_ROOT]}/alice.txt"), "alice.txt";
- $resp = run_prog("$curl --silent -H accept-encoding:br $proto://127.0.0.1:$port/compress-jpg/halfdome.jpg | bro --decompress");
- is md5_hex($resp), md5_file("@{[DOC_ROOT]}/halfdome.jpg"), "halfdome.jpg";
- };
-});
-
-undef $server;
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50config-tag.t b/web/server/h2o/libh2o/t/50config-tag.t
deleted file mode 100644
index dd37f996d..000000000
--- a/web/server/h2o/libh2o/t/50config-tag.t
+++ /dev/null
@@ -1,111 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $curl = "curl --silent --show-error --dump-header /dev/stderr";
-
-subtest 'basic' => sub {
- my $included = temp_config_file(<< "EOT");
-header.add: &marked "foo: FOO"
-file.dir: @{[DOC_ROOT]}
-EOT
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /: !file $included
-EOT
-
- my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/");
- like $stderr, qr{^HTTP/[^ ]+ 200\s}s;
- like $stderr, qr{^foo: ?FOO\r$}im;
-};
-
-subtest 'multi-hop' => sub {
- my $included2 = temp_config_file(<< "EOT");
-header.add: &marked "foo: FOO"
-file.dir: @{[DOC_ROOT]}
-EOT
- my $included1 = temp_config_file(<< "EOT");
-!file $included2
-EOT
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /: !file $included1
-EOT
-
- my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/");
- like $stderr, qr{^HTTP/[^ ]+ 200\s}s;
- like $stderr, qr{^foo: ?FOO\r$}im;
-};
-
-subtest 'with-alias' => sub {
- my $included = temp_config_file(<< "EOT");
-header.add: &marked "foo: FOO"
-file.dir: @{[DOC_ROOT]}
-EOT
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /: !file $included
- /another:
- header.add: *marked
- file.dir: @{[DOC_ROOT]}
-EOT
-
- subtest 'with_merge' => sub {
- my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/");
- like $stderr, qr{^HTTP/[^ ]+ 200\s}s;
- like $stderr, qr{^foo: ?FOO\r$}im;
- };
-
- subtest 'with_alias' => sub {
- my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/another/");
- like $stderr, qr{^HTTP/[^ ]+ 200\s}s;
- like $stderr, qr{^foo: ?FOO\r$}im;
- };
-};
-
-subtest 'with-merge' => sub {
- my $included2 = temp_config_file(<< "EOT");
-header.add: "foo: FOO"
-EOT
- my $included1 = temp_config_file(<< "EOT");
-<<: !file $included2
-header.append: "bar: BAR"
-EOT
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- <<: !file $included1
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/");
- like $stderr, qr{^HTTP/[^ ]+ 200\s}s;
- like $stderr, qr{^foo: ?FOO\r$}im;
- like $stderr, qr{^bar: ?BAR\r$}im;
-};
-
-done_testing();
-
-sub temp_config_file {
- my ($content) = @_;
- my ($fh, $fn) = tempfile(UNLINK => 1);
- print $fh $content;
- return $fn;
-}
diff --git a/web/server/h2o/libh2o/t/50errordoc.t b/web/server/h2o/libh2o/t/50errordoc.t
deleted file mode 100644
index 6f847dae4..000000000
--- a/web/server/h2o/libh2o/t/50errordoc.t
+++ /dev/null
@@ -1,179 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use Test::Exception;
-use t::Util;
-
-subtest 'basic' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- status: 404
- url: /404.html
-EOT
-
- my $expected = do {
- open my $fh, '<', "@{[DOC_ROOT]}/404.html"
- or die "failed to read file:@{[DOC_ROOT]}/404.html:$!";
- local $/;
- <$fh>;
- };
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/nonexist`;
- is $resp, $expected, "content";
- $resp = `$curl --silent --dump-header /dev/stderr $proto://127.0.0.1:$port/nonexist 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 404\s}s, "status";
- like $resp, qr{\r\ncontent-type:\s*text/html.*\r\n}is, "content-type";
- like $resp, qr{\r\ncontent-length:\s*@{[length $expected]}\r\n}is, "content-length";
- unlike $resp, qr{\r\nlast-modified:}is, "no last-modified";
- unlike $resp, qr{\r\etag:}is, "no etag";
- });
-};
-
-subtest 'double-error' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- status: 404
- url: /nonexist
-EOT
-
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/nonexist`;
- is $resp, "not found", "content";
- $resp = `$curl --silent --dump-header /dev/stderr $proto://127.0.0.1:$port/nonexist 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 404\s}s, "status";
- like $resp, qr{\r\ncontent-type:\s*text/plain.*\r\n}is, "content-type";
- like $resp, qr{\r\ncontent-length:\s*@{[length "not found"]}\r\n}is, "content-length";
- unlike $resp, qr{\r\nlast-modified:}is, "no last-modified";
- unlike $resp, qr{\r\etag:}is, "no etag";
- });
-};
-
-subtest 'redirect' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- status: 404
- url: /subdir
-EOT
-
- my $expected = do {
- open my $fh, '<', "@{[DOC_ROOT]}/subdir/index.txt"
- or die "failed to read file:@{[DOC_ROOT]}/subdir/index.txt:$!";
- local $/;
- <$fh>;
- };
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/nonexist`;
- is $resp, $expected, "content";
- $resp = `$curl --silent --dump-header /dev/stderr $proto://127.0.0.1:$port/nonexist 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 404\s}s, "status";
- like $resp, qr{\r\ncontent-type:\s*text/plain.*\r\n}is, "content-type";
- like $resp, qr{\r\ncontent-length:\s*@{[length $expected]}\r\n}is, "content-length";
- unlike $resp, qr{\r\nlast-modified:}is, "no last-modified";
- unlike $resp, qr{\r\etag:}is, "no etag";
- });
-};
-
-subtest 'multi-error' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- - status: 404
- url: /404.html
- - status: 500
- url: /500.html
-EOT
-
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent --dump-header /dev/stderr $proto://127.0.0.1:$port/nonexist 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 404\s}s, "status";
- });
-};
-
-subtest 'multi-status-error' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- - status: [404, 405]
- url: /404.html
-EOT
-
- my $expected = do {
- open my $fh, '<', "@{[DOC_ROOT]}/404.html"
- or die "failed to read file:@{[DOC_ROOT]}/404.html:$!";
- local $/;
- <$fh>;
- };
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/nonexist`;
- is $resp, $expected, "content";
- $resp = `$curl --silent --dump-header /dev/stderr $proto://127.0.0.1:$port/nonexist 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 404\s}s, "status";
- });
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent -X POST $proto://127.0.0.1:$port/index.txt`;
- is $resp, $expected, "content";
- $resp = `$curl --silent --dump-header /dev/stderr -X POST $proto://127.0.0.1:$port/index.txt 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 405\s}s, "status";
- });
-};
-
-subtest "empty status" => sub {
- throws_ok sub {
- spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- - status: []
- url: /404.html
-EOT
- }, qr/server failed to start/, 'status must not be empty';
-};
-
-subtest "duplicated statuses" => sub {
- throws_ok sub {
- spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-error-doc:
- - status: [@{[ join(', ', (400 .. 599), 599) ]}]
- url: /error.html
-EOT
- }, qr/server failed to start/, 'duplicated statuses';
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50expires.t b/web/server/h2o/libh2o/t/50expires.t
deleted file mode 100644
index d5c25701b..000000000
--- a/web/server/h2o/libh2o/t/50expires.t
+++ /dev/null
@@ -1,47 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-sub fetch {
- my $extra_conf = shift;
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: examples/doc_root
-$extra_conf
-EOT
- return `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/ 2>&1 > /dev/null`;
-}
-
-
-my $resp = fetch('');
-unlike $resp, qr/^cache-control:.*\Wmax-age/im, "off by default";
-
-$resp = fetch(<< 'EOT');
-expires: OFF
-EOT
-unlike $resp, qr/^cache-control:.*\Wmax-age/im, "explicitly turned off";
-
-$resp = fetch(<< 'EOT');
-expires: 1 day
-EOT
-like $resp, qr/^cache-control:.*\Wmax-age=86400\W/im, "expires 1 day";
-
-$resp = fetch(<< 'EOT');
-expires: 1 month
-EOT
-like $resp, qr/^cache-control:.*\Wmax-age=2592000\W/im, "expires 1 month";
-
-$resp = fetch(<< 'EOT');
- expires: OFF
-expires: 1 day
-EOT
-unlike $resp, qr/^cache-control:.*\Wmax-age/im, "on at global, off at path-level";
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50fastcgi-cgi.t b/web/server/h2o/libh2o/t/50fastcgi-cgi.t
deleted file mode 100644
index c9440f391..000000000
--- a/web/server/h2o/libh2o/t/50fastcgi-cgi.t
+++ /dev/null
@@ -1,35 +0,0 @@
-# this test checks the behavior of `file.custom-handler` and `fastcgi.spawn`
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-eval q{use CGI; 1}
- or plan skip_all => 'CGI.pm not found';
-
-# spawn h2o
-my $server = spawn_h2o(<< "EOT");
-file.custom-handler:
- extension: .cgi
- fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi"
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/hello.cgi?name=world`;
- is $resp, "Hello world", "GET";
- $resp = `$curl --silent -F name=world $proto://127.0.0.1:$port/hello.cgi`;
- is $resp, "Hello world", "POST";
-});
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50fastcgi-php.t b/web/server/h2o/libh2o/t/50fastcgi-php.t
deleted file mode 100644
index 58678a936..000000000
--- a/web/server/h2o/libh2o/t/50fastcgi-php.t
+++ /dev/null
@@ -1,54 +0,0 @@
-# this test checks the behavior of `file.custom-handler` and `fastcgi.spawn`
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'php-cgi not found'
- unless prog_exists('php-cgi');
-
-# spawn h2o
-my $server = spawn_h2o(<< "EOT");
-file.custom-handler:
- extension: .php
- fastcgi.spawn: "exec php-cgi"
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-my $resp = `curl --silent http://127.0.0.1:$server->{port}/index.txt`;
-is $resp, "hello\n", 'ordinary file';
-
-$resp = `curl --silent http://127.0.0.1:$server->{port}/hello.php`;
-is $resp, 'hello world', 'php';
-
-subtest 'server-push' => sub {
- plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
- my $doit = sub {
- my ($proto, $port) = @_;
- my $resp = `nghttp -n --stat '$proto://127.0.0.1:$port/hello.php?link=<index.js>\%3b\%20rel=preload'`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n.*\s/hello\.php\?}is, $proto;
- };
- $doit->('http', $server->{port});
- $doit->('https', $server->{tls_port});
-};
-
-subtest 'huge-headers' => sub {
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent --dump-header /dev/stderr --max-redirs 0 $proto://127.0.0.1:$port/issues/951.php 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]* 302 ?}is;
- like $resp, qr{^set-cookie: ?}im;
- });
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50fastcgi.t b/web/server/h2o/libh2o/t/50fastcgi.t
deleted file mode 100644
index bdec377b4..000000000
--- a/web/server/h2o/libh2o/t/50fastcgi.t
+++ /dev/null
@@ -1,139 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'cannot run perl -MPlack::Handler::FCGI'
- if system("perl -MPlack::Handler::FCGI /dev/null > /dev/null 2>&1") != 0;
-
-my $tempdir = tempdir(CLEANUP => 1);
-my $fcgi_port = empty_port();
-
-# gather information of test data
-my %files = map { do {
- my $fn = DOC_ROOT . "/$_";
- +($_ => { size => (stat $fn)[7], md5 => md5_file($fn) });
-} } qw(index.txt halfdome.jpg);
-
-sub doit {
- my ($tcp, $keepalive) = @_;
- subtest "tcp:$tcp,keepalive:$keepalive" => sub {
- # spawn upstream
- unlink "$tempdir/fcgi.sock";
- my $upstream = spawn_server(
- argv => [
- qw(plackup -s FCGI --access-log /dev/null --listen),
- ($tcp ? ":$fcgi_port" : "$tempdir/fcgi.sock"),
- ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- $tcp ? check_port($fcgi_port) : -e "$tempdir/fcgi.sock";
- },
- );
- # spawn h2o
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- fastcgi.connect:
- @{[$tcp ? "host: 127.0.0.1" : ""]}
- port: @{[$tcp ? $fcgi_port : "$tempdir/fcgi.sock"]}
- type: @{[$tcp ? "tcp" : "unix"]}
-fastcgi.timeout.keepalive: @{[$keepalive ? 5000 : 0]}
-EOT
- # the tests
- subtest 'files' => sub {
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- for my $file (sort keys %files) {
- my $content = `$curl --silent --show-error $proto://127.0.0.1:$port/$file`;
- is length($content), $files{$file}->{size}, "$proto://127.0.0.1/$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$proto://127.0.0.1/$file (md5)";
- }
- });
- };
- subtest 'echo' => sub {
- # send header that exceeds the max. length fcgi record (the size of the response also exceeds the record size, and uses chunked encoding)
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- plan skip_all => "skip due to curl bug #659"
- if $curl =~ /--http2/;
- my $content = `$curl --silent --show-error -H foo:@{["0123456789"x7000]} $proto://127.0.0.1:$port/echo-headers`;
- like $content, qr/^foo: (0123456789){7000,7000}$/mi;
- if ($proto eq 'https') {
- like $content, qr/^https: on$/m;
- } else {
- unlike $content, qr/^https: on$/m;
- }
- });
- };
- subtest 'cookie-merge' => sub {
- plan skip_all => "curl does not support HTTP/2"
- unless curl_supports_http2();
- plan skip_all => "cowardly skipping to avoid https://github.com/plack/Plack/pull/511; unless PLACK_ENV=deployment is set"
- unless $ENV{PLACK_ENV} && $ENV{PLACK_ENV} eq 'deployment';
- my $content = `curl --http2 --silent --show-error --insecure -H "cookie:a=b;c=d" https://127.0.0.1:$server->{tls_port}/echo-headers`;
- like $content, qr/^cookie: a=b;\s*c=d$/mi;
- };
- delete $server->{guard};
- };
-}
-
-doit(0, 0);
-doit(1, 0);
-doit(0, 1);
-doit(1, 1);
-
-subtest 'httpoxy' => sub {
- my $doit = sub {
- my ($drop, $cb) = @_;
- unlink "$tempdir/fcgi.sock";
- my $upstream = spawn_server(
- argv => [
- qw(plackup -s FCGI --access-log /dev/null --listen),
- "$tempdir/fcgi.sock",
- ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- -e "$tempdir/fcgi.sock";
- },
- );
- # spawn h2o
- my $dropconf = $drop ? << 'EOT' : "";
- setenv:
- HTTP_PROXY: ""
-EOT
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- fastcgi.connect:
- port: $tempdir/fcgi.sock
- type: unix
-$dropconf
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $content = `$curl --silent --show-error -H proxy:foobar $proto://127.0.0.1:$port/echo-headers`;
- $cb->($content);
- });
- };
- $doit->(undef, sub {
- like $_[0], qr{^proxy: foobar$}mi, "keep";
- });
- $doit->(1, sub {
- like $_[0], qr{^proxy: $}mi, "drop";
- });
-};
-
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50file-config.t b/web/server/h2o/libh2o/t/50file-config.t
deleted file mode 100644
index aa58e697d..000000000
--- a/web/server/h2o/libh2o/t/50file-config.t
+++ /dev/null
@@ -1,143 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest 'root-redirect' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /abc:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my ($stderr, $stdout) = run_prog("$curl --silent --show-error --max-redirs 0 --dump-header /dev/stderr $proto://127.0.0.1:$port/abc");
- like $stderr, qr{^HTTP/[^ ]+ 301\s}s, "is 301";
- like $stderr, qr{^location: ?/abc/\r$}im, "location header";
- });
-};
-
-subtest 'etag' => sub {
- my $fetch = sub {
- my $extra_conf = shift;
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: examples/doc_root
-$extra_conf
-EOT
- return `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/ 2>&1 > /dev/null`;
- };
-
- my $etag_re = qr/^etag: /im;
- my $resp = $fetch->('');
- like $resp, $etag_re, "default is on";
- $resp = $fetch->('file.etag: off');
- unlike $resp, $etag_re, "off";
- $resp = $fetch->('file.etag: on');
- like $resp, $etag_re, "on";
-};
-
-subtest 'send-compressed' => sub {
- my $doit = sub {
- my ($send_compressed, $curl_opts, $paths, $expected_length) = @_;
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: t/assets/doc_root
-@{[ $send_compressed ? "file.send-compressed: $send_compressed" : "" ]}
-EOT
- my $fetch = sub {
- my $path = shift;
- subtest "send-compressed:@{[ $send_compressed || q(default) ]}, $curl_opts, $path" => sub {
- my $resp = `curl --silent --dump-header /dev/stderr $curl_opts http://127.0.0.1:$server->{port}$path 2>&1 > /dev/null`;
- if ($send_compressed ne 'gunzip') {
- like $resp, qr/^content-length:\s*$expected_length\r$/im, "length is as expected";
- }
- if ($send_compressed eq 'ON' || $send_compressed eq 'gunzip') {
- like $resp, qr/^vary:\s*accept-encoding\r$/im, "has vary set";
- } else {
- unlike $resp, qr/^vary:\s*accept-encoding\r$/im, "not has vary set";
- }
- };
- };
- $fetch->($_) for @$paths;
- };
-
- my $index_orig_len = (stat 't/assets/doc_root/index.txt')[7];
- my $index_gz_len = (stat 't/assets/doc_root/index.txt.gz')[7];
- my $index_br_len = (stat 't/assets/doc_root/index.txt.br')[7];
- my $alice2_orig_len = `gzip -cd < t/assets/doc_root/alice2.txt.gz | wc -c`;
- my $alice2_gz_len = (stat 't/assets/doc_root/alice2.txt.gz')[7];
-
- $doit->("", "", ['/index.txt', '/'], $index_orig_len);
- $doit->("", q{--header "Accept-Encoding: gzip"}, ['/index.txt', '/'], $index_orig_len);
- $doit->("OFF", q{--header "Accept-Encoding: gzip"}, ['/index.txt', '/'], $index_orig_len);
- $doit->("OFF", q{--header "Accept-Encoding: br, gzip"}, ['/index.txt', '/'], $index_orig_len);
-
- $doit->("ON", "", ['/index.txt', '/'], $index_orig_len);
- $doit->("ON", q{--header "Accept-Encoding: gzip"}, ['/index.txt', '/'], $index_gz_len);
- $doit->("ON", q{--header "Accept-Encoding: gzip, deflate"}, ['/index.txt', '/'], $index_gz_len);
- $doit->("ON", q{--header "Accept-Encoding: deflate, gzip"}, ['/index.txt', '/'], $index_gz_len);
- $doit->("ON", q{--header "Accept-Encoding: deflate"}, ['/index.txt', '/'], $index_orig_len);
- $doit->("ON", q{--header "Accept-Encoding: br, gzip"}, ['/index.txt', '/'], $index_br_len);
- $doit->("ON", q{--header "Accept-Encoding: gzip, br"}, ['/index.txt', '/'], $index_br_len);
- $doit->("ON", q{--header "Accept-Encoding: br"}, ['/index.txt', '/'], $index_br_len);
-
- $doit->("gunzip", "", ['/alice2.txt'], $alice2_orig_len);
- $doit->("gunzip", q{--header "Accept-Encoding: gzip"}, ['/alice2.txt'], $alice2_gz_len);
-
-
- subtest 'MSIE-workaround' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: t/assets/doc_root
- file.send-gzip: ON
-EOT
- my $resp = `curl --silent --dump-header /dev/stderr --user-agent "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" --header "Accept-Encoding: gzip" http://127.0.0.1:$server->{port}/ 2>&1 > /dev/null`;
- like $resp, qr/^content-length:\s*$index_gz_len\r$/im, "length is as expected";
- like $resp, qr/^cache-control:.*private.*\r$/im, "cache-control: private";
- unlike $resp, qr/^vary:/im, "no vary";
- };
-};
-
-subtest 'dir-listing' => sub {
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /off:
- file.dir: examples/doc_root
- file.dirlisting: off
- /on:
- file.dir: examples/doc_root
- file.dirlisting: on
- file.index: []
-EOT
-
- my $fetch = sub {
- my $path = shift;
- run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}$path");
- };
-
- my ($headers, $content) = $fetch->("/on/");
- like $headers, qr{^HTTP/1\.[0-9]+ 200 }s, "ON returns 200";
- unlike $content, qr{examples}, "result should not include internal info";
- ($headers, $content) = $fetch->("/off/");
- like $headers, qr{^HTTP/1\.[0-9]+ 403 }s, "OFF returns 403";
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50file-custom-handler.t b/web/server/h2o/libh2o/t/50file-custom-handler.t
deleted file mode 100644
index 1acc9c1e7..000000000
--- a/web/server/h2o/libh2o/t/50file-custom-handler.t
+++ /dev/null
@@ -1,96 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest 'cgi file' => sub {
- eval q{use CGI; 1}
- or plan skip_all => 'CGI.pm not found';
-
- # spawn h2o
- my $server = spawn_h2o(<< "EOT");
-file.custom-handler:
- extension: .cgi
- fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi"
-hosts:
- default:
- paths:
- /robots.txt:
- file.file: @{[DOC_ROOT]}/hello.cgi
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $cmd) = @_;
- my $resp = `$cmd --silent $proto://127.0.0.1:$port/robots.txt?name=Tobor`;
- is $resp, "Hello Tobor";
- });
-};
-
-subtest 'directory containing cgi files' => sub {
- eval q{use CGI; 1}
- or plan skip_all => 'CGI.pm not found';
-
- # spawn h2o
- my $server = spawn_h2o(<< "EOT");
-file.custom-handler:
- extension: [".cgi"]
- fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi"
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $cmd) = @_;
- my $resp = `$cmd --silent $proto://127.0.0.1:$port/hello.cgi?name=Tobor`;
- is $resp, "Hello Tobor";
- });
-};
-
-subtest 'SCRIPT_NAME and PATH_INFO for fastcgi' => sub {
- eval q{use CGI; 1}
- or plan skip_all => 'CGI.pm not found';
-
- # spawn h2o
- my $server = spawn_h2o(<< "EOT");
-file.index: ['printenv.cgi']
-file.custom-handler:
- extension: .cgi
- fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi"
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
- /foo:
- file.dir: @{[DOC_ROOT]}
-EOT
- my $doit = sub {
- my ($path, $expected) = @_;
- subtest $path => sub {
- my $resp = `curl --silent http://127.0.0.1:$server->{port}$path`;
- my $env = +{ map { split(':', $_, 2) } split(/\n/, $resp) };
- for my $key (sort keys %$expected) {
- is $env->{$key}, $expected->{$key}, $key;
- }
- };
- };
-
- $doit->('/printenv.cgi',
- +{ SCRIPT_NAME => '/printenv.cgi', PATH_INFO => undef });
- $doit->('/printenv.cgi/path/info',
- +{ SCRIPT_NAME => '/printenv.cgi', PATH_INFO => '/path/info' });
- $doit->('/foo/printenv.cgi/path/info',
- +{ SCRIPT_NAME => '/foo/printenv.cgi', PATH_INFO => '/path/info' });
- $doit->('/',
- +{ SCRIPT_NAME => '/printenv.cgi', PATH_INFO => undef });
- $doit->('/foo/',
- +{ SCRIPT_NAME => '/foo/printenv.cgi', PATH_INFO => undef });
-
-};
-
-done_testing;
-
diff --git a/web/server/h2o/libh2o/t/50file-file.t b/web/server/h2o/libh2o/t/50file-file.t
deleted file mode 100644
index 7dd3b9228..000000000
--- a/web/server/h2o/libh2o/t/50file-file.t
+++ /dev/null
@@ -1,54 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest 'static' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /favicon.ico:
- file.file: @{[DOC_ROOT]}/halfdome.jpg
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $cmd) = @_;
- my $fetch = sub {
- my $path = shift;
- return `$cmd --silent --dump-header /dev/stderr --max-redirs 0 $proto://127.0.0.1:$port$path 2>&1 > /dev/null`;
- };
- my $resp = $fetch->("/");
- like $resp, qr{^HTTP/[0-9\.]+ 404}is;
- $resp = $fetch->("/favicon.ico");
- like $resp, qr{^HTTP/[0-9\.]+ 200}is;
- like $resp, qr{^content-type:\s*image/jpeg\r$}im; # type is inferred from the extension of the real file
- like $resp, qr{^content-length:\s*@{[(stat "@{[DOC_ROOT]}/halfdome.jpg")[7]]}\r$}im;
- });
-};
-
-subtest 'dynamic' => sub {
- eval q{use CGI; 1}
- or plan skip_all => 'CGI.pm not found';
-
- # spawn h2o
- my $server = spawn_h2o(<< "EOT");
-file.custom-handler:
- extension: .cgi
- fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi"
-hosts:
- default:
- paths:
- /robots.txt:
- file.file: @{[DOC_ROOT]}/hello.cgi
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $cmd) = @_;
- my $resp = `$cmd --silent $proto://127.0.0.1:$port/robots.txt?name=Tobor`;
- is $resp, "Hello Tobor";
- });
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50file-range.t b/web/server/h2o/libh2o/t/50file-range.t
deleted file mode 100644
index 826a2d283..000000000
--- a/web/server/h2o/libh2o/t/50file-range.t
+++ /dev/null
@@ -1,100 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $all_data = do {
- open my $fh, "<", "@{[DOC_ROOT]}/halfdome.jpg"
- or die "failed to open file:@{[DOC_ROOT]}/halfdome.jpg:$!";
- undef $/;
- <$fh>;
-};
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl_cmd) = @_;
- $curl_cmd .= " --silent --show-error";
- my $url = "$proto://127.0.0.1:$port/halfdome.jpg";
-
- subtest "non-ranged" => sub {
- my $resp = `$curl_cmd $url`;
- is $resp, $all_data;
- };
-
- subtest "single-ranged" => sub {
- subtest "closed" => sub {
- my $resp = `$curl_cmd -r 100-499 $url`;
- is $resp, substr($all_data, 100, 400), "content";
-
- my $headers = `$curl_cmd -r 100-499 --dump-header /dev/stderr $url 2>&1 > /dev/null`;
- like $headers, qr{^content-type:\s*image/jpeg\r$}mi, "content-type";
- like $headers, qr{^content-range:\s*bytes 100-499/@{[length $all_data]}\r}mi, "content-range";
- };
-
- subtest "closed-exceed-end" => sub {
- my $resp = `$curl_cmd -r 100-999999 $url`;
- is $resp, substr($all_data, 100), "content";
-
- my $headers = `$curl_cmd -r 100-999999 --dump-header /dev/stderr $url 2>&1 > /dev/null`;
- like $headers, qr{^content-type:\s*image/jpeg\r$}mi, "content-type";
- like $headers, qr{^content-range:\s*bytes 100-@{[length($all_data) - 1]}/@{[length $all_data]}\r}mi, "content-range";
- };
-
- subtest "closed-unsatisfied" => sub {
- my $headers = `$curl_cmd --dump-header /dev/stderr -r 999999-999999 $url 2>&1 > /dev/null`;
- like $headers, qr{^HTTP/[^ ]+ 416\s}mi, "416 response";
- };
-
- subtest "tail-open" => sub {
- my $resp = `$curl_cmd -r 100- $url`;
- is $resp, substr($all_data, 100), "content";
-
- my $headers = `$curl_cmd -r 100- --dump-header /dev/stderr $url 2>&1 > /dev/null`;
- like $headers, qr{^content-type:\s*image/jpeg\r$}mi, "content-type";
- like $headers, qr{^content-range:\s*bytes 100-@{[length($all_data) - 1]}/@{[length $all_data]}\r}mi, "content-range";
- };
-
- subtest "suffix" => sub {
- my $resp = `$curl_cmd -r -100 $url`;
- is $resp, substr($all_data, -100), "content";
-
- my $headers = `$curl_cmd -r -100 --dump-header /dev/stderr $url 2>&1 > /dev/null`;
- like $headers, qr{^content-type:\s*image/jpeg\r$}mi, "content-type";
- like $headers, qr{^content-range:\s*bytes @{[length($all_data) - 100]}-@{[length($all_data) - 1]}/@{[length $all_data]}\r}mi, "content-range";
- };
-
- subtest "suffix-exceed" => sub {
- my $resp = `$curl_cmd -r -999999 $url`;
- is $resp, $all_data, "content";
-
- my $headers = `$curl_cmd -r -999999 --dump-header /dev/stderr $url 2>&1 > /dev/null`;
- like $headers, qr{^content-type:\s*image/jpeg\r$}mi, "content-type";
- like $headers, qr{^content-range:\s*bytes 0-@{[length($all_data) - 1]}/@{[length $all_data]}\r}mi, "content-range";
- };
- };
-
- subtest "multi-ranged" => sub {
- my $resp = `$curl_cmd -r 100-199,1000-1099 $url`;
- my @chunks = split /(?:^|\r\n)--[0-9A-Za-z]{20}/s, $resp;
- is scalar(@chunks), 4, "number of ranges";
- is $chunks[0], "", "before first boundary";
- is substr($chunks[1], -104), "\r\n\r\n" . substr($all_data, 100, 100), "first chunk";
- is substr($chunks[2], -104), "\r\n\r\n" . substr($all_data, 1000, 100), "second chunk";
- is $chunks[3], "--\r\n", "last boundary";
-
- my $headers = `$curl_cmd -r 100-199,1000-1099 --dump-header /dev/stderr $url 2>&1 > /dev/null`;
- like $headers, qr{^content-type:\s*multipart/byteranges; boundary=[0-9A-Za-z]{20}\r$}mi, "content-type";
- };
-});
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50file.t b/web/server/h2o/libh2o/t/50file.t
deleted file mode 100644
index c3474068b..000000000
--- a/web/server/h2o/libh2o/t/50file.t
+++ /dev/null
@@ -1,22 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest 'trailing-slash' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-EOT
-
- my $resp = `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/index.txt/ 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1.1 404 File Not Found}s, "status";
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50headers.t b/web/server/h2o/libh2o/t/50headers.t
deleted file mode 100644
index b930a07c3..000000000
--- a/web/server/h2o/libh2o/t/50headers.t
+++ /dev/null
@@ -1,25 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload "
-header.unset: last-modified
-EOT
-
-my $resp = `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/index.txt 2>&1 > /dev/null`;
-like $resp, qr{^HTTP/1\.1 200 }s, "200 response";
-like $resp, qr{^strict-transport-security: max-age=31536000; includeSubDomains; preload\r$}im, "hsts added";
-is +(() = $resp =~ m{^strict-transport-security:}img), 1, "header added only once";
-unlike $resp, qr{^last-modified: }, "last-modified unset";
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50http2_debug_state.t b/web/server/h2o/libh2o/t/50http2_debug_state.t
deleted file mode 100644
index b78dee413..000000000
--- a/web/server/h2o/libh2o/t/50http2_debug_state.t
+++ /dev/null
@@ -1,69 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use Test::Exception;
-use t::Util;
-use JSON;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest 'minimum' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- http2-debug-state: minimum
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- run_with_curl($server, sub {
- my ($proto, $port, $curl_cmd) = @_;
- $curl_cmd .= " --silent --show-error";
- my $url = "$proto://127.0.0.1:$port/.well-known/h2/state";
-
- if ($curl_cmd =~ /--http2/) {
- subtest "single stream itself" => sub {
- my ($headers, $body) = run_prog("$curl_cmd --dump-header /dev/stderr $url");
- like($headers, qr!^HTTP/2(\.0)? 200!);
- my $data;
- lives_ok { $data = decode_json($body) };
- is($data->{streams}->{1}->{state}, 'HALF_CLOSED_REMOTE');
- };
- } else {
- subtest "return_404_when_http1" => sub {
- my ($headers, $body) = run_prog("$curl_cmd --dump-header /dev/stderr $url");
- like($headers, qr!^HTTP/1.1 404!);
- };
- }
- });
-};
-
-subtest 'hpack' => sub {
- plan skip_all => "curl does not support HTTP/2"
- unless curl_supports_http2();
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- http2-debug-state: hpack
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- my ($proto, $port) = ('https', $server->{tls_port});
- my $curl_cmd = 'curl --insecure --http2 --silent --show-error --dump-header /dev/stderr';
- my $url = "$proto://127.0.0.1:$port/.well-known/h2/state";
-
- subtest "with hpack state" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $url");
- like($headers, qr!^HTTP/2(\.0)? 200!);
- my $data;
- lives_ok { $data = decode_json($body) };
- ok(exists $data->{hpack});
- };
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50internal-redirect.t b/web/server/h2o/libh2o/t/50internal-redirect.t
deleted file mode 100644
index 01311e517..000000000
--- a/web/server/h2o/libh2o/t/50internal-redirect.t
+++ /dev/null
@@ -1,117 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Net::EmptyPort qw(check_port empty_port);
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-plan skip_all => "curl not found"
- unless prog_exists("curl");
-
-my $upstream_port = empty_port();
-my $upstream = spawn_server(
- argv => [ qw(plackup -s Starlet --access-log /dev/null --listen), $upstream_port, ASSETS_DIR . "/upstream.psgi" ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-subtest 'reproxy' => sub {
- my ($port1, $port2) = empty_ports(2, { host => "0.0.0.0" });
- my $path_conf = << "EOT";
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
- doit($port1, $path_conf, $port2, $path_conf, sub {
- `curl --silent 'http://127.0.0.1:$port1/?resp:x-reproxy-url=http://127.0.0.1:$port2/'`;
- });
-};
-
-subtest 'location' => sub {
- my ($port1, $port2) = empty_ports(2, { host => "0.0.0.0" });
- my $path_conf1 = << "EOT";
- redirect:
- status: 302
- internal: YES
- url: http://127.0.0.1:$port2/
-EOT
- my $path_conf2 = << "EOT";
- file.dir: t/assets/doc_root
-EOT
- doit($port1, $path_conf1, $port2, $path_conf2, sub {
- `curl --silent --max-redirs 0 'http://127.0.0.1:$port1/'`;
- });
-};
-
-subtest 'errordoc' => sub {
- my ($port1, $port2) = empty_ports(2, { host => "0.0.0.0" });
- my $path_conf1 = << "EOT";
- file.dir: t/assets/doc_root
- error-doc:
- status: 404
- url: http://127.0.0.1:$port2/index.txt
-EOT
- my $path_conf2 = << "EOT";
- file.dir: t/assets/doc_root
-EOT
- doit($port1, $path_conf1, $port2, $path_conf2, sub {
- `curl --silent 'http://127.0.0.1:$port1/404'`;
- });
-};
-
-done_testing;
-
-sub doit {
- my ($port1, $path_conf1, $port2, $path_conf2, $cb) = @_;
- (undef, my $access_log) = tempfile(UNLINK => 1);
- my $conf = << "EOT";
-access-log: $access_log
-reproxy: ON
-hosts:
- "127.0.0.1:$port1":
- listen:
- host: 0.0.0.0
- port: $port1
- paths:
- "/":
-$path_conf1
- "127.0.0.1:$port2":
- listen:
- host: 0.0.0.0
- port: $port2
- paths:
- "/":
-$path_conf2
-EOT
- my $server = _spawn_h2o_raw($conf, [$port1, $port2]);
- $cb->();
-
- my @log = do {
- open my $fh, '<', $access_log or die "failed to open log file: $!";
- <$fh>;
- };
- is scalar(@log), 1, 'redirected internally';
-}
-
-sub _spawn_h2o_raw {
- my ($conf, $ports) = @_;
- my @opts;
-
- my ($conffh, $conffn) = tempfile(UNLINK => 1);
- print $conffh $conf;
-
- my ($guard, $pid) = spawn_server(
- argv => [ bindir() . "/h2o", "-c", $conffn ],
- is_ready => sub {
- check_port($_) or return for @$ports;
- 1;
- },
- );
- my $ret = {
- guard => $guard,
- pid => $pid,
- conf_file => $conffn,
- };
- return $ret;
-}
-
diff --git a/web/server/h2o/libh2o/t/50mimemap.t b/web/server/h2o/libh2o/t/50mimemap.t
deleted file mode 100644
index c85febd97..000000000
--- a/web/server/h2o/libh2o/t/50mimemap.t
+++ /dev/null
@@ -1,88 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-my $CURL_CMD = q{curl --silent --show-error --output /dev/null --write-out '%{content_type}'};
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "basic" => sub {
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- file.dir: t/50mimemap/doc_root
- /addtypes:
- file.dir: t/50mimemap/doc_root
- file.mime.addtypes:
- application/xhtml+xml: .xhtml
- /removetypes:
- file.dir: t/50mimemap/doc_root
- file.mime.removetypes:
- - .xhtml
- /settypes:
- file.dir: t/50mimemap/doc_root
- file.mime.settypes:
- text/xml: .xhtml
- file.mime.addtypes:
- application/xml: .xhtml
- default-type-test:
- paths:
- /:
- file.dir: t/50mimemap/doc_root
- file.mime.setdefaulttype: application/xhtml+xml
-file.index:
- - index.xhtml
-EOT
-
- my $port = $server->{port};
- my %expected = (
- '/' => 'application/xml',
- '/addtypes/' => 'application/xhtml+xml',
- '/removetypes/' => 'application/octet-stream',
- '/settypes/' => 'text/xml',
- );
-
- for my $path (sort keys %expected) {
- my $ct = `$CURL_CMD http://127.0.0.1:$port$path`;
- is $ct, $expected{$path}, "$path";
- $ct = `$CURL_CMD http://127.0.0.1:$port${path}index.xhtml`;
- is $ct, $expected{$path}, "${path}index.xhtml";
- }
-
- my $ct = `$CURL_CMD --header 'host: default-type-test' http://127.0.0.1:$port/`;
- is $ct, 'application/xhtml+xml', 'setdefaulttype';
-};
-
-subtest "issue730" => sub {
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- file.dir: t/assets/doc_root
-file.mime.addtypes:
- "text/plain; charset=mycharset": ".txt"
-EOT
- my $ct = `$CURL_CMD http://127.0.0.1:$server->{port}/index.txt`;
- is $ct, "text/plain; charset=mycharset";
-};
-
-subtest "reset mimemap to minimum" => sub {
- my $server = spawn_h2o(<< 'EOT');
-file.mime.setdefaulttype: "application/octet-stream"
-file.mime.settypes: {}
-hosts:
- default:
- paths:
- /:
- file.dir: t/assets/doc_root
-EOT
- my $ct = `$CURL_CMD http://127.0.0.1:$server->{port}/index.txt`;
- is $ct, "application/octet-stream";
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml b/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml
deleted file mode 100644
index ce0136250..000000000
--- a/web/server/h2o/libh2o/t/50mimemap/doc_root/index.xhtml
+++ /dev/null
@@ -1 +0,0 @@
-hello
diff --git a/web/server/h2o/libh2o/t/50mruby-acl.t b/web/server/h2o/libh2o/t/50mruby-acl.t
deleted file mode 100644
index 0c84a6821..000000000
--- a/web/server/h2o/libh2o/t/50mruby-acl.t
+++ /dev/null
@@ -1,39 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use Test::Exception;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-subtest "invalid configuration 1" => sub {
- throws_ok sub {
- spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- acl { respond(403) }
- acl { respond(200) }
-EOT
- }, qr/server failed to start/, 'acl cannot be called more than once';
-};
-
-subtest "invalid configuration 2" => sub {
- throws_ok sub {
- spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- acl { respond(403) }
- proc {|env| [200, {}, []]}
-EOT
- }, qr/server failed to start/, 'acl configuration is ignored';
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50mruby-dos-detector.t b/web/server/h2o/libh2o/t/50mruby-dos-detector.t
deleted file mode 100644
index 6b7cdc561..000000000
--- a/web/server/h2o/libh2o/t/50mruby-dos-detector.t
+++ /dev/null
@@ -1,111 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "default callback" => sub {
- my $server = spawn_h2o(<< 'EOT');
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- require "share/h2o/mruby/dos_detector.rb"
- DoSDetector.new({
- :strategy => DoSDetector::CountingStrategy.new({ :period => 1000, :threshold => 2, :ban_period => 1 << 32 }),
- })
- mruby.handler:
- Proc.new do |env|
- [200, {}, []]
- end
-EOT
- subtest "forbidden" => sub {
- {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }s, "status";
- }
- {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 403 }s, "status";
- is $body, "Forbidden", "content";
- }
- };
-};
-
-subtest "fallthrough callback" => sub {
- my $server = spawn_h2o(<< 'EOT');
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- require "share/h2o/mruby/dos_detector.rb"
- DoSDetector.new({
- :strategy => DoSDetector::CountingStrategy.new({ :period => 1000, :threshold => 2, :ban_period => 1 << 32 }),
- :callback => DoSDetector.fallthrough_callback,
- })
- mruby.handler:
- Proc.new do |env|
- [200, {}, ["DOS_COUNT is ", env["DOS_COUNT"], ", DOS_IP is ", env["DOS_IP"]]]
- end
-EOT
- subtest "success" => sub {
- {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }s, "status";
- }
- {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }s, "status";
- is $body, "DOS_COUNT is 2, DOS_IP is 127.0.0.1", "content";
- }
- };
-};
-
-subtest "customized callback" => sub {
- my $server = spawn_h2o(<< 'EOT');
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- require "share/h2o/mruby/dos_detector.rb"
- DoSDetector.new({
- :strategy => DoSDetector::CountingStrategy.new({ :period => 1000, :threshold => 2, :ban_period => 1 << 32 }),
- :callback => Proc.new do |env, detected, ip|
- if detected
- [503, {}, ["Service Unavailable"]]
- else
- [399, {}, []]
- end
- end
- })
- mruby.handler:
- Proc.new do |env|
- [200, {}, []]
- end
-EOT
- subtest "success" => sub {
- {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }s, "status";
- }
- {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 503 }s, "status";
- is $body, "Service Unavailable", "content";
- }
- };
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50mruby-htpasswd.t b/web/server/h2o/libh2o/t/50mruby-htpasswd.t
deleted file mode 100644
index 31cbf5961..000000000
--- a/web/server/h2o/libh2o/t/50mruby-htpasswd.t
+++ /dev/null
@@ -1,48 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "basic" => sub {
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- require "share/h2o/mruby/htpasswd.rb"
- Htpasswd.new("t/assets/.htpasswd", "protected space")
- mruby.handler:
- Proc.new do |env|
- [200, {}, ["hello ", env["REMOTE_USER"], "\n"]]
- end
-EOT
- subtest "no-auth" => sub {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 401 }s, "status";
- like $headers, qr{\r\nwww-authenticate: basic realm="protected space"\r}is, "www-authenticate header";
- unlike $body, qr/hello/;
- };
-
- subtest "fail" => sub {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://aaa:aaa\@127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 401 }s, "status";
- like $headers, qr{\r\nwww-authenticate: basic realm="protected space"\r}is, "www-authenticate header";
- unlike $body, qr/hello/;
- };
-
- subtest "success" => sub {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://dankogai:kogaidan\@127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }s, "status";
- is $body, "hello dankogai\n", "content";
- };
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50mruby-http-request.t b/web/server/h2o/libh2o/t/50mruby-http-request.t
deleted file mode 100644
index 991d34ba0..000000000
--- a/web/server/h2o/libh2o/t/50mruby-http-request.t
+++ /dev/null
@@ -1,269 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Net::EmptyPort qw(empty_port check_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $upstream_hostport = "127.0.0.1:@{[empty_port()]}";
-
-sub create_upstream {
- my @args = (
- qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen),
- $upstream_hostport,
- ASSETS_DIR . "/upstream.psgi",
- );
- spawn_server(
- argv => \@args,
- is_ready => sub {
- $upstream_hostport =~ /:([0-9]+)$/s
- or die "failed to extract port number";
- check_port($1);
- },
- );
-};
-
-my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-proxy.timeout.io: 1000
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- headers = {}
- env.each do |key, value|
- if /^HTTP_/.match(key)
- headers[\$'] = value
- end
- end
- headers["x-h2o-mruby"] = "1"
- http_request("http://$upstream_hostport#{env["PATH_INFO"]}#{env["QUERY_STRING"]}", {
- method: env["REQUEST_METHOD"],
- headers: headers,
- body: env["rack.input"],
- }).join
- end
- /as_str:
- mruby.handler: |
- Proc.new do |env|
- [200, {}, [http_request("http://$upstream_hostport/index.txt").join[2].join]]
- end
- /cl:
- mruby.handler: |
- Proc.new do |env|
- if !/^\\/([0-9]+)/.match(env["PATH_INFO"])
- raise "failed to parse PATH_INFO"
- end
- cl = \$1
- body = ["abc", "def", "ghi", "jkl", "mno"]
- if \$'.length != 0
- class T
- def initialize(a)
- \@a = a
- end
- def each(&b)
- \@a.each(&b)
- end
- end
- body = T.new(body)
- end
- [200, {"content-length" => cl}, body]
- end
- /esi:
- mruby.handler: |
- class ESIResponse
- def initialize(input)
- \@parts = input.split /(<esi:include +src=".*?" *\\/>)/
- \@parts.each_with_index do |part, index|
- if /^<esi:include +src=" *(.*?) *"/.match(part)
- \@parts[index] = http_request("http://$upstream_hostport/#{\$1}")
- end
- end
- end
- def each(&block)
- \@parts.each do |part|
- if part.kind_of? String
- block.call(part)
- else
- part.join[2].each(&block)
- end
- end
- end
- end
- Proc.new do |env|
- resp = http_request("http://$upstream_hostport/esi.html").join
- resp[2] = ESIResponse.new(resp[2].join)
- resp
- end
- /fast-path-partial:
- mruby.handler: |
- Proc.new do |env|
- resp = http_request("http://$upstream_hostport/streaming-body").join
- resp[2].each do |x|
- break
- end
- resp
- end
- /async-delegate:
- mruby.handler: |
- Proc.new do |env|
- resp = http_request("http://$upstream_hostport#{env["PATH_INFO"]}").join
- if resp[0] != 200
- resp = [399, {}, []]
- end
- resp
- end
- mruby.handler: |
- Proc.new do |env|
- [200, {}, ["delegated!"]]
- end
-EOT
-});
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl_cmd) = @_;
- $curl_cmd .= ' --silent --dump-header /dev/stderr';
- subtest "connection-error" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/index.txt");
- like $headers, qr{HTTP/[^ ]+ 500\s}is;
- };
- my $upstream = create_upstream();
- subtest "get" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/index.txt");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, "hello\n";
- };
- subtest "headers" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/echo-headers");
- like $headers, qr{^HTTP/[^ ]+ 200\s}is;
- like $body, qr{^host: $upstream_hostport$}im;
- unlike $body, qr{^host: 127.0.0.1:$port$}im;
- like $body, qr{^user-agent: *curl/}im;
- like $body, qr{^accept: *\*/\*$}im;
- like $body, qr{^x-h2o-mruby:}im;
- };
- subtest "post" => sub {
- my ($headers, $body) = run_prog("$curl_cmd --data 'hello world' $proto://127.0.0.1:$port/echo");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, 'hello world';
- };
- subtest "slow-chunked" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/streaming-body");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, (join "", 1..30);
- };
- subtest "as_str" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/as_str/");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, "hello\n";
- };
- subtest "content-length" => sub {
- subtest "non-chunked" => sub {
- for my $i (0..15) {
- subtest "cl=$i" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/cl/$i");
- like $headers, qr{^HTTP/[^ ]+ 200\s.*\ncontent-length:\s*$i\r}is;
- is $body, substr "abcdefghijklmno", 0, $i;
- }
- };
- for my $i (16..30) {
- subtest "cl=$i" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/cl/$i");
- like $headers, qr{^HTTP/[^ ]+ 200\s.*\ncontent-length:\s*15\r}is;
- is $body, "abcdefghijklmno";
- }
- };
- };
- subtest "chunked" => sub {
- for my $i (0..30) {
- subtest "cl=$i" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/cl/$i/chunked");
- like $headers, qr{^HTTP/[^ ]+ 200\s.*\ncontent-length:\s*$i\r}is;
- is $body, substr "abcdefghijklmno", 0, $i;
- }
- };
- };
- };
- subtest "esi" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/esi/");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, "Hello to the world, from H2O!\n";
- };
- subtest "fast-path-partial" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/fast-path-partial/");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, join "", 2..30;
- };
- subtest "async-delegate" => sub {
- subtest "non-delegated" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/async-delegate/index.txt");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, "hello\n";
- };
- subtest "delegated" => sub {
- my ($headers, $body) = run_prog("$curl_cmd $proto://127.0.0.1:$port/async-delegate/notfound");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, "delegated!";
- };
- };
-});
-
-subtest 'empty body' => sub {
- my $upstream = create_upstream();
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- default:
- paths:
- /no-content:
- mruby.handler: |
- proc {|env|
- resp = http_request("http://$upstream_hostport/no-content").join
- resp[2] = [resp[2].join]
- resp
- }
- /head:
- mruby.handler: |
- proc {|env|
- resp = http_request("http://$upstream_hostport/index.txt", { :method => 'HEAD' }).join
- resp[2] = [resp[2].join]
- resp
- }
-EOT
- });
-
- run_with_curl($server, sub {
- my ($proto, $port, $curl_cmd) = @_;
- $curl_cmd .= ' --silent --dump-header /dev/stderr';
-
- subtest "no content" => sub {
- my ($headers, $body) = run_prog("$curl_cmd -m 1 $proto://127.0.0.1:$port/no-content");
- like $headers, qr{HTTP/[^ ]+ 204\s}is;
- is $body, "";
- };
-
- subtest "head" => sub {
- my ($headers, $body) = run_prog("$curl_cmd -m 1 $proto://127.0.0.1:$port/head");
- like $headers, qr{HTTP/[^ ]+ 200\s}is;
- is $body, "";
- };
- });
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50mruby.t b/web/server/h2o/libh2o/t/50mruby.t
deleted file mode 100644
index d93f17e04..000000000
--- a/web/server/h2o/libh2o/t/50mruby.t
+++ /dev/null
@@ -1,541 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "handler-file" => sub {
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- mruby.handler-file: t/50mruby/hello.rb
-EOT
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- is $body, "hello from h2o_mruby\n";
- like $headers, qr{^HTTP/1\.1 200 OK\r\n}s;
- like $headers, qr{^content-type: text/plain; charset=utf-8\r$}im;
-};
-
-subtest "basic" => sub {
- my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /inline:
- mruby.handler: |
- Proc.new do |env|
- [200, {}, ["hello from h2o_mruby\n"]]
- end
- /return-404:
- mruby.handler: |
- Proc.new do |env|
- [404, {}, ["not found"]]
- end
- file.dir: examples/doc_root
- /fallthru:
- mruby.handler: |
- Proc.new do |env|
- [399, {}, []]
- end
- file.dir: t/50mruby/
- /echo:
- mruby.handler: |
- Proc.new do |env|
- [200, {}, [JSON.generate(env)]]
- end
- /headers:
- mruby.handler: |
- Proc.new do |env|
- [200, {"foo" => "123\n456", "bar" => "baz"}, []]
- end
- /headers-each:
- mruby.handler: |
- Proc.new do |env|
- [200, [["content-type", "text/plain"], ["hello", "world"]], []]
- end
-EOT
- my $fetch = sub {
- my $path = shift;
- run_prog("curl --silent -A h2o_mruby_test --dump-header /dev/stderr http://127.0.0.1:$server->{port}$path");
- };
- my ($headers, $body) = $fetch->("/inline/");
- is $body, "hello from h2o_mruby\n", "inline";
- subtest "return-404" => sub {
- ($headers, $body) = $fetch->("/return-404/");
- like $headers, qr{^HTTP/1\.1 404 }is;
- is $body, "not found";
- };
- subtest "fallthru" => sub {
- ($headers, $body) = $fetch->("/fallthru/");
- like $headers, qr{^HTTP/1\.1 200 OK\r\n}is;
- is md5_hex($body), md5_file("t/50mruby/index.html");
- };
- subtest "echo" => sub {
- ($headers, $body) = $fetch->("/echo/abc?def");
- like $body, qr{"REQUEST_METHOD":"GET"}, "REQUEST_METHOD";
- like $body, qr{"SCRIPT_NAME":"/echo"}, "SCRIPT_NAME";
- like $body, qr{"PATH_INFO":"/abc"}, "PATH_INFO";
- like $body, qr{"QUERY_STRING":"def"}, "QUERY_STRING";
- like $body, qr{"SERVER_NAME":"default"}, "SERVER_NAME";
- like $body, qr{"SERVER_ADDR":"127.0.0.1"}, "SERVER_ADDR";
- like $body, qr{"SERVER_PORT":"$server->{port}"}, "SERVER_PORT";
- like $body, qr{"HTTP_HOST":"127.0.0.1:$server->{port}"}, "HTTP_HOST";
- like $body, qr{"SERVER_ADDR":"127.0.0.1"}, "REMOTE_ADDR";
- like $body, qr{"SERVER_PORT":"[0-9]+"}, "REMOTE_PORT";
- like $body, qr{"HTTP_USER_AGENT":"h2o_mruby_test"}, "HTTP_USER_AGENT";
- like $body, qr{"rack.url_scheme":"http"}, "url_scheme";
- like $body, qr{"SERVER_SOFTWARE":"h2o/[0-9]+\.[0-9]+\.[0-9]+}, "SERVER_SOFTWARE";
- };
- subtest "protocol" => sub {
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $content = `$curl --silent --show-error $proto://127.0.0.1:$port/echo`;
- if ($curl =~ /http2/) {
- like $content, qr{"SERVER_PROTOCOL":"HTTP/2"}, "SERVER_PROTOCOL";
- } else {
- like $content, qr{"SERVER_PROTOCOL":"HTTP/1\.1"}, "SERVER_PROTOCOL";
- }
- });
- };
- subtest "headers" => sub {
- ($headers, $body) = $fetch->("/headers/");
- like $headers, qr{^foo: 123\r$}mi;
- like $headers, qr{^foo: 456\r$}mi;
- like $headers, qr{^bar: baz\r$}mi;
- };
- subtest "headers-each" => sub {
- ($headers, $body) = $fetch->("/headers-each/");
- like $headers, qr{^content-type: text/plain\r$}mi;
- like $headers, qr{^hello: world\r$}mi;
- };
-};
-
-subtest "reprocess_request" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- reproxy: ON
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- [200, {"x-reproxy-url" => "http://default/dest#{env["PATH_INFO"]}"}, ["should never see this"]]
- end
- /307:
- mruby.handler: |
- Proc.new do |env|
- [307, {"x-reproxy-url" => "http://default/dest#{env["PATH_INFO"]}"}, ["should never see this"]]
- end
- /dest:
- mruby.handler: |
- Proc.new do |env|
- [200, {}, ["#{env["SCRIPT_NAME"]}#{env["PATH_INFO"]};#{env["CONTENT_LENGTH"]}"]]
- end
-EOT
- my ($stderr, $stdout) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- is $stdout, "/dest/;";
- ($stderr, $stdout) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/hoge");
- is $stdout, "/dest/hoge;";
- subtest "preserve-method" => sub {
- ($stderr, $stdout) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/307/");
- is $stdout, "/dest/;";
- ($stderr, $stdout) = run_prog("curl --data hello --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/307/");
- is $stdout, "/dest/;5";
- ($stderr, $stdout) = run_prog("curl --data hello --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- is $stdout, "/dest/;";
- };
-};
-
-subtest "server-push" => sub {
- plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- push_paths = []
- if env["PATH_INFO"] == "/index.txt"
- push_paths << "/index.js"
- end
- [399, push_paths.empty? ? {} : {"link" => push_paths.map{|p| "<#{p}>; rel=preload"}.join()}, []]
- end
- file.dir: t/assets/doc_root
-EOT
- my $resp = `nghttp -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- like $resp, qr{\nid\s*responseEnd\s.*\s/index\.js\n.*\s/index\.txt}is, "receives index.js then /index.txt";
-};
-
-subtest "server-push / nopush" => sub {
- plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- push_paths = []
- if env["PATH_INFO"] == "/index.txt"
- push_paths << "/index.js"
- end
- [399, push_paths.empty? ? {} : {"link" => push_paths.map{|p| "<#{p}>; rel=preload; nopush"}.join()}, []]
- end
- file.dir: t/assets/doc_root
-EOT
- my $resp = `nghttp -n --stat https://127.0.0.1:$server->{tls_port}/index.txt`;
- unlike $resp, qr{/index\.js}is, "receives only /index.txt";
- like $resp, qr{/index\.txt}is, "receives only /index.txt";
-};
-
-subtest "infinite-reprocess" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1:$port":
- paths:
- /:
- reproxy: ON
- mruby.handler: |
- Proc.new do |env|
- [200,{"x-reproxy-url" => "http://127.0.0.1:$port/"},[]]
- end
-EOT
- });
- my ($stderr, $stdout) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $stderr, qr{^HTTP\/1.1 502 }s, "502 response";
- like $stdout, qr{too many internal delegations}, "reason";
-};
-
-subtest "send-file" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- [200,{}, File::open("t/50mruby/index.html")]
- end
-EOT
- my ($headers, $body) = run_prog("curl --silent -A h2o_mruby_test --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 OK\r\n}is;
- is md5_hex($body), md5_file("t/50mruby/index.html");
-};
-
-subtest "exception" => sub {
- my $server = spawn_h2o(<< 'EOT');
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- cnt = 0
- Proc.new do |env|
- cnt += 1
- if cnt % 2 != 0
- [200, {}, ["hello\n"]]
- else
- raise "error from rack"
- end
- end
-EOT
- my $fetch = sub {
- run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}");
- };
- for (1..3) {
- my ($headers, $body) = $fetch->();
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello\n";
- ($headers, $body) = $fetch->();
- like $headers, qr{^HTTP/1\.1 500 }is;
- }
-};
-
-subtest "post" => sub {
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- body = []
- 3.times do
- env["rack.input"].rewind
- body << env["rack.input"].read
- body << "\\n"
- end
- [200, {}, body]
- end
-EOT
- my ($headers, $body) = run_prog("curl --silent --data 'hello' --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 OK\r\n}is;
- is $body, "hello\n" x 3;
-};
-
-subtest "InputStream#read-after-close" => sub {
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- prev_input = nil
- Proc.new do |env|
- if !prev_input
- prev_input = env["rack.input"]
- resp = "not cached"
- else
- begin
- prev_input.read
- resp = "must not seed this"
- rescue IOError => e
- resp = "got IOError"
- end
- end
- [200, {}, [resp]]
- end
-EOT
- my ($headers, $body) = run_prog("curl --silent --data 'hello' --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 OK\r\n}is;
- is $body, "not cached";
- ($headers, $body) = run_prog("curl --silent --data 'hello' --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 OK\r\n}is;
- is $body, "got IOError";
-};
-
-subtest "header-concat" => sub {
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- [200, {}, [env["HTTP_COOKIE"]]]
- end
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my ($headers, $body) = run_prog("$curl --silent -H 'cookie: a=b' -H 'cookie: c=d' --dump-header /dev/stderr $proto://127.0.0.1:$port/");
- like $headers, qr{^HTTP/\S+ 200}is;
- like $body, qr{^a=b;\s*c=d$}is;
- });
-};
-
-subtest "close-called" => sub {
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- is_open = false
- lambda do |env|
- if is_open
- return [500, {}, ["close not called"]]
- end
- is_open = true
- return [
- 200,
- {},
- Class.new do
- def each
- yield "hello"
- end
- define_method(:close) do
- is_open = false
- end
- end.new,
- ]
- end
-EOT
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello";
- ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello";
-};
-
-subtest "close-called-on-exception" => sub {
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- is_open = false
- lambda do |env|
- if is_open
- return [500, {}, ["close not called"]]
- end
- is_open = true
- return [
- 200,
- {},
- Class.new do
- def each
- yield "hello"
- raise "yeah!"
- end
- define_method(:close) do
- is_open = false
- end
- end.new,
- ]
- end
-EOT
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello";
- ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello";
-};
-
-subtest "log lineno" => sub {
- my $tester = sub {
- my ($name, $conf, $expected) = @_;
-
- subtest $name => sub {
- my $tempdir = tempdir(CLEANUP => 1);
- unlink "$tempdir/error_log";
- my $server = spawn_h2o(<< "EOT");
-$conf
-error-log: $tempdir/error_log
-EOT
- run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- my @log = do {
- open my $fh, "<", "$tempdir/error_log"
- or die "failed to open error_log:$!";
- map { my $l = $_; chomp $l; $l } <$fh>;
- };
- @log = grep { $_ =~ /^\[h2o_mruby\]/ } @log;
- like $log[$#log], qr{\[h2o_mruby\] in request:/:mruby raised: @{[$server->{conf_file}]}:$expected:\s*hoge \(RuntimeError\)};
- };
- };
- $tester->("flow style", <<"EOT", 5);
-hosts:
- default:
- paths:
- /:
- mruby.handler: Proc.new do |env| raise "hoge" end
-EOT
- $tester->("block style", <<"EOT", 7);
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- raise "hoge"
- end
-EOT
-};
-
-subtest 'response with specific statuses should not contain content-length header' => sub {
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- proc {|env|
- [204, {}, []]
- }
-EOT
- my ($headers, $body) = run_prog("curl --silent --data 'hello' --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 204 OK\r\n}is;
- unlike $headers, qr{^content-length:}im;
-};
-
-subtest 'PATH_INFO and SCRIPT_NAME' => sub {
- plan skip_all => "nc not found"
- unless prog_exists("nc");
-
- my $server = spawn_h2o(<< "EOT");
-num-threads: 1
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- proc {|env|
- [200, {}, ['handler1, ' + env['SCRIPT_NAME'] + ', ' + env['PATH_INFO']]]
- }
- /abc:
- mruby.handler: |
- proc {|env|
- [200, {}, ['handler2, ' + env['SCRIPT_NAME'] + ', ' + env['PATH_INFO']]]
- }
- "/foo bar":
- mruby.handler: |
- proc {|env|
- [200, {}, ['handler3, ' + env['SCRIPT_NAME'] + ', ' + env['PATH_INFO']]]
- }
-EOT
- my $nc = sub {
- my $path = shift;
- my $cmd = "echo 'GET $path HTTP/1.1\\r\\nHost: 127.0.0.1\\r\\n\\r' | nc 127.0.0.1 $server->{port}";
- (undef, my $r) = run_prog($cmd);
- split(/\r\n\r\n/, $r, 2);
- };
-
- my $body;
- (undef, $body) = $nc->('/abc/def%20ghi');
- is $body, 'handler2, /abc, /def%20ghi', 'should be kept undecoded';
-
- (undef, $body) = $nc->('/abc/def/../ghi/../jhk');
- is $body, 'handler2, /abc, /def/../ghi/../jhk', 'https://github.com/h2o/h2o/pull/1480#issuecomment-339614160';
-
- (undef, $body) = $nc->('/123/../abc/def/../ghi');
- is $body, 'handler2, /abc, /def/../ghi', 'https://github.com/h2o/h2o/pull/1480#issuecomment-339658134';
-
- (undef, $body) = $nc->('/foo%20bar/baz');
- is $body, 'handler3, /foo bar, /baz', 'paths should be decoded';
-
- (undef, $body) = $nc->('/xxx/../hoge');
- is $body, 'handler1, , /xxx/../hoge', 'string size is too big issue 1';
-
- (undef, $body) = $nc->('/../abc');
- is $body, 'handler2, /abc, ', 'string size is too big issue 2';
-
- (undef, $body) = $nc->('abc');
- is $body, 'handler2, /abc, ', 'no leading slash 1';
-
- (undef, $body) = $nc->('abc/def');
- is $body, 'handler2, /abc, /def', 'no leading slash 2';
-
- (undef, $body) = $nc->('123/../abc/def/../ghi');
- is $body, 'handler2, /abc, /def/../ghi', 'no leading slash 3';
-
- (undef, $body) = $nc->('xyz');
- is $body, 'handler1, , xyz', 'no leading slash 4';
-
- (undef, $body) = $nc->('');
- is $body, 'handler1, , ', 'empty path';
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50mruby/hello.rb b/web/server/h2o/libh2o/t/50mruby/hello.rb
deleted file mode 100644
index 34f32140c..000000000
--- a/web/server/h2o/libh2o/t/50mruby/hello.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-Proc.new do |env|
- [200, {"content-type" => "text/plain; charset=utf-8"}, ["hello from h2o_mruby\n"]]
-end
diff --git a/web/server/h2o/libh2o/t/50mruby/index.html b/web/server/h2o/libh2o/t/50mruby/index.html
deleted file mode 100644
index d0287e655..000000000
--- a/web/server/h2o/libh2o/t/50mruby/index.html
+++ /dev/null
@@ -1 +0,0 @@
-I'm index.html
diff --git a/web/server/h2o/libh2o/t/50post-size-limit.t b/web/server/h2o/libh2o/t/50post-size-limit.t
deleted file mode 100644
index 970cdd807..000000000
--- a/web/server/h2o/libh2o/t/50post-size-limit.t
+++ /dev/null
@@ -1,77 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Test::More;
-use t::Util;
-
-my $server = spawn_h2o(<< 'EOT');
-hosts:
- default:
- paths:
- /:
- file.dir: examples/doc_root
-limit-request-body: 6
-EOT
-
-subtest 'http1' => sub {
- plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
- my $doit = sub {
- my ($proto, $port, $chunked) = @_;
- my $url = "$proto://127.0.0.1:$port/";
- my $extra = "";
- if ($proto eq 'https') {
- $extra .= " --insecure";
- $extra .= " --http1.1"
- if curl_supports_http2();
- }
- $extra .= " --header 'Transfer-Encoding: chunked'"
- if $chunked;
- subtest "$proto, @{[ $chunked ? 'chunked' : 'content-length' ]}" => sub {
- my $resp = `curl --silent --dump-header /dev/stderr --data hello $extra $url 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 405\s}s, 'shorter than the limit';
- $resp = `curl --silent --dump-header /dev/stderr --data helloworld $extra $url 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 413\s}s, 'longer than the limit';
- };
- };
- $doit->("http", $server->{port});
- $doit->("http", $server->{port}, 1);
- $doit->("https", $server->{tls_port});
- $doit->("https", $server->{tls_port}, 1);
-};
-
-subtest 'http2' => sub {
- plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
- my $doit = sub {
- my ($proto, $opts, $port) = @_;
- my $url = "$proto://127.0.0.1:$port/";
- {
- my ($tempfh, $tempfn) = tempfile(UNLINK => 1);
- print $tempfh 'hello';
- close $tempfh;
- my $resp = `nghttp $opts -d $tempfn -s $url 2>&1`;
- like $resp, qr/(^|\s)405(\s|$)/im, 'shorter than the limit';
- }
- {
- my ($tempfh, $tempfn) = tempfile(UNLINK => 1);
- print $tempfh 'helloworld';
- close $tempfh;
- my $resp = `nghttp $opts -v -d $tempfn -s $url 2>&1`;
- like $resp, qr/recv RST_STREAM[^\n]*\n[^\n]*error_code=REFUSED_STREAM/is, 'longer than the limit';
- }
- };
- subtest "http (direct)" => sub {
- $doit->("http", "", $server->{port});
- };
- subtest "http (upgrade)" => sub {
- $doit->("http", "-u", $server->{port});
- };
- subtest "https" => sub {
- $doit->("https", "", $server->{tls_port});
- };
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50redirect.t b/web/server/h2o/libh2o/t/50redirect.t
deleted file mode 100644
index b407063a0..000000000
--- a/web/server/h2o/libh2o/t/50redirect.t
+++ /dev/null
@@ -1,92 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-subtest "basic" => sub {
- plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
- my $curl = "curl --insecure";
- $curl .= " --http1.1"
- if curl_supports_http2();
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- redirect: https://example.com/
- /abc/:
- redirect:
- status: 301
- url: http://example.net/bar/
-EOT
-
- my $doit = sub {
- my ($url, $expected_status, $expected_location) = @_;
- subtest $url => sub {
- my ($stderr, $stdout) = run_prog("$curl --silent --show-error --max-redirs 0 --dump-header /dev/stderr $url");
- like $stderr, qr{^HTTP/[^ ]+ $expected_status\s}s, "status";
- like $stderr, qr{^location: ?$expected_location\r$}im, "location";
- };
- };
-
- $doit->("http://127.0.0.1:$server->{port}/foo", 302, "https://example.com/foo");
- $doit->("https://127.0.0.1:$server->{tls_port}/foo", 302, "https://example.com/foo");
- $doit->("http://127.0.0.1:$server->{port}/abc/foo/baz", 301, "http://example.net/bar/foo/baz");
- $doit->("http://127.0.0.1:$server->{port}/abc/foo:baz", 301, "http://example.net/bar/foo:baz");
- $doit->("http://127.0.0.1:$server->{port}/foo?abc=def", 302, qr{https://example.com/foo\?abc=def});
- $doit->("http://127.0.0.1:$server->{port}/foo%0D%0Aa:1", 302, "https://example\.com/foo\%0d\%0aa:1");
-};
-
-subtest "trailing-slash" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /p1:
- redirect: /dest
- /p2:
- redirect: /dest/
- /p3/:
- redirect: /dest
- /p4/:
- redirect: /dest/
-EOT
-
- run_with_curl($server, sub {
- my ($proto, $port, $cmd) = @_;
- my $fetch = sub {
- my $path = shift;
- my ($stderr, $stdout) = run_prog("$cmd --silent --show-error --max-redirs 0 --dump-header /dev/stderr $proto://127.0.0.1:$port$path");
- $stderr;
- };
- subtest "p1" => sub {
- like $fetch->("/p1"), qr{^location:\s*/dest\r$}im;
- like $fetch->("/p12"), qr{^HTTP/\S*\s+404}is;
- like $fetch->("/p1?abc"), qr{^location:\s*/dest\?abc\r$}im;
- like $fetch->("/p1/"), qr{^location:\s*/dest/\r$}im;
- like $fetch->("/p1/abc"), qr{^location:\s*/dest/abc\r$}im;
- };
- subtest "p2" => sub {
- like $fetch->("/p2"), qr{^location:\s*/dest/\r$}im;
- like $fetch->("/p12"), qr{^HTTP/\S*\s+404}is;
- like $fetch->("/p2?abc"), qr{^location:\s*/dest/\?abc\r$}im;
- like $fetch->("/p2/"), qr{^location:\s*/dest/\r$}im;
- like $fetch->("/p2/abc"), qr{^location:\s*/dest/abc\r$}im;
- };
- subtest "p3" => sub {
- like $fetch->("/p3"), qr{^HTTP/\S*\s+404}is;
- like $fetch->("/p3/"), qr{^location:\s*/dest/\r$}im;
- like $fetch->("/p3/abc"), qr{^location:\s*/dest/abc\r$}im;
- };
- subtest "p4" => sub {
- like $fetch->("/p4"), qr{^HTTP/\S*\s+404}is;
- like $fetch->("/p4/"), qr{^location:\s*/dest/\r$}im;
- like $fetch->("/p4/abc"), qr{^location:\s*/dest/abc\r$}im;
- };
- });
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-0.t b/web/server/h2o/libh2o/t/50reverse-proxy-0.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-0.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-1.t b/web/server/h2o/libh2o/t/50reverse-proxy-1.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-1.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-10.t b/web/server/h2o/libh2o/t/50reverse-proxy-10.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-10.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-11.t b/web/server/h2o/libh2o/t/50reverse-proxy-11.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-11.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-12.t b/web/server/h2o/libh2o/t/50reverse-proxy-12.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-12.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-13.t b/web/server/h2o/libh2o/t/50reverse-proxy-13.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-13.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-14.t b/web/server/h2o/libh2o/t/50reverse-proxy-14.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-14.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-15.t b/web/server/h2o/libh2o/t/50reverse-proxy-15.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-15.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-2.t b/web/server/h2o/libh2o/t/50reverse-proxy-2.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-2.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-3.t b/web/server/h2o/libh2o/t/50reverse-proxy-3.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-3.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-4.t b/web/server/h2o/libh2o/t/50reverse-proxy-4.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-4.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-5.t b/web/server/h2o/libh2o/t/50reverse-proxy-5.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-5.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-6.t b/web/server/h2o/libh2o/t/50reverse-proxy-6.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-6.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-7.t b/web/server/h2o/libh2o/t/50reverse-proxy-7.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-7.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-8.t b/web/server/h2o/libh2o/t/50reverse-proxy-8.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-8.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-9.t b/web/server/h2o/libh2o/t/50reverse-proxy-9.t
deleted file mode 100644
index 28e191ff4..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-9.t
+++ /dev/null
@@ -1,4 +0,0 @@
-$0 =~ /-([0-9]+)\.t$/s
- or die "failed to extract mode";
-exec $^X, "t/50reverse-proxy/test.pl", "--mode=$1";
-die "failed to invoke $^X t/50reverse-proxy/test.pl:$!";
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t b/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t
deleted file mode 100644
index 0e87a198c..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-added-headers.t
+++ /dev/null
@@ -1,73 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $upstream_port = empty_port();
-
-my $guard = spawn_server(
- argv => [ qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen), $upstream_port, ASSETS_DIR . "/upstream.psgi" ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-sub do_test {
- my $emit_xff = shift;
- my $emit_via = shift;
- my $emit_xff_str = $emit_xff ? "ON" : "OFF";
- my $emit_via_str = $emit_via ? "ON" : "OFF";
-
- my $server = spawn_h2o(<< "EOT");
-proxy.emit-x-forwarded-headers: $emit_xff_str
-proxy.emit-via-header: $emit_via_str
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1.XIP.IO:$upstream_port
-EOT
-
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent $proto://127.0.0.1:$port/echo-headers`;
- if ($emit_xff) {
- like $resp, qr/^x-forwarded-for: ?127\.0\.0\.1$/mi, "x-forwarded-for";
- like $resp, qr/^x-forwarded-proto: ?$proto$/mi, "x-forwarded-proto";
- } else {
- unlike $resp, qr/^x-forwarded-for: ?127\.0\.0\.1$/mi, "x-forwarded-for not present";
- unlike $resp, qr/^x-forwarded-proto: ?$proto$/mi, "x-forwarded-proto not present";
- }
- if ($emit_via) {
- like $resp, qr/^via: ?[^ ]+ 127\.0\.0\.1:$port$/mi, "via";
- } else {
- unlike $resp, qr/^via: ?[^ ]+ 127\.0\.0\.1:$port$/mi, "via";
- }
- $resp = `$curl --silent --header 'X-Forwarded-For: 127.0.0.2' --header 'Via: 2 example.com' $proto://127.0.0.1:$port/echo-headers`;
- if ($emit_xff) {
- like $resp, qr/^x-forwarded-for: ?127\.0\.0\.2, 127\.0\.0\.1$/mi, "x-forwarded-for (append)";
- } else {
- like $resp, qr/^x-forwarded-for: ?127\.0\.0\.2$/mi, "x-forwarded-for only contains the original header";
- }
- if ($emit_via) {
- like $resp, qr/^via: ?2 example.com, [^ ]+ 127\.0\.0\.1:$port$/mi, "via (append)";
- } else {
- like $resp, qr/^via: 2 example.com$/mi, "via left as-is";
- }
- });
-}
-
-do_test(0, 0);
-do_test(0, 1);
-do_test(1, 0);
-do_test(1, 1);
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-config.t b/web/server/h2o/libh2o/t/50reverse-proxy-config.t
deleted file mode 100644
index 62b34668a..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-config.t
+++ /dev/null
@@ -1,104 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-# start upstream
-my $upstream_port = empty_port();
-my $upstream = spawn_server(
- argv => [
- qw(plackup -MPlack::App::File -s Starlet --access-log /dev/null -p), $upstream_port,
- ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-subtest 'preserve-host' => sub {
- my $doit = sub {
- my $flag = shift;
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- proxy.preserve-host: @{[ $flag ? 'ON' : 'OFF' ]}
-EOT
- my $res = `curl --silent http://127.0.0.1:$server->{port}/echo-headers`;
- like $res, qr/^host: 127.0.0.1:@{[ $flag ? $server->{port} : $upstream_port ]}$/im, 'host header';
-
- $res = `curl --silent --dump-header /dev/stdout "http://127.0.0.1:$server->{port}/?resp:status=302&resp:location=http://127.0.0.1:$server->{port}/foo"`;
- like $res, qr{^location: http://127\.0\.0\.1:$server->{port}/foo}im, 'location: :server_port';
- warn qq{curl --silent --dump-header /dev/stdout "http://127.0.0.1:$server->{port}/?resp:status=302&resp:location=http://127.0.0.1:$upstream_port/foo"};
- $res = `curl --silent --dump-header /dev/stdout "http://127.0.0.1:$server->{port}/?resp:status=302&resp:location=http://127.0.0.1:$upstream_port/foo"`;
- like $res, qr{^location: http://127\.0\.0\.1:$server->{port}/foo}im, 'location :upstream_port';
- };
-
- subtest 'ON' => sub {
- $doit->(1);
- };
- subtest 'OFF' => sub {
- $doit->(0);
- };
-};
-
-subtest 'timeout.io' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- proxy.timeout.io: 2000
-EOT
- my $fetch = sub {
- my $sleep = shift;
- `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/sleep-and-respond?sleep=$sleep 2>&1 > /dev/null`;
- };
- my $resp = $fetch->(1);
- like $resp, qr{^HTTP/1\.1 200 }s, "respond before timeout";
- $resp = $fetch->(3);
- like $resp, qr{^HTTP/1\.1 502 }s, "respond after timeout";
-};
-
-subtest 'infinite-internal-redirect' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-reproxy: ON
-EOT
- my $resp = `curl --silent --dump-header /dev/stderr "http://127.0.0.1:$server->{port}/?resp:x-reproxy-url=http://127.0.0.1:$upstream_port/infinite-redirect" 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 502 }s;
-};
-
-subtest 'max-delegations' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-reproxy: ON
-max-delegations: 0
-EOT
- my $resp = `curl --silent --dump-header /dev/stderr "http://127.0.0.1:$server->{port}/?resp:x-reproxy-url=http://127.0.0.1:$upstream_port/index.txt" 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 502 }s;
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t b/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t
deleted file mode 100644
index 4e35cba97..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-disconnected-keepalive.t
+++ /dev/null
@@ -1,77 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-subtest "tcp" => sub {
- my $port = empty_port();
- my $upstream = spawn_upstream($port);
- doit("127.0.0.1:$port");
-};
-
-subtest "unix-socket" => sub {
- plan skip_all => 'skipping unix-socket tests, requires Starlet >= 0.25'
- if `perl -MStarlet -e 'print \$Starlet::VERSION'` < 0.25;
-
- (undef, my $sockfn) = tempfile(UNLINK => 0);
- unlink $sockfn;
- my $guard = Scope::Guard->new(sub {
- unlink $sockfn;
- });
-
- my $upstream = spawn_upstream($sockfn);
- doit("[unix:$sockfn]");
-};
-
-done_testing;
-
-sub doit {
- my $upaddr = shift;
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://$upaddr
- proxy.timeout.io: 1000
- proxy.timeout.keepalive: 10000
-EOT
- my $port = $server->{port};
-
- my $check_req = sub {
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$port/index.txt 2>&1");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello\n";
- };
- subtest "first-connect" => $check_req;
- subtest "redo-immediate" => $check_req;
- sleep 2;
- subtest "redo-after-upstream-disconnect" => $check_req;
- sleep 2;
- subtest "once-more" => $check_req;
-};
-
-sub spawn_upstream {
- my $addr = shift;
- spawn_server(
- argv => [
- qw(plackup -s Starlet --max-keepalive-reqs 100 --keepalive-timeout 1 --access-log /dev/null --listen), $addr,
- ASSETS_DIR . "/upstream.psgi"
- ],
- is_ready => sub {
- if ($addr =~ /^\d+$/) {
- check_port($addr);
- } else {
- !! -e $addr;
- }
- },
- );
-}
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t b/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t
deleted file mode 100644
index 0ae1e61dd..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-drop-headers.t
+++ /dev/null
@@ -1,57 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $upstream_port = empty_port();
-
-my $guard = spawn_server(
- argv => [ qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen), "127.0.0.1:$upstream_port", ASSETS_DIR . "/upstream.psgi" ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-subtest 'request-header' => sub {
-# proxy-authenticate
-
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1.XIP.IO:$upstream_port
-EOT
-
- my $curl = 'curl --silent --dump-header /dev/stderr';
- my ($headers, $body) = run_prog("$curl"
- . " -H 'Proxy-Authenticate: hoge'"
- . " -H 'Date: Thu, 01 Jan 1970 00:00:00 GMT'"
- . " http://127.0.0.1:@{[$server->{port}]}/echo-headers");
- unlike $body, qr/^proxy-authenticate:/mi, 'proxy-authenticate header should be dropped';
- like $body, qr/^date:/mi, 'date request header is not dropped';
-};
-
-subtest 'response header' => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1.XIP.IO:$upstream_port
-EOT
-
- my $curl = 'curl --silent --dump-header /dev/stderr';
- my ($headers, $body) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/fixed-date-header");
- unlike $headers, qr/Thu, 01 Jan 1970 00:00:00 GMT/, "date response header from upstream should be dropped and replaced";
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-https.t b/web/server/h2o/libh2o/t/50reverse-proxy-https.t
deleted file mode 100644
index 1bb499f97..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-https.t
+++ /dev/null
@@ -1,70 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-
-my $upstream_port = empty_port();
-my $upstream = spawn_server(
- argv => [
- qw(
- plackup -s Standalone --ssl=1 --ssl-key-file=examples/h2o/server.key --ssl-cert-file=examples/h2o/server.crt --port
- ),
- $upstream_port, ASSETS_DIR . "/upstream.psgi"
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-subtest "reverse-proxy" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/verify":
- proxy.reverse.url: https://127.0.0.1:$upstream_port
- "/no-verify":
- proxy.reverse.url: https://127.0.0.1:$upstream_port
- proxy.ssl.verify-peer: OFF
- "/wikipedia":
- proxy.reverse.url: https://en.wikipedia.org/wiki/Main_Page
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent --dump-header /dev/stderr --max-redirs 0 $proto://127.0.0.1:$port/verify/ 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]* 502\s}is;
- $resp = `$curl --silent --dump-header /dev/stderr --max-redirs 0 $proto://127.0.0.1:$port/no-verify/ 2>&1 > /dev/null`;
- unlike $resp, qr{^HTTP/[^ ]* 502\s}is;
- $resp = `$curl --silent --dump-header /dev/stderr --max-redirs 0 $proto://127.0.0.1:$port/wikipedia/ 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]* 200\s}is;
- });
-};
-
-subtest "reproxy" => sub {
- plan skip_all => "mruby support is off"
- unless server_features()->{mruby};
- my $server = spawn_h2o(<< "EOT");
-proxy.ssl.verify-peer: OFF
-hosts:
- default:
- paths:
- "/":
- reproxy: ON
- mruby.handler: |
- Proc.new do |env|
- [200, {"x-reproxy-url" => "https://127.0.0.1:$upstream_port/index.txt"}, ["should never see this"]]
- end
-EOT
- run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- my $resp = `$curl --silent --dump-header /dev/stdout --max-redirs 0 $proto://127.0.0.1:$port/`;
- like $resp, qr{^HTTP/[^ ]* 200}im;
- like $resp, qr{^hello$}m;
- });
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t b/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t
deleted file mode 100644
index da2aee2c2..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-preserve-case.t
+++ /dev/null
@@ -1,68 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $upstream_port = empty_port();
-
-my $upstream = new IO::Socket::INET (
- LocalHost => '127.0.0.1',
- LocalPort => $upstream_port,
- Proto => 'tcp',
- Listen => 1,
- Reuse => 1
-);
-die "cannot create socket $!\n" unless $upstream;
-
-sub handler_curl {
- my $socket = shift;
- my $client_socket = $socket->accept();
-
- my $data = "";
- $client_socket->recv($data, 4906);
-
- my $resp = "HTTP/1.0 200 Ok\r\nMyResponseHeader:1\r\nContent-Length:2\r\nConnection: close\r\n\r\nOk";
- $client_socket->send($resp);
- $client_socket->flush;
-
- close($client_socket);
- return $data;
-};
-
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- open(CURL, "$curl -HUpper-Case:TheValue -kv $proto://127.0.0.1:$port/ 2>&1 |");
- my $forwarded = handler_curl($upstream);
- my @lines;
- while (<CURL>) {
- push(@lines, $_);
-
- }
- my $resp = join("", @lines);
- if ($curl =~ /http2/) {
- like($forwarded, qr{upper-case:\s*TheValue}, "Request header name is lowercased");
- like($resp, qr{myresponseheader:\s*1}, "Response header name is lowercase");
- } else {
- like($forwarded, qr{Upper-Case:\s*TheValue}, "Request header name is not lowercased");
- like($resp, qr{MyResponseHeader:\s*1}, "Response header name has case preserved");
- }
- });
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t b/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t
deleted file mode 100644
index 0bb1a821e..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-proxy-protocol.t
+++ /dev/null
@@ -1,55 +0,0 @@
-use strict;
-use warnings;
-use IO::Socket::INET;
-use Test::TCP;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use Scope::Guard qw(guard);
-use t::Util;
-
-my $upstream_port = empty_port();
-
-my $listen = IO::Socket::INET->new(
- LocalAddr => '127.0.0.1',
- LocalPort => $upstream_port,
- Listen => 5,
-) or die "failed to listen to 127.0.0.1:$upstream_port:$!";
-
-my $upstream_guard = do {
- my $pid = fork;
- die "fork failed:$!"
- unless defined $pid;
- if ($pid == 0) {
- # server process
- while (1) {
- if (my $conn = $listen->accept) {
- sysread $conn, my $buf, 4096;
-print STDERR "**** $buf";
- syswrite $conn, "HTTP/1.1 200 OK\r\nconnection: close\r\n\r\n$buf";
-print STDERR "**** yeoh";
- $conn->close;
- }
- }
- }
- guard {
- kill 'TERM', $pid;
- };
-};
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port/
- proxy.proxy-protocol: ON
- proxy.timeout.keepalive: 0
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl_cmd) = @_;
- my $resp = `$curl_cmd --silent $proto://127.0.0.1:$port/hello`;
- like $resp, qr{^PROXY TCP4 127\.0\.0\.1 127\.0\.0\.1 [0-9]{1,5} $port\r\nGET /hello HTTP/1\.}is;
-});
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t b/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t
deleted file mode 100644
index acf6a7813..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-session-resumption.t
+++ /dev/null
@@ -1,210 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::Builder;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $tempdir = tempdir(CLEANUP => 1);
-
-sub create_upstream {
- unlink "$tempdir/access_log";
- return spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- access-log:
- path: $tempdir/access_log
- format: "%{ssl.session-reused}x"
-EOT
-}
-
-sub doit {
- my ($conf, $scenario, $opts) = @_;
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- $opts ||= +{};
-
- my $upstream = $opts->{upstream} || create_upstream();
- if (ref($conf) eq 'CODE') {
- $conf = $conf->($upstream);
- }
- my $server = spawn_h2o($conf);
- my $port = $server->{port};
-
- for my $s (@$scenario) {
- my $path = $s->{path} || '/';
- Time::HiRes::sleep($s->{interval}) if $s->{interval};
- my $res = `curl --silent --dump-header /dev/stderr http://127.0.0.1:@{[$server->{port}]}$path 2>&1 > /dev/null`;
- like $res, qr{^HTTP/1\.1 200 }, $s->{desc};
- }
-
- my @log = do {
- open my $fh, "<", "$tempdir/access_log"
- or die "failed to open access_log:$!";
- map { my $l = $_; chomp $l; $l } <$fh>;
- };
-
- for my $i (0..scalar(@$scenario)-1) {
- my $s = $scenario->[$i];
- next unless defined($s->{expected});
-
- my $reused = $log[$i] + 0;
- is($reused, $s->{expected}, $s->{desc});
- }
-};
-
-subtest 'default' => sub {
- doit(sub {
- my ($upstream) = @_;
- return <<"EOC";
-proxy.ssl.verify-peer: OFF
-proxy.timeout.keepalive: 0
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
-EOC
- }, [
- +{},
- +{ expected => 1 },
- ]);
-};
-
-subtest 'off' => sub {
- doit(sub {
- my ($upstream) = @_;
- return <<"EOC";
-proxy.timeout.keepalive: 0
-proxy.ssl.session-cache: OFF
-hosts:
- default:
- paths:
- /:
- proxy.ssl.verify-peer: OFF
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
-EOC
- }, [
- +{},
- +{ expected => 0 },
- ]);
-};
-
-subtest 'lifetime' => sub {
- doit(sub {
- my ($upstream) = @_;
- return <<"EOC";
-proxy.ssl.verify-peer: OFF
-proxy.timeout.keepalive: 0
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
- proxy.ssl.session-cache:
- capacity: 4096
- lifetime: 2
-EOC
- }, [
- +{},
- +{ interval => 1, expected => 1 },
- +{ interval => 2, expected => 0, desc => 'expire' },
- ]);
-};
-
-subtest 'config' => sub {
- doit(sub {
- my ($upstream) = @_;
- return <<"EOC";
-proxy.ssl.verify-peer: OFF
-proxy.timeout.keepalive: 0
-hosts:
- default:
- proxy.ssl.session-cache: OFF
- paths:
- /:
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
- proxy.ssl.session-cache: ON
- /sample.txt:
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
- proxy.ssl.session-cache:
- capacity: 4096
- lifetime: 2
-
-EOC
- }, [
- +{ path => '/' },
- +{ path => '/', interval => 0, expected => 1, desc => 'reuse on second request to /' },
- +{ path => '/sample.txt', interval => 0, expected => 0, desc => 'not reuse on first request to /sample.txt' },
- +{ path => '/sample.txt', interval => 1, expected => 1, desc => 'reuse on second request to /sample.txt' },
- +{ path => '/sample.txt', interval => 2, expected => 0, desc => 'expire on third request to /sample.txt' },
- ]);
-};
-
-subtest 'reproxy' => sub {
- my $upstream = create_upstream();
- my $upstream_port = $upstream->{tls_port};
- my $app_port = empty_port();
- my $app_server = spawn_server(
- argv => [
- qw(
- plackup -s Starlet --max-workers=1 --port
- ),
- $app_port, "-e sub { [200, ['X-Reproxy-URL' => 'https://127.0.0.1:$upstream_port/'], []] }"
- ],
- is_ready => sub {
- check_port($app_port);
- },
- );
-
- doit(sub {
- return <<"EOC";
-proxy.ssl.verify-peer: OFF
-proxy.timeout.keepalive: 0
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$app_port
- reproxy: ON
-EOC
- }, [
- +{},
- +{ expected => 1 },
- ], +{ upstream => $upstream });
-};
-
-subtest 'multiple-hosts' => sub {
- doit(sub {
- my ($upstream) = @_;
- return <<"EOC";
-proxy.ssl.verify-peer: OFF
-proxy.timeout.keepalive: 0
-proxy.ssl.session-cache: ON
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
- example.com:
- paths:
- /:
- proxy.reverse.url: https://127.0.0.1:@{[$upstream->{tls_port}]}
- proxy.ssl.verify-peer: ON
- proxy.ssl.session-cache: OFF
-EOC
- }, [
- +{},
- +{ expected => 1 },
- ]);
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t b/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t
deleted file mode 100644
index 3f30a4471..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy-upstream-down.t
+++ /dev/null
@@ -1,35 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-sub doit {
- my $persistent = shift;
- my $upstream_port = empty_port();
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- proxy.timeout.io: 2000
-@{[ $persistent ? "" : "proxy.timeout.keepalive: 0" ]}
-EOT
- my $port = $server->{port};
- my $res = `curl --max-time 5 --silent --dump-header /dev/stderr http://127.0.0.1:$port/ 2>&1 > /dev/null`;
- like $res, qr{^HTTP/1\.1 502 }, "502 response on upstream error";
-};
-
-subtest 'non-persistent' => sub {
- doit(0);
-};
-
-subtest 'persistent' => sub {
- doit(1);
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt b/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt
deleted file mode 100644
index ce0136250..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy/hello.txt
+++ /dev/null
@@ -1 +0,0 @@
-hello
diff --git a/web/server/h2o/libh2o/t/50reverse-proxy/test.pl b/web/server/h2o/libh2o/t/50reverse-proxy/test.pl
deleted file mode 100755
index 3781cba3c..000000000
--- a/web/server/h2o/libh2o/t/50reverse-proxy/test.pl
+++ /dev/null
@@ -1,249 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempfile);
-use Getopt::Long;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use URI::Escape;
-use t::Util;
-
-my ($aggregated_mode, $h2o_keepalive, $starlet_keepalive, $starlet_force_chunked, $unix_socket);
-
-GetOptions(
- "mode=i" => sub {
- (undef, my $m) = @_;
- $h2o_keepalive = ($m & 1) != 0;
- $starlet_keepalive = ($m & 2) != 0;
- $starlet_force_chunked = ($m & 4) != 0;
- $unix_socket = ($m & 8) != 0;
- },
- "h2o-keepalive=i" => \$h2o_keepalive,
- "starlet-keepalive=i" => \$starlet_keepalive,
- "starlet-force-chunked=i" => \$starlet_force_chunked,
- "unix-socket=i" => \$unix_socket,
-) or exit(1);
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-plan skip_all => 'skipping unix-socket tests, requires Starlet >= 0.25'
- if $unix_socket && `perl -MStarlet -e 'print \$Starlet::VERSION'` < 0.25;
-
-my %files = map { do {
- my $fn = DOC_ROOT . "/$_";
- +($_ => { size => (stat $fn)[7], md5 => md5_file($fn) });
-} } qw(index.txt halfdome.jpg);
-
-my $huge_file_size = 50 * 1024 * 1024; # should be larger than the mmap_backend threshold of h2o
-my $huge_file = create_data_file($huge_file_size);
-my $huge_file_md5 = md5_file($huge_file);
-
-my ($unix_socket_file, $unix_socket_guard) = do {
- (undef, my $fn) = tempfile(UNLINK => 0);
- unlink $fn;
- +(
- $fn,
- Scope::Guard->new(sub {
- unlink $fn;
- }),
- );
-} if $unix_socket;
-
-my $upstream = $unix_socket_file ? "[unix:$unix_socket_file]" : "127.0.0.1:@{[empty_port()]}";
-
-my $guard = do {
- local $ENV{FORCE_CHUNKED} = $starlet_force_chunked;
- my @args = (qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen), $unix_socket_file || $upstream);
- if ($starlet_keepalive) {
- push @args, "--max-keepalive-reqs=100";
- }
- push @args, ASSETS_DIR . "/upstream.psgi";
- spawn_server(
- argv => \@args,
- is_ready => sub {
- if ($unix_socket_file) {
- !! -e $unix_socket_file;
- } else {
- $upstream =~ /:([0-9]+)$/s
- or die "failed to extract port number";
- check_port($1);
- }
- },
- );
-};
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://$upstream
- /gzip:
- proxy.reverse.url: http://$upstream
- gzip: ON
- /files:
- file.dir: @{[ DOC_ROOT ]}
-@{[ $h2o_keepalive ? "" : " proxy.timeout.keepalive: 0" ]}
-reproxy: ON
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl) = @_;
- for my $file (sort keys %files) {
- my $content = `$curl --silent --show-error $proto://127.0.0.1:$port/$file`;
- is length($content), $files{$file}->{size}, "$proto://127.0.0.1/$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$proto://127.0.0.1/$file (md5)";
- }
- for my $file (sort keys %files) {
- my $content = `$curl --silent --show-error --data-binary \@@{[ DOC_ROOT ]}/$file $proto://127.0.0.1:$port/echo`;
- is length($content), $files{$file}->{size}, "$proto://127.0.0.1/echo (POST, $file, size)";
- is md5_hex($content), $files{$file}->{md5}, "$proto://127.0.0.1/echo (POST, $file, md5)";
- }
- if ($curl !~ /--http2/) {
- for my $file (sort keys %files) {
- my $content = `$curl --silent --show-error --header 'Transfer-Encoding: chunked' --data-binary \@@{[ DOC_ROOT ]}/$file $proto://127.0.0.1:$port/echo`;
- is length($content), $files{$file}->{size}, "$proto://127.0.0.1/echo (POST, chunked, $file, size)";
- is md5_hex($content), $files{$file}->{md5}, "$proto://127.0.0.1/echo (POST, chunked, $file, md5)";
- }
- }
- my $content = `$curl --silent --show-error --data-binary \@$huge_file $proto://127.0.0.1:$port/echo`;
- is length($content), $huge_file_size, "$proto://127.0.0.1/echo (POST, mmap-backed, size)";
- is md5_hex($content), $huge_file_md5, "$proto://127.0.0.1/echo (POST, mmap-backed, md5)";
- if ($curl !~ /--http2/) {
- $content = `$curl --silent --show-error --header 'Transfer-Encoding: chunked' --data-binary \@$huge_file $proto://127.0.0.1:$port/echo`;
- is length($content), $huge_file_size, "$proto://127.0.0.1/echo (POST, chunked, mmap-backed, size)";
- is md5_hex($content), $huge_file_md5, "$proto://127.0.0.1/echo (POST, chunked, mmap-backed, md5)";
- }
- subtest 'rewrite-redirect' => sub {
- $content = `$curl --silent --dump-header /dev/stdout --max-redirs 0 "$proto://127.0.0.1:$port/?resp:status=302&resp:location=http://@{[uri_escape($upstream)]}/abc"`;
- like $content, qr{HTTP/[^ ]+ 302\s}m;
- like $content, qr{^location: ?$proto://127.0.0.1:$port/abc\r$}m;
- };
- subtest "x-reproxy-url ($proto)" => sub {
- my $fetch_test = sub {
- my $url_prefix = shift;
- for my $file (sort keys %files) {
- my $content = `$curl --silent --show-error "$proto://127.0.0.1:$port/404?resp:status=200&resp:x-reproxy-url=$url_prefix$file"`;
- is length($content), $files{$file}->{size}, "$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$file (md5)";
- }
- };
- subtest "abs-url" => sub {
- $fetch_test->("http://@{[uri_escape($upstream)]}/");
- };
- subtest "abs-path" => sub {
- $fetch_test->("/");
- };
- subtest "rel-path" => sub {
- $fetch_test->("");
- };
- my $content = `$curl --silent --show-error "$proto://127.0.0.1:$port/streaming-body?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/index.txt"`;
- is $content, "hello\n", "streaming-body";
- $content = `$curl --silent "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=https://default/files/index.txt"`;
- is length($content), $files{"index.txt"}->{size}, "to file handler (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "to file handler (md5)";
- $content = `$curl --silent "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/?resp:status=302%26resp:location=index.txt"`;
- is length($content), $files{"index.txt"}->{size}, "reproxy & internal redirect to upstream (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "reproxy & internal redirect to upstream (md5)";
- $content = `$curl --silent "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/?resp:status=302%26resp:location=https://default/files/index.txt"`;
- is length($content), $files{"index.txt"}->{size}, "reproxy & internal redirect to file (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "reproxy & internal redirect to file (md5)";
- $content = `$curl --silent "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=http://default/files"`;
- is length($content), $files{"index.txt"}->{size}, "redirect handled internally after delegation (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "redirect handled internally after delegation (md5)";
- };
- subtest "x-forwarded ($proto)" => sub {
- my $resp = `$curl --silent $proto://127.0.0.1:$port/echo-headers`;
- like $resp, qr/^x-forwarded-for: ?127\.0\.0\.1$/mi, "x-forwarded-for";
- like $resp, qr/^x-forwarded-proto: ?$proto$/mi, "x-forwarded-proto";
- like $resp, qr/^via: ?[^ ]+ 127\.0\.0\.1:$port$/mi, "via";
- $resp = `$curl --silent --header 'X-Forwarded-For: 127.0.0.2' --header 'Via: 2 example.com' $proto://127.0.0.1:$port/echo-headers`;
- like $resp, qr/^x-forwarded-for: ?127\.0\.0\.2, 127\.0\.0\.1$/mi, "x-forwarded-for (append)";
- like $resp, qr/^via: ?2 example.com, [^ ]+ 127\.0\.0\.1:$port$/mi, "via (append)";
- };
- subtest 'issues/266' => sub {
- my $resp = `$curl --dump-header /dev/stderr --silent -H 'cookie: a=@{['x' x 4000]}' $proto://127.0.0.1:$port/index.txt 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 200\s}m;
- };
- subtest 'gzip' => sub {
- plan skip_all => 'curl issue #661'
- if $curl =~ /--http2/;
- my $resp = `$curl --silent -H Accept-Encoding:gzip $proto://127.0.0.1:$port/gzip/alice.txt | gzip -cd`;
- is md5_hex($resp), md5_file("@{[DOC_ROOT]}/alice.txt");
- };
-});
-
-subtest 'nghttp' => sub {
- plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
- my $doit = sub {
- my ($proto, $opt, $port) = @_;
- for my $file (sort keys %files) {
- my $content = `nghttp $opt $proto://127.0.0.1:$port/$file`;
- is length($content), $files{$file}->{size}, "$proto://127.0.0.1/$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$proto://127.0.0.1/$file (md5)";
- }
- my $out = `nghttp $opt -d t/50reverse-proxy/hello.txt $proto://127.0.0.1:$port/echo`;
- is $out, "hello\n", "$proto://127.0.0.1/echo (POST)";
- $out = `nghttp $opt -m 10 $proto://127.0.0.1:$port/index.txt`;
- is $out, "hello\n" x 10, "$proto://127.0.0.1/index.txt x 10 times";
- $out = `nghttp $opt -d $huge_file $proto://127.0.0.1:$port/echo`;
- is length($out), $huge_file_size, "$proto://127.0.0.1/echo (mmap-backed, size)";
- is md5_hex($out), $huge_file_md5, "$proto://127.0.0.1/echo (mmap-backed, md5)";
- subtest 'cookies' => sub {
- plan skip_all => 'nghttp issues #161'
- if $opt eq '-u';
- $out = `nghttp $opt -H 'cookie: a=b' -H 'cookie: c=d' $proto://127.0.0.1:$port/echo-headers`;
- like $out, qr{^cookie: a=b; c=d$}m;
- };
- subtest "x-reproxy-url ($proto)" => sub {
- for my $file (sort keys %files) {
- my $content = `nghttp $opt "$proto://127.0.0.1:$port/404?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/$file"`;
- is length($content), $files{$file}->{size}, "$file (size)";
- is md5_hex($content), $files{$file}->{md5}, "$file (md5)";
- }
- my $content = `nghttp $opt "$proto://127.0.0.1:$port/streaming-body?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/index.txt"`;
- is $content, "hello\n", "streaming-body";
- $content = `nghttp $opt "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=https://default/files/index.txt"`;
- is length($content), $files{"index.txt"}->{size}, "to file handler (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "to file handler (md5)";
- $content = `nghttp $opt "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/?resp:status=302%26resp:location=index.txt"`;
- is length($content), $files{"index.txt"}->{size}, "reproxy & internal redirect to upstream (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "reproxy & internal redirect to upstream (md5)";
- $content = `nghttp $opt "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=http://@{[uri_escape($upstream)]}/?resp:status=302%26resp:location=https://default/files/index.txt"`;
- is length($content), $files{"index.txt"}->{size}, "reproxy & internal redirect to file (size)";
- is md5_hex($content), $files{"index.txt"}->{md5}, "reproxy & internal redirect to file (md5)";
- $content = `nghttp -v $opt "$proto://127.0.0.1:$port/?resp:status=200&resp:x-reproxy-url=http://default/files"`;
- unlike $content, qr/ :status: 3/, "once delegated, redirects of the file handler should be handled internally";
- };
- subtest 'issues/185' => sub {
- my $out = `nghttp $opt -v "$proto://127.0.0.1:$port/?resp:access-control-allow-origin=%2a"`;
- is $?, 0;
- like $out, qr/ access-control-allow-origin: \*$/m;
- };
- subtest 'issues/192' => sub {
- my $cookie = '_yohoushi_session=ZU5tK2FhcllVQ1RGaTZmZE9MUXozZnAzdTdmR250ZjRFU1hNSnZ4Y2JxZm9pYzJJSEpISGFKNmtWcW1HcjBySmUxZzIwNngrdlVIOC9jdmg0R3I3TFR4eVYzaHlFSHdEL1M4dnh1SmRCbVl3ZE5FckZEU1NyRmZveWZwTmVjcVV5V1JhNUd5REIvWjAwQ3RiT1ZBNGVMUkhiN0tWR0c1RzZkSVhrVkdoeW1lWXRDeHJPUW52NUwxSytRTEQrWXdoZ1EvVG9kak9aeUxnUFRNTDB4Vis1RDNUYWVHZm12bDgwL1lTa09MTlJYcGpXN2VUWmdHQ2FuMnVEVDd4c3l1TTJPMXF1dGhYcGRHS2U2bW9UaG0yZGIwQ0ZWVzFsY1hNTkY5cVFvWjNqSWNrQ0pOY1gvMys4UmRHdXJLU1A0ZTZQc3pSK1dKcXlpTEF2djJHLzUwbytwSnVpS0xhdFp6NU9kTDhtcmgxamVXMkI0Nm9Nck1rMStLUmV0TEdUeGFSTjlKSzM0STc3NTlSZ05ZVjJhWUNibkdzY1I1NUg4bG96dWZSeGorYzF4M2tzMGhKSkxmeFBTNkpZS09HTFgrREN4SWd4a29kamRxT3FobDRQZ2xMVUE9PS0tQUxSWU5nWmVTVzRoN09sS3pmUVM3dz09--3a411c0cf59845f0b8ccf61f69b8eb87aa1727ac; path=/; HttpOnly';
- my $cookie_encoded = $cookie;
- $cookie_encoded =~ s{([^A-Za-z0-9_])}{sprintf "%%%02x", ord $1}eg;
- $out = `nghttp $opt -v $proto://127.0.0.1:$port/?resp:set-cookie=$cookie_encoded`;
- is $?, 0;
- like $out, qr/ set-cookie: $cookie$/m;
- };
- };
- subtest 'http (upgrade)' => sub {
- $doit->('http', '-u', $server->{port});
- };
- subtest 'http (direct)' => sub {
- $doit->('http', '', $server->{port});
- };
- subtest 'https' => sub {
- plan skip_all => 'OpenSSL does not support protocol negotiation; it is too old'
- unless openssl_can_negotiate();
- $doit->('https', '', $server->{tls_port});
- };
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/50server-starter.t b/web/server/h2o/libh2o/t/50server-starter.t
deleted file mode 100644
index 9be37d378..000000000
--- a/web/server/h2o/libh2o/t/50server-starter.t
+++ /dev/null
@@ -1,103 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'start_server not found'
- unless prog_exists('start_server');
-
-my $tempdir = tempdir(CLEANUP => 1);
-
-subtest "master-mode" => sub {
- my $server = spawn_h2o({
- opts => [ qw(--mode=master) ],
- conf => << "EOT",
-pid-file: $tempdir/h2o.pid
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
- });
-
- subtest 'before-HUP' => sub {
- is read_file("$tempdir/h2o.pid"), "$server->{pid}\n", "pid";
- fetch_test($server->{port}, $server->{tls_port});
- };
- kill 'HUP', $server->{pid};
- sleep 1;
- subtest 'after-HUP' => sub {
- fetch_test($server->{port}, $server->{tls_port});
- is read_file("$tempdir/h2o.pid"), "$server->{pid}\n", "pid unchanged";
- };
-
- undef $server;
-
- ok ! stat("$tempdir/h2o.pid"), "pid-file is unlinked";
-};
-
-subtest "daemon-mode" => sub {
- my $server = spawn_h2o({
- opts => [ qw(--mode=daemon) ],
- conf => << "EOT",
-pid-file: $tempdir/h2o.pid
-error-log: $tempdir/h2o.error
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
- });
- my ($port, $tls_port) = map { $server->{$_} } qw(port tls_port);
-
- sleep 1;
- undef $server; # should have performed a double-fork by now
-
- my $pid = read_file("$tempdir/h2o.pid");
- chomp $pid;
-
- subtest 'before-HUP' => sub {
- fetch_test($port, $tls_port);
- };
- kill 'HUP', $pid;
- sleep 1;
- subtest 'after-HUP' => sub {
- fetch_test($port, $tls_port);
- is read_file("$tempdir/h2o.pid"), "$pid\n", "pid unchanged";
- };
-
- kill 'TERM', $pid;
- sleep 1;
- ok ! stat("$tempdir/h2o.pid"), "pid-file is unlinked";
-};
-
-done_testing;
-
-sub fetch_test {
- my ($port, $tls_port) = @_;
-
- plan skip_all => 'curl not found'
- unless prog_exists('curl');
- my $curl = "curl --insecure";
- $curl .= " --http1.1"
- if curl_supports_http2();
-
- my $doit = sub {
- my ($proto, $port) = @_;
- my $content = `$curl --silent --show-error $proto://127.0.0.1:$port/`;
- is md5_hex($content), md5_file(DOC_ROOT . "/index.txt"), $proto;
- };
- $doit->("http", $port);
- $doit->("https", $tls_port);
-}
-
-sub read_file {
- my $fn = shift;
- open my $fh, '<', $fn
- or die "failed to open file:$fn:$!";
- join '', <$fh>;
-}
diff --git a/web/server/h2o/libh2o/t/50servername.t b/web/server/h2o/libh2o/t/50servername.t
deleted file mode 100644
index 62b30aade..000000000
--- a/web/server/h2o/libh2o/t/50servername.t
+++ /dev/null
@@ -1,97 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use Net::EmptyPort qw(check_port empty_port);
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "default server header" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
- my $resp = `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/index.txt 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 200 }s, "200 response";
- like $resp, qr{^server: h2o/.*\r$}im, "h2o default Server: header found";
- is +(() = $resp =~ m{^server}img), 1, "header added only once";
-};
-
-subtest "alternate server header" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-server-name: h2oalternate
-EOT
-
- my $resp = `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/index.txt 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 200 }s, "200 response";
- like $resp, qr{^server: h2oalternate\r$}im, "alternate h2o Server: header found";
- is +(() = $resp =~ m{^server}img), 1, "header added only once";
-};
-
-subtest "no server header" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
-server-name: h2oalternate
-send-server-name: OFF
-EOT
- my $resp = `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/index.txt 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 200 }s, "200 response";
- unlike $resp, qr{\nserver}, "server unset";
-};
-
-my $upstream_port = empty_port();
-
-my $upstream = spawn_server(
- argv => [ qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen), $upstream_port, ASSETS_DIR . "/upstream.psgi" ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-subtest "preserve server header" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-server-name: not-sent
-send-server-name: preserve
-EOT
- my $resp = `curl --silent -Hserver:this-one-is-sent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/echo-server-header 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 200 }s, "200 response";
- like $resp, qr{\nserver: this-one-is-sent}i, "server: set to expected value";
- unlike $resp, qr{\nserver: not-sent}i, "server: not set to the internal value";
-};
-
-subtest "do not preserve server header" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-server-name: sent-this-time
-send-server-name: ON
-EOT
- my $resp = `curl --silent -Hserver:this-one-is-not-sent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/echo-server-header 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/1\.1 200 }s, "200 response";
- like $resp, qr{\nserver: sent-this-time}i, "server: set to the internal value";
- unlike $resp, qr{\nserver: this-one-is-not-sent}i, "server: not set to the backend value";
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50status.t b/web/server/h2o/libh2o/t/50status.t
deleted file mode 100644
index 64adf9604..000000000
--- a/web/server/h2o/libh2o/t/50status.t
+++ /dev/null
@@ -1,88 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-use JSON;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-subtest "default json handler" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- /s:
- status: ON
-EOT
-
- my $resp = `curl --silent -o /dev/stderr http://127.0.0.1:$server->{port}/s/json 2>&1 > /dev/null`;
- my $jresp = decode_json("$resp");
- my @requests = @{$jresp->{'requests'}};
- is $jresp->{'connections'}, 1, "One connection";
- is scalar @requests, 1, "One request";
-};
-
-subtest "json hander without requests" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- /s:
- status: ON
-EOT
-
- my $resp = `curl --silent -o /dev/stderr 'http://127.0.0.1:$server->{port}/s/json?show=main,events' 2>&1 > /dev/null`;
- my $jresp = decode_json("$resp");
- is $jresp->{'connections'}, 1, "One connection";
- is $jresp->{'requests'}, undef, "Requests not present";
- is $jresp->{'status-errors.404'}, 0, "Internal errors monitoring";
-};
-
-subtest "json hander check 404 error counter" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- /s:
- status: ON
-EOT
- my $resp = `curl --silent -o /dev/stderr 'http://127.0.0.1:$server->{port}/beeb98fcf148317be5fe5d763c658bc9ea9c087a' 2>&1 > /dev/null`;
- my $resp = `curl --silent -o /dev/stderr 'http://127.0.0.1:$server->{port}/s/json?show=events' 2>&1 > /dev/null`;
- my $jresp = decode_json("$resp");
- is $jresp->{'connections'}, undef, "Connections not present";
- is $jresp->{'requests'}, undef, "Requests not present";
- is $jresp->{'status-errors.404'}, 1, "Found the 404 error";
-};
-
-subtest "duration stats" => sub {
- my $server = spawn_h2o(<< "EOT");
-duration-stats: ON
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- /s:
- status: ON
-EOT
-
- my $resp = `curl --silent -o /dev/stderr http://127.0.0.1:$server->{port}/s/json?noreqs 2>&1 > /dev/null`;
- my $jresp = decode_json("$resp");
- my @nr_requests = @{ $jresp->{'requests'} };
- is $jresp->{'connections'}, 1, "One connection";
- is scalar @nr_requests, 1, "One request";
- is $jresp->{'status-errors.404'}, 0, "Additional errors";
- is $jresp->{'connect-time-0'}, 0, "Duration stats";
-};
-
-
-
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/50throttle-response.t b/web/server/h2o/libh2o/t/50throttle-response.t
deleted file mode 100644
index 4fba4d238..000000000
--- a/web/server/h2o/libh2o/t/50throttle-response.t
+++ /dev/null
@@ -1,42 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-use Time::HiRes qw(time);
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
-my $all_data = do {
- open my $fh, "<", "@{[DOC_ROOT]}/halfdome.jpg"
- or die "failed to open file:@{[DOC_ROOT]}/halfdome.jpg:$!";
- undef $/;
- <$fh>;
-};
-
-my $server = spawn_h2o(<< "EOT");
-throttle-response: ON
-hosts:
- default:
- paths:
- /:
- file.dir: @{[ DOC_ROOT ]}
- header.add: "X-Traffic: 100000"
-EOT
-
-run_with_curl($server, sub {
- my ($proto, $port, $curl_cmd) = @_;
- $curl_cmd .= " --silent --show-error";
- my $url = "$proto://127.0.0.1:$port/halfdome.jpg";
-
- subtest "throttle-to-low-speed" => sub {
- my $start_time = time;
- my $resp = `$curl_cmd $url`;
- my $end_time = time;
- is $resp, $all_data;
- my $speed = length($resp) / ($end_time - $start_time);
- cmp_ok($speed, '<=', 100000 * 1.1); # the implementation may cause response speed is a bit larger than the limitation, especially when file is not big enough.
- };
-});
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/80dup-host-headers.t b/web/server/h2o/libh2o/t/80dup-host-headers.t
deleted file mode 100644
index eae679b99..000000000
--- a/web/server/h2o/libh2o/t/80dup-host-headers.t
+++ /dev/null
@@ -1,51 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-my $upstream_port = empty_port();
-$| = 1;
-my $socket = new IO::Socket::INET (
- LocalHost => '127.0.0.1',
- LocalPort => $upstream_port,
- Proto => 'tcp',
- Listen => 1,
- Reuse => 1
-);
-die "cannot create socket $!\n" unless $socket;
-
-check_port($upstream_port) or die "can't connect to server socket";
-# accent and close check_port's connection
-my $client_socket = $socket->accept();
-close($client_socket);
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-system("nghttp http://127.0.0.1:$server->{'port'}/ -H 'host: host.example.com' &");
-
-my $req;
-$client_socket = $socket->accept();
-$client_socket->recv($req, 1024);
-$client_socket->send("HTTP/1.1 200 Ok\r\nConnection:close\r\n\r\nBody\r\n");
-close($client_socket);
-$socket->close();
-
-my $host_headers = 0;
-foreach (split(/\r\n/, $req)) {
- if (/^host:/i) {
- $host_headers++
- }
-}
-
-ok($host_headers == 1, "Only saw one host: header");
-done_testing();
diff --git a/web/server/h2o/libh2o/t/80graceful-shutdown.t b/web/server/h2o/libh2o/t/80graceful-shutdown.t
deleted file mode 100644
index cdc904f94..000000000
--- a/web/server/h2o/libh2o/t/80graceful-shutdown.t
+++ /dev/null
@@ -1,80 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $upstream_port = empty_port();
-my $upstream_hostport = "127.0.0.1:$upstream_port";
-
-sub create_upstream {
- my @args = (
- qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen),
- $upstream_hostport,
- ASSETS_DIR . "/upstream.psgi",
- );
- spawn_server(
- argv => \@args,
- is_ready => sub {
- $upstream_hostport =~ /:([0-9]+)$/s
- or die "failed to extract port number";
- check_port($1);
- },
- );
-};
-
-sub doit {
- my $timeout = shift;
- my $server = spawn_h2o(<< "EOT");
-http2-graceful-shutdown-timeout: $timeout
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
- my $upstream = create_upstream();
- my $nghttp_pid = open(NGHTTP, "nghttp -w 1 -v http://127.0.0.1:$server->{'port'}/infinite-stream 2>&1 |");
-
- my $nghttp_interrupted=0;
- eval {
- local $SIG{ALRM} = sub { die "Timeout" };
- my $stopped=0;
- alarm(5);
- while (<NGHTTP>) {
- if (/recv DATA frame/ && !$stopped) {
- # after the request started, stop H2O
- kill 'TERM', $server->{pid};
- $stopped = 1;
- }
- if (/Some requests were not processed/) {
- $nghttp_interrupted = 1;
- }
- }
- alarm(0);
- };
- my $err = $@;
- if ($timeout == 1) {
- ok($nghttp_interrupted == 1, "nghttp was interrupted");
- ok($err !~ /^Timeout/, "nghttp didn't timeout");
- } else {
- kill 'TERM', $nghttp_pid;
- ok($nghttp_interrupted == 0, "nghttp was not interrupted");
- ok($err =~ /^Timeout/, "nghttp did timeout");
- }
-}
-
-doit(0);
-doit(1);
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t b/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t
deleted file mode 100644
index 0d277f9fb..000000000
--- a/web/server/h2o/libh2o/t/80invalid-h2-chars-in-headers.t
+++ /dev/null
@@ -1,44 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
-
-my $resp = `nghttp -v http://127.0.0.1:$server->{'port'}/ -H 'h\rost: host.example.com' 2>&1`;
-like $resp, qr{.*error_code=NO_ERROR.*}, "No protocol error for a bogus header name";
-like $resp, qr{.*:status: 400}, "400 bad headers sent";
-like $resp, qr{found an invalid character in header name}, "Found expected error message";
-
-$resp = `nghttp -v http://127.0.0.1:$server->{'port'}/ -H 'host: host.\rexample.com' 2>&1`;
-like $resp, qr{.*error_code=NO_ERROR.*}, "No protocol error for a bogus header value";
-like $resp, qr{.*:status: 400}, "400 bad headers sent";
-like $resp, qr{found an invalid character in header value}, "Found expected error message";
-
-$resp = `nghttp -nv http://127.0.0.1:$server->{'port'}/test/ -H 'host: host.example.com' -H'blah:1' -H'blah:2' -H'blah:3' 2>&1`;
-like $resp, qr{.*error_code=NO_ERROR.*}, "No error for no bogus error value";
-
-$resp = `nghttp -nv http://127.0.0.1:$server->{'port'}/test/ -H 'host: host.example.com' -H'bl\ah:1' -H'bl\ah:2' -H'bl\ah:3' 2>&1`;
-like $resp, qr{.*error_code=NO_ERROR.*}, "No protocol error for repeated bogus headers";
-like $resp, qr{.*:status: 400}, "400 bad headers sent";
-
-$resp = `nghttp -nv http://127.0.0.1:$server->{'port'}/ -H ':bad: 1234' -H'x-reproxy-url: http://www.example.com' 2>&1`;
-like $resp, qr{.*error_code=PROTOCOL_ERROR.*}, "Error for an invalid pseudo-header";
-
-$resp = `nghttp -nv http://127.0.0.1:$server->{'port'}/test/ -H 'host: host.example.com' -H'bl\ah:1' -H':badpseudo:2' 2>&1`;
-like $resp, qr{.*error_code=PROTOCOL_ERROR.*}, "Protocol error for an invalid pseudo-header, even when a bad header was present";
-
-$resp = `nghttp -nv http://127.0.0.1:$server->{'port'}/test/ -H 'host: host.उदाहरण.com' 2>&1`;
-like $resp, qr{.*error_code=NO_ERROR.*}, "No error for utf-8 in value";
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t b/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t
deleted file mode 100644
index 9a05a1db4..000000000
--- a/web/server/h2o/libh2o/t/80issues-from-proxy-reproxy-to-different-host.t
+++ /dev/null
@@ -1,79 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-# start upstream
-my $upstream = empty_port();
-my $upstream_guard = spawn_server(
- argv => [
- qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen), "127.0.0.1:$upstream",
- ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream);
- },
-);
-
-my $error_upstream = empty_port();
-my $error_upstream_guard = spawn_server(
- argv => [
- qw(plackup -s Starlet --keepalive-timeout 100 --access-log /dev/null --listen), "127.0.0.1:$error_upstream",
- "-e", 'sub { [200, [], [123]] }',
- ],
- is_ready => sub {
- check_port($error_upstream);
- },
-);
-
-subtest "internal-redirect-from-proxy" => sub {
- my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream/
- error-doc:
- status: 404
- url: http://127.0.0.1:$error_upstream/
-EOT
- my ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/index.txt");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello\n";
-
- ($headers, $body) = run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/notfound");
- like $headers, qr{^HTTP/1\.1 404 }is;
- is $body, "123";
-};
-
-subtest "internal-redirect-within-proxy" => sub {
- plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
- my $server = spawn_h2o(<< "EOT");
-reproxy: ON
-hosts:
- default:
- paths:
- "/":
- mruby.handler: |
- Proc.new do |env|
- [200, { "x-reproxy-url" => "/proxy/?resp:status=302&resp:location=/index.txt" }, ["from mruby"]]
- end
- "/proxy":
- proxy.reverse.url: http://127.0.0.1:$upstream/
-EOT
- my ($headers, $body) = run_prog("curl --max-redirs 0 --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/");
- like $headers, qr{^HTTP/1\.1 200 }is;
- is $body, "hello\n";
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/80issues579.t b/web/server/h2o/libh2o/t/80issues579.t
deleted file mode 100644
index 046e188ad..000000000
--- a/web/server/h2o/libh2o/t/80issues579.t
+++ /dev/null
@@ -1,45 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-# spawn upstream
-my $upstream_port = empty_port();
-my $upstream = spawn_server(
- argv => [
- qw(plackup -s Starlet --access-log /dev/null -p), $upstream_port, ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-# spawn server
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- [399, {"link" => "</assets/index.js>; rel=preload"}, []]
- end
- proxy.reverse.url: http://127.0.0.1:$upstream_port
- /assets:
- file.dir: @{[DOC_ROOT]}
-EOT
-
-my $resp = `nghttp -n --stat "http://127.0.0.1:$server->{port}/index.txt"`;
-like $resp, qr{\nid\s*responseEnd\s.*\s/assets/index\.js\n.*\s/index\.txt\n}is, 'should receive pushed blocking asset from file handler before the main response';
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/80issues595.t b/web/server/h2o/libh2o/t/80issues595.t
deleted file mode 100644
index 721e054ed..000000000
--- a/web/server/h2o/libh2o/t/80issues595.t
+++ /dev/null
@@ -1,42 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- file.dir: @{[DOC_ROOT]}
-EOT
-
-subtest "trailing HEADERS" => sub {
- my $doit = sub {
- my ($proto, $opts, $port) = @_;
- my $resp = `nghttp $opts -M 1 -m 3 -H ':method: GET' -d /dev/null --trailer 'foo: bar' '$proto://127.0.0.1:$port/'`;
- is $resp, "hello\n" x 3, $proto;
- };
- $doit->("http", "", $server->{port});
- $doit->("https", "", $server->{tls_port});
-};
-
-subtest "trailing HEADERS with CONTINUATION" => sub {
- my $doit = sub {
- my ($proto, $opts, $port) = @_;
- my $cmd = "nghttp $opts -M 1 -m 3 -H ':method: GET' -d /dev/null";
- $cmd .= join "", map {
- " --trailer 'foo$_: 0123456789abcdef:$_'"
- } 1..1000;
- $cmd .= " '$proto://127.0.0.1:$port/'";
- my $resp = `$cmd`;
- is $resp, "hello\n" x 3, $proto;
- };
- $doit->("http", "", $server->{port});
- $doit->("https", "", $server->{tls_port});
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/80issues61.t b/web/server/h2o/libh2o/t/80issues61.t
deleted file mode 100644
index bdcfd6ea5..000000000
--- a/web/server/h2o/libh2o/t/80issues61.t
+++ /dev/null
@@ -1,57 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'plackup not found'
- unless prog_exists('plackup');
-plan skip_all => 'Starlet not found'
- unless system('perl -MStarlet /dev/null > /dev/null 2>&1') == 0;
-
-my $upstream_port = empty_port();
-
-my $upstream = spawn_server(
- argv => [
- qw(plackup -s Starlet --access-log /dev/null -p), $upstream_port, ASSETS_DIR . "/upstream.psgi",
- ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-my $h2o = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- /:
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-subtest 'http1' => sub {
- plan skip_all => 'curl not found'
- unless prog_exists('curl');
-
- my $doit = sub {
- my ($proto, $port) = @_;
- my $extra = '';
- if ($proto eq 'https') {
- $extra .= ' --insecure';
- $extra .= ' --http1.1'
- if curl_supports_http2();
- }
- subtest $proto => sub {
- my $resp = `curl --max-time 1 $extra $proto://127.0.0.1:$port/streaming-body 2>&1`;
- like $resp, qr/operation timed out/i, "operation should time out";
- sleep 1;
- $resp = `curl --silent --dump-header /dev/stderr $extra $proto://127.0.0.1:$port/ 2>&1 > /dev/null`;
- like $resp, qr{^HTTP/[^ ]+ 404\s}s, "server is still alive";
- };
- };
- $doit->('http', $h2o->{port});
- $doit->('https', $h2o->{tls_port});
-};
-
-# note: implement test using HTTP/2, nghttp --timeout 2 does not seem to work like above
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/80one-byte-window.t b/web/server/h2o/libh2o/t/80one-byte-window.t
deleted file mode 100644
index f2d0813cb..000000000
--- a/web/server/h2o/libh2o/t/80one-byte-window.t
+++ /dev/null
@@ -1,56 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'nc not found'
- unless prog_exists('nc');
-
-plan skip_all => 'nghttp not found'
- unless prog_exists('nghttp');
-
-my $upstream_port = empty_port();
-$| = 1;
-my $socket = new IO::Socket::INET (
- LocalHost => '127.0.0.1',
- LocalPort => $upstream_port,
- Proto => 'tcp',
- Listen => 1,
- Reuse => 1
-);
-die "cannot create socket $!\n" unless $socket;
-
-check_port($upstream_port) or die "can't connect to server socket";
-# accent and close check_port's connection
-my $client_socket = $socket->accept();
-close($client_socket);
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-my $msg = "this is the message";
-open(NGHTTP, "nghttp -t 3 -w 1 -v http://127.0.0.1:$server->{'port'}/ -H 'host: host.example.com' 2>&1 |");
-
-my $req;
-$client_socket = $socket->accept();
-$client_socket->recv($req, 1024);
-$client_socket->send("HTTP/1.1 200 Ok\r\nConnection:close\r\n\r\n$msg");
-close($client_socket);
-
-my $worked = 1;
-while(<NGHTTP>) {
- if (/Timeout/) {
- $worked = 0;
- }
-}
-
-ok($worked == 1, "The connection didn't timeout");
-
-$socket->close();
-done_testing();
diff --git a/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t b/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t
deleted file mode 100644
index 4afd9f8c7..000000000
--- a/web/server/h2o/libh2o/t/80reverse-proxy-missing-content-length-for-post.t
+++ /dev/null
@@ -1,76 +0,0 @@
-use strict;
-use warnings;
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'curl does not support HTTP/2'
- unless curl_supports_http2();
-
-my $upstream_port = empty_port();
-$| = 1;
-my $socket = new IO::Socket::INET (
- LocalHost => '127.0.0.1',
- LocalPort => $upstream_port,
- Proto => 'tcp',
- Listen => 1,
- Reuse => 1
-);
-die "cannot create socket $!\n" unless $socket;
-
-check_port($upstream_port) or die "can't connect to server socket";
-# accept and close check_port's connection
-my $client_socket = $socket->accept();
-close($client_socket);
-
-my $server = spawn_h2o(<< "EOT");
-hosts:
- default:
- paths:
- "/":
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
-
-sub doit {
- my $cmd = shift;
- my $should_see_cl = shift;
- my $cl_value = shift;
- system($cmd);
-
- my $req;
- $client_socket = $socket->accept();
- $client_socket->recv($req, 1 * 1024);
- $client_socket->send("HTTP/1.1 200 Ok\r\nConnection:close\r\n\r\nBody\r\n");
- close($client_socket);
-
- my $cl_actual_value = -1;
- my $cl_headers = 0;
- foreach (split(/\r\n/, $req)) {
- if (/^content-length:(.*)$/i) {
- $cl_headers++;
- $cl_actual_value = $1;
- }
- }
- if ($should_see_cl) {
- ok($cl_headers == 1, "Saw one, and only one content-length: header");
- ok($cl_actual_value == $cl_value, "content-length: header has the expected value");
- } else {
- ok($cl_headers == 0, "Saw no content-length: header");
- }
-}
-my $file_size = 512;
-my $file = create_data_file($file_size);
-
-# curl doesn't add a CL header when using -X POST
-doit("curl -so /dev/null --http2 -X POST http://127.0.0.1:$server->{'port'}/ &", 1, 0);
-# curl adds a content-length:0 header when using --data ''
-doit("curl -so /dev/null --http2 --data '' http://127.0.0.1:$server->{'port'}/ &", 1, 0);
-
-# check that an existing CL header is preserved
-doit("curl -so /dev/null --http2 --data 'a=b' http://127.0.0.1:$server->{'port'}/ &", 1, 3);
-doit("curl -so /dev/null --http2 --header 'transfer-encoding: chunked' --data-binary \@$file -X POST http://127.0.0.1:$server->{'port'}/ &", 1, $file_size);
-
-$socket->close();
-done_testing();
diff --git a/web/server/h2o/libh2o/t/80yaml-merge.t b/web/server/h2o/libh2o/t/80yaml-merge.t
deleted file mode 100644
index 55cd3911d..000000000
--- a/web/server/h2o/libh2o/t/80yaml-merge.t
+++ /dev/null
@@ -1,82 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
-plan skip_all => 'nc not found'
- unless prog_exists('nc');
-
-my @ports = empty_ports(3);
-
-my $tempdir = tempdir(CLEANUP => 1);
-
-{ # create configuration file
- open my $fh, ">", "$tempdir/h2o.conf"
- or die "failed to create file:$tempdir/h2o.conf:$!";
- print $fh <<"EOT";
-hosts:
- host1: \&default
- listen: $ports[0]
- paths:
- /:
- mruby.handler: |
- Proc.new do |env|
- [200, {}, [env["SERVER_NAME"]]]
- end
- host2:
- listen: $ports[1]
- <<: *default
- host3:
- <<: *default
- listen: $ports[2]
-EOT
-};
-
-my $guard = spawn_server(
- argv => [ bindir() . "/h2o", "-c", "$tempdir/h2o.conf" ],
- is_ready => sub {
- for (@ports) {
- return unless check_port($_);
- }
- return 1;
- },
-);
-
-subtest "port1" => sub {
- subtest "no-host" => sub {
- my $resp = `(echo "GET / HTTP/1.0"; echo) | nc 127.0.0.1 $ports[0] 2>&1`;
- like $resp, qr{^HTTP/1\.[0-9]+ 200 OK\r\n}s;
- like $resp, qr{\r\n\r\nhost1$}s;
- };
- subtest "host=host2" => sub {
- my $resp = `(echo "GET / HTTP/1.0"; echo "Host: host2"; echo) | nc 127.0.0.1 $ports[0] 2>&1`;
- like $resp, qr{^HTTP/1\.[0-9]+ 200 OK\r\n}s;
- like $resp, qr{\r\n\r\nhost2$}s;
- };
- subtest "host=host3" => sub {
- # host3 is not listening on the default port
- my $resp = `(echo "GET / HTTP/1.0"; echo) | nc 127.0.0.1 $ports[0] 2>&1`;
- like $resp, qr{^HTTP/1\.[0-9]+ 200 OK\r\n}s;
- like $resp, qr{\r\n\r\nhost1$}s;
- };
-};
-
-subtest "port2" => sub {
- my $resp = `(echo "GET / HTTP/1.0"; echo) | nc 127.0.0.1 $ports[1] 2>&1`;
- like $resp, qr{^HTTP/1\.[0-9]+ 200 OK\r\n}s;
- like $resp, qr{\r\n\r\nhost2$}s;
-};
-
-subtest "port3" => sub {
- my $resp = `(echo "GET / HTTP/1.0"; echo) | nc 127.0.0.1 $ports[2] 2>&1`;
- like $resp, qr{^HTTP/1\.[0-9]+ 200 OK\r\n}s;
- like $resp, qr{\r\n\r\nhost3$}s;
-};
-
-done_testing;
diff --git a/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t b/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t
deleted file mode 100644
index 112098dfa..000000000
--- a/web/server/h2o/libh2o/t/90live-fetch-ocsp-response.t
+++ /dev/null
@@ -1,50 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Test::More;
-
-plan skip_all => "skipping live tests (setenv LIVE_TESTS=1 to run them)"
- unless $ENV{LIVE_TESTS};
-
-my @HOSTS = qw(
- www.verisign.com
- www.thawte.com
- www.cybertrust.ne.jp
- www.comodo.com
- www.godaddy.com
- www.startssl.com
-);
-
-for my $host (@HOSTS) {
- subtest $host => sub {
- doit($host);
- };
-}
-
-done_testing;
-
-sub doit {
- my $host = shift;
- my $input = do {
- open my $fh, "-|", "openssl s_client -showcerts -host $host -port 443 -CAfile /dev/null < /dev/null 2>&1"
- or die "failed to invoke openssl:$!";
- local $/;
- <$fh>;
- };
- my @certs;
- while ($input =~ /(-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----)/sg) {
- push @certs, $1;
- }
- ok @certs >= 2, "chain has more than 2 certificates";
-
- my ($cert_fh, $cert_fn) = tempfile(UNLINK => 1);
- print $cert_fh join "\n", @certs;
- close $cert_fh;
-
- my $ret = system("share/h2o/fetch-ocsp-response $cert_fn > /dev/null");
- if ($ret == 0) {
- pass "successfully fetched and verified OCSP response";
- } else {
- fail "fetch-ocsp-response exitted with status:$?";
- }
-}
diff --git a/web/server/h2o/libh2o/t/90live-sni.t b/web/server/h2o/libh2o/t/90live-sni.t
deleted file mode 100644
index eb5bb5d8d..000000000
--- a/web/server/h2o/libh2o/t/90live-sni.t
+++ /dev/null
@@ -1,91 +0,0 @@
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-our $CA_CERT = "misc/test-ca/ca.crt";
-
-# using wget since curl of OS X 10.9.5 returns invalid certificate chain error with the test
-plan skip_all => 'wget not found'
- unless prog_exists('wget');
-
-plan skip_all => 'only wget >= 1.14 supports SNI'
- unless `wget --version` =~ /^GNU Wget 1\.([0-9]+)/ && $1 >= 14;
-
-plan skip_all => "skipping live tests (setenv LIVE_TESTS=1 to run them)"
- unless $ENV{LIVE_TESTS};
-
-subtest "basic" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1.xip.io:$tls_port":
- paths:
- /:
- file.dir: examples/doc_root
- "alternate.127.0.0.1.xip.io:$tls_port":
- listen:
- port: $tls_port
- ssl:
- key-file: examples/h2o/alternate.key
- certificate-file: examples/h2o/alternate.crt
- paths:
- /:
- file.dir: examples/doc_root.alternate
-EOT
- });
-
- do_test(
- "127.0.0.1.xip.io:$server->{tls_port}",
- md5_file("examples/doc_root/index.html"),
- );
-
- do_test(
- "alternate.127.0.0.1.xip.io:$server->{tls_port}",
- md5_file("examples/doc_root.alternate/index.txt"),
- );
-};
-
-subtest "wildcard" => sub {
- my $server = spawn_h2o(sub {
- my ($port, $tls_port) = @_;
- return << "EOT";
-hosts:
- "127.0.0.1.xip.io:$tls_port":
- paths:
- /:
- file.dir: examples/doc_root
- "*.127.0.0.1.xip.io:$tls_port":
- listen:
- port: $tls_port
- ssl:
- key-file: examples/h2o/alternate.key
- certificate-file: examples/h2o/alternate.crt
- paths:
- /:
- file.dir: examples/doc_root.alternate
-EOT
- });
-
- do_test(
- "127.0.0.1.xip.io:$server->{tls_port}",
- md5_file("examples/doc_root/index.html"),
- );
-
- do_test(
- "alternate.127.0.0.1.xip.io:$server->{tls_port}",
- md5_file("examples/doc_root.alternate/index.txt"),
- );
-};
-
-
-done_testing();
-
-sub do_test {
- my ($authority, $md5_expected) = @_;
- my $content = `wget -nv --ca-certificate=$CA_CERT -O - https://$authority/`;
- is $?, 0, "wget returns success";
- is md5_hex($content), $md5_expected, "content is as expected";
-}
diff --git a/web/server/h2o/libh2o/t/90root-fastcgi-php.t b/web/server/h2o/libh2o/t/90root-fastcgi-php.t
deleted file mode 100644
index 94010984e..000000000
--- a/web/server/h2o/libh2o/t/90root-fastcgi-php.t
+++ /dev/null
@@ -1,78 +0,0 @@
-# this test checks the behavior of `file.custom-handler` and `fastcgi.spawn`
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempdir);
-use Net::EmptyPort qw(check_port empty_port);
-use Test::More;
-use t::Util;
-
-plan skip_all => 'test requires root privileges'
- unless $< == 0;
-plan skip_all => 'user: nobody does not exist'
- unless getpwnam 'nobody';
-plan skip_all => 'user: daemon does not exist'
- unless getpwnam 'daemon';
-
-plan skip_all => 'curl not found'
- unless prog_exists('curl');
-plan skip_all => 'php-cgi not found'
- unless prog_exists('php-cgi');
-
-sub check_resp {
- my $port = shift;
- my $resp = `curl --silent http://127.0.0.1:$port/index.txt`;
- is $resp, "hello\n", 'ordinary file';
- $resp = `curl --silent http://127.0.0.1:$port/hello.php`;
- is $resp, 'hello world', 'php';
-}
-
-subtest 'user-in-global-conf' => sub {
- my $server = spawn_h2o(<< "EOT");
-user: nobody
-file.custom-handler:
- extension: .php
- fastcgi.spawn: "exec php-cgi"
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
- check_resp($server->{port});
-};
-
-subtest 'user-in-fastcgi.spawn' => sub {
- my $server = spawn_h2o(<< "EOT");
-user: nobody
-file.custom-handler:
- extension: .php
- fastcgi.spawn:
- command: "exec php-cgi"
- user: daemon
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
- check_resp($server->{port});
-};
-
-subtest 'user-not-in-map-style-fastcgi.spawn' => sub {
- my $server = spawn_h2o(<< "EOT");
-user: nobody
-file.custom-handler:
- extension: .php
- fastcgi.spawn:
- command: "exec php-cgi"
-hosts:
- default:
- paths:
- "/":
- file.dir: @{[ DOC_ROOT ]}
-EOT
- check_resp($server->{port});
-};
-
-done_testing();
diff --git a/web/server/h2o/libh2o/t/README.md b/web/server/h2o/libh2o/t/README.md
deleted file mode 100644
index a2f203959..000000000
--- a/web/server/h2o/libh2o/t/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-The tests are numbered using the following rule.
-
-- 00 - unit tests
-- 10 - module-level end-to-end tests
-- (library level tests may go in here)
-- 40 - protocol tests
-- 50 - end-to-end tests
-- 80 - issue tests
-- 90 - author tests?
diff --git a/web/server/h2o/libh2o/t/Util.pm b/web/server/h2o/libh2o/t/Util.pm
deleted file mode 100644
index 220bb631b..000000000
--- a/web/server/h2o/libh2o/t/Util.pm
+++ /dev/null
@@ -1,283 +0,0 @@
-package t::Util;
-
-use strict;
-use warnings;
-use Digest::MD5 qw(md5_hex);
-use File::Temp qw(tempfile);
-use Net::EmptyPort qw(check_port empty_port);
-use POSIX ":sys_wait_h";
-use Path::Tiny;
-use Scope::Guard qw(scope_guard);
-use Test::More;
-use Time::HiRes qw(sleep);
-
-use base qw(Exporter);
-our @EXPORT = qw(ASSETS_DIR DOC_ROOT bindir server_features exec_unittest exec_mruby_unittest spawn_server spawn_h2o empty_ports create_data_file md5_file prog_exists run_prog openssl_can_negotiate curl_supports_http2 run_with_curl);
-
-use constant ASSETS_DIR => 't/assets';
-use constant DOC_ROOT => ASSETS_DIR . "/doc_root";
-
-sub bindir {
- $ENV{BINARY_DIR} || '.';
-}
-
-sub server_features {
- open my $fh, "-|", bindir() . "/h2o", "--version"
- or die "failed to invoke: h2o --version:$!";
- <$fh>; # skip h2o version
- +{
- map { chomp($_); split /:/, $_, 2 } <$fh>
- };
-}
-
-sub exec_unittest {
- my $base = shift;
- my $fn = bindir() . "/t-00unit-$base.t";
- plan skip_all => "unit test:$base does not exist"
- if ! -e $fn;
-
- if (prog_exists("memcached")) {
- my $port = empty_port();
- pipe my $rfh, my $wfh
- or die "pipe failed:$!";
- my $pid = fork;
- die "fork failed:$!"
- unless defined $pid;
- if ($pid == 0) {
- # child process
- close $wfh;
- POSIX::dup2($rfh->fileno, 5)
- or die "dup2 failed:$!";
- exec qw(share/h2o/kill-on-close -- memcached -l 127.0.0.1 -p), $port;
- exit 1;
- }
- close $rfh;
- POSIX::dup($wfh->fileno)
- or die "dup failed:$!";
- sleep 1;
- if (waitpid($pid, WNOHANG) == $pid) {
- die "failed to launch memcached";
- }
- $ENV{MEMCACHED_PORT} = $port;
- }
-
- exec $fn;
- die "failed to exec $fn:$!";
-}
-
-sub exec_mruby_unittest {
- plan skip_all => 'mruby support is off'
- unless server_features()->{mruby};
-
- my $test_dir = path('t/00unit.mruby');
- my $bin = path(bindir(), 'mruby/host/bin/mruby');
- unless (-e $bin) {
- die "unit test: mruby binary $bin does not exist";
- }
-
- my $k = 0;
- $test_dir->visit(sub {
- my ($path) = @_;
- return unless $path =~ /\.rb$/;
-
- my $fn = "$bin $path";
- my $output = `$fn`;
-
- # parse mruby test output
- $output =~ /# Running tests:\n\n([SFE\.]+)\n/
- or die "cannot parse test output for $path";
- my ($i, $j) = (0, 0);
- my @results = map { +{ type => $_, index => ++$i, failed => ($_ eq 'F' || $_ eq 'E') } } split(//, $1);
- while ($output =~ /\d\) (Skipped|Failure|Error):\n([^\n]+)/g) {
- my ($type, $detail) = (substr($1, 0, 1), $2);
- while ($results[$j]->{type} ne $type) { $j++; }
- $results[$j++]->{detail} = $detail;
- }
-
- # print TAP compatible output
- printf("%s %s\n", $path, '.' x (51 - length($path)));
- for my $r (@results) {
- printf(" %s %d - %s\n", $r->{failed} ? 'not ok' : 'ok', $r->{index}, $r->{detail} || '');
- printf STDERR ("# Error - %s\n", $r->{detail}) if $r->{failed};
- }
- printf(" 1..%d\n", scalar(@results));
- printf("%s %d - %s\n", (grep { $_->{failed} } @results) ? 'not ok' : 'ok', ++$k, $path);
-
- }, +{ recurse => 1 });
-
- printf("1..%d\n", $k);
-}
-
-# spawns a child process and returns a guard object that kills the process when destroyed
-sub spawn_server {
- my %args = @_;
- my $pid = fork;
- die "fork failed:$!"
- unless defined $pid;
- if ($pid != 0) {
- print STDERR "spawning $args{argv}->[0]... ";
- if ($args{is_ready}) {
- while (1) {
- if ($args{is_ready}->()) {
- print STDERR "done\n";
- last;
- }
- if (waitpid($pid, WNOHANG) == $pid) {
- die "server failed to start (got $?)\n";
- }
- sleep 0.1;
- }
- }
- my $guard = scope_guard(sub {
- print STDERR "killing $args{argv}->[0]... ";
- my $sig = 'TERM';
- Retry:
- if (kill $sig, $pid) {
- my $i = 0;
- while (1) {
- if (waitpid($pid, WNOHANG) == $pid) {
- print STDERR "killed (got $?)\n";
- last;
- }
- if ($i++ == 100) {
- if ($sig eq 'TERM') {
- print STDERR "failed, sending SIGKILL... ";
- $sig = 'KILL';
- goto Retry;
- }
- print STDERR "failed, continuing anyways\n";
- last;
- }
- sleep 0.1;
- }
- } else {
- print STDERR "no proc? ($!)\n";
- }
- });
- return wantarray ? ($guard, $pid) : $guard;
- }
- # child process
- exec @{$args{argv}};
- die "failed to exec $args{argv}->[0]:$!";
-}
-
-# returns a hash containing `port`, `tls_port`, `guard`
-sub spawn_h2o {
- my ($conf) = @_;
- my @opts;
-
- # decide the port numbers
- my ($port, $tls_port) = empty_ports(2);
-
- # setup the configuration file
- my ($conffh, $conffn) = tempfile(UNLINK => 1);
- $conf = $conf->($port, $tls_port)
- if ref $conf eq 'CODE';
- if (ref $conf eq 'HASH') {
- @opts = @{$conf->{opts}}
- if $conf->{opts};
- $conf = $conf->{conf};
- }
- print $conffh <<"EOT";
-$conf
-listen:
- host: 0.0.0.0
- port: $port
-listen:
- host: 0.0.0.0
- port: $tls_port
- ssl:
- key-file: examples/h2o/server.key
- certificate-file: examples/h2o/server.crt
-EOT
-
- # spawn the server
- my ($guard, $pid) = spawn_server(
- argv => [ bindir() . "/h2o", "-c", $conffn, @opts ],
- is_ready => sub {
- check_port($port) && check_port($tls_port);
- },
- );
- my $ret = {
- port => $port,
- tls_port => $tls_port,
- guard => $guard,
- pid => $pid,
- conf_file => $conffn,
- };
- return $ret;
-}
-
-sub empty_ports {
- my $n = shift;
- my @ports;
- while (@ports < $n) {
- my $t = empty_port();
- push @ports, $t
- unless grep { $_ == $t } @ports;
- }
- return @ports;
-}
-
-sub create_data_file {
- my $sz = shift;
- my ($fh, $fn) = tempfile(UNLINK => 1);
- print $fh '0' x $sz;
- close $fh;
- return $fn;
-}
-
-sub md5_file {
- my $fn = shift;
- open my $fh, "<", $fn
- or die "failed to open file:$fn:$!";
- local $/;
- return md5_hex(join '', <$fh>);
-}
-
-sub prog_exists {
- my $prog = shift;
- system("which $prog > /dev/null 2>&1") == 0;
-}
-
-sub run_prog {
- my $cmd = shift;
- my ($tempfh, $tempfn) = tempfile(UNLINK => 1);
- my $stderr = `$cmd 2>&1 > $tempfn`;
- my $stdout = do { local $/; <$tempfh> };
- return ($stderr, $stdout);
-}
-
-sub openssl_can_negotiate {
- my $openssl_ver = `openssl version`;
- $openssl_ver =~ /^\S+\s(\d+)\.(\d+)\.(\d+)/
- or die "cannot parse OpenSSL version: $openssl_ver";
- $openssl_ver = $1 * 10000 + $2 * 100 + $3;
- return $openssl_ver >= 10001;
-}
-
-sub curl_supports_http2 {
- return !! (`curl --version` =~ /^Features:.*\sHTTP2(?:\s|$)/m);
-}
-
-sub run_with_curl {
- my ($server, $cb) = @_;
- plan skip_all => "curl not found"
- unless prog_exists("curl");
- subtest "http/1" => sub {
- $cb->("http", $server->{port}, "curl");
- };
- subtest "https/1" => sub {
- my $cmd = "curl --insecure";
- $cmd .= " --http1.1"
- if curl_supports_http2();
- $cb->("https", $server->{tls_port}, $cmd);
- };
- subtest "https/2" => sub {
- plan skip_all => "curl does not support HTTP/2"
- unless curl_supports_http2();
- $cb->("https", $server->{tls_port}, "curl --insecure --http2");
- };
-}
-
-1;
diff --git a/web/server/h2o/libh2o/t/assets/.htpasswd b/web/server/h2o/libh2o/t/assets/.htpasswd
deleted file mode 100644
index ae2071650..000000000
--- a/web/server/h2o/libh2o/t/assets/.htpasswd
+++ /dev/null
@@ -1 +0,0 @@
-dankogai:$apr1$UZu91fLT$LZuXFeu3wSYdgLY6Wez5m/
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/404.html b/web/server/h2o/libh2o/t/assets/doc_root/404.html
deleted file mode 100644
index 1990b40f9..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/404.html
+++ /dev/null
@@ -1 +0,0 @@
-hi I fixed ur webpage
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/alice.txt b/web/server/h2o/libh2o/t/assets/doc_root/alice.txt
deleted file mode 100644
index adace8072..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/alice.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Alice was beginning to get very tired of sitting by her sister on the
-bank, and of having nothing to do: once or twice she had peeped into the
-book her sister was reading, but it had no pictures or conversations in
-it, 'and what is the use of a book,' thought Alice 'without pictures or
-conversations?'
-
-So she was considering in her own mind (as well as she could, for the
-hot day made her feel very sleepy and stupid), whether the pleasure
-of making a daisy-chain would be worth the trouble of getting up and
-picking the daisies, when suddenly a White Rabbit with pink eyes ran
-close by her.
-
-There was nothing so VERY remarkable in that; nor did Alice think it so
-VERY much out of the way to hear the Rabbit say to itself, 'Oh dear!
-Oh dear! I shall be late!' (when she thought it over afterwards, it
-occurred to her that she ought to have wondered at this, but at the time
-it all seemed quite natural); but when the Rabbit actually TOOK A WATCH
-OUT OF ITS WAISTCOAT-POCKET, and looked at it, and then hurried on,
-Alice started to her feet, for it flashed across her mind that she had
-never before seen a rabbit with either a waistcoat-pocket, or a watch
-to take out of it, and burning with curiosity, she ran across the field
-after it, and fortunately was just in time to see it pop down a large
-rabbit-hole under the hedge.
-
-In another moment down went Alice after it, never once considering how
-in the world she was to get out again.
-
-The rabbit-hole went straight on like a tunnel for some way, and then
-dipped suddenly down, so suddenly that Alice had not a moment to think
-about stopping herself before she found herself falling down a very deep
-well.
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz b/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz
deleted file mode 100644
index 42ff445da..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/alice2.txt.gz
+++ /dev/null
Binary files differ
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/esi.html b/web/server/h2o/libh2o/t/assets/doc_root/esi.html
deleted file mode 100644
index fea3eec6d..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/esi.html
+++ /dev/null
@@ -1 +0,0 @@
-Hello to the <esi:include src="echo-query?world" />, from <esi:include src="echo-query?H2O" />!
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg b/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg
deleted file mode 100644
index 4e96991a0..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/halfdome.jpg
+++ /dev/null
Binary files differ
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi b/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi
deleted file mode 100755
index 4401481bf..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/hello.cgi
+++ /dev/null
@@ -1,13 +0,0 @@
-#! /usr/bin/env perl
-
-use strict;
-use warnings;
-use CGI;
-
-my $q = CGI->new;
-
-print $q->header("text/plain; charset=utf-8");
-print "Hello ", $q->param("name") || "unknown";
-
-close STDOUT;
-print STDERR "hello.cgi is shutting down\n";
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/hello.php b/web/server/h2o/libh2o/t/assets/doc_root/hello.php
deleted file mode 100644
index 905beefec..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/hello.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-if (isset($_GET['link'])) {
- header('Link: ' . $_GET['link']);
-}
-echo "hello world";
-?>
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.js b/web/server/h2o/libh2o/t/assets/doc_root/index.js
deleted file mode 100644
index 3254c9294..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.js
+++ /dev/null
@@ -1 +0,0 @@
-alert("hello");
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.txt b/web/server/h2o/libh2o/t/assets/doc_root/index.txt
deleted file mode 100644
index ce0136250..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.txt
+++ /dev/null
@@ -1 +0,0 @@
-hello
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br b/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br
deleted file mode 100644
index b931f4d7a..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.br
+++ /dev/null
@@ -1,2 +0,0 @@
-‹€hello
- \ No newline at end of file
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz b/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz
deleted file mode 100644
index c15976b94..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/index.txt.gz
+++ /dev/null
Binary files differ
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php b/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php
deleted file mode 100644
index 871b47765..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/issues/951.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-header("Cache-Control: no-cache");
-header("Strict-Transport-Security: max-age=31536000; includeSubDomains");
-header("X-Content-Type-Options: nosniff");
-header("X-XSS-Protection: 1; mode=block");
-header("Content-Security-Policy: default-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me; style-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me 'unsafe-inline' 'unsafe-eval'; font-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me https://fonts.gstatic.com; frame-ancestors *.fortifi.me:8090; connect-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me wss://screenshare.fortifiio.xyz https://screenshare.fortifiio.xyz ws://chat.fortifi.me:8443 wss://call.fortifi.xyz wss://call.fortifiio.xyz wss://*.twilio.com; media-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me blob: *.fortifi.cloud *.fortifi.xyz *.fortifiio.xyz *.fortifi.co *.fortifi.me:* https://storage.googleapis.com/fortifi-stage-attachments/ https://storage.googleapis.com/storage.fortifi.co/ https://api.twilio.com/");
-header("X-Content-Security-Policy: default-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me; style-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me 'unsafe-inline' 'unsafe-eval'; font-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me https://fonts.gstatic.com; frame-ancestors *.fortifi.me:8090; connect-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me wss://screenshare.fortifiio.xyz https://screenshare.fortifiio.xyz ws://chat.fortifi.me:8443 wss://call.fortifi.xyz wss://call.fortifiio.xyz wss://*.twilio.com; media-src 'self' data: *.fortifi.cloud *.fortifi.io *.fortifiio.xyz *.fortifi.xyz *.fortifi.me:* https://storage.googleapis.com/cdn.fortifi.co/ https://maxcdn.bootstrapcdn.com/font-awesome/ https://www.google.com/ https://www.youtube.com/ https://ajax.googleapis.com/ https://www.gstatic.com https://maps.googleapis.com https://static.twilio.com/libs/ https://*.static.twilio.com/ https://www.google-analytics.com *.fortel.li *.fortel.fortifi.me blob: *.fortifi.cloud *.fortifi.xyz *.fortifiio.xyz *.fortifi.co *.fortifi.me:* https://storage.googleapis.com/fortifi-stage-attachments/ https://storage.googleapis.com/storage.fortifi.co/ https://api.twilio.com/");
-header("X-Frame-Options: SAMEORIGIN");
-header("Set-Cookie: e1d0dd2c6a_login=eyJpdiI6Ilhjb21JeVZDQnZWNUcyellWYVM5cWc9PSIsInZhbHVlIjoiUUVcL250NkNpQjRMOUlPdm9TXC9GTmhOcFwvdGtsSnhtZnNCdFNzVTF1U3dcL0UyXC9UdWc0aUJsUFZmVzZOT3Y3WkoydmZpUG5LamFEMDhGdzNSdlhcL2E2Sjd1NHZJMk5GdDZDeFRJMzdMN3FSS3VDWFwvTlg5QXdrbHVvSmtwRFdvaEp1NGJiaTA5blNza3ltdGp4SG1wR1wvRnk3NkRwQmZvNHgwM1RZenVZc1wvXC84cFEycjN5M0RWSDI0TmRDb1RaQXUwYXZEbG5mZW9tSFVcL2wxdjdsMnI0UHlFYkRXdHdPb2U4a1hMMm4wcEg1OWlrZlwvejVQR2xNRjNBMEt2aTZWWlg4dU9yZ3pqRjB1WE9Vd3A4TVdqWHdIUk54VCtaNGNSMWNpTTYxQVJcL3lJXC9oZ3R1MzNIVXl1WTVsZmpUamgyMUVRUzRzcVRNSWdXUGhtWnpUbHc1RFBicm0xUVwvbWQ0bW1PVkIzUTBTSGwxcGx4a0Z6NVdNTUxMbGlFMDd6R2oybFZDN1lRKzFVczVrRmxmdjBzQVIwS3NiczdMRzBlZklpenRjMlY1TWhHcTEwcFVZZ3IxN0tnXC9relhDVG4wbGhNSHlHOVR1XC9VRGZYM0oxY1VTR2RiQUxQVTJLbkkxVytvcVwvNlNpMkVlXC9QQ2E4YnZSbXNqN1E3RFdQeDVQSHk0N0pTeWZTbW1UVko2UUFcLzA4aWpXclZ0NEtGUzV1YldRcFZpRGdPbjMrNEd2ajd1MUl1Y2dpN0xtcklnczB2Zm1KN1RUeFp6Y284MVd2K0REUXAySUFIK0ZJMkNta29OeGNqOXdROWFTTjRCNjJLVlBsMFQrZFwvV3RvTEZmTUdFWk1VZndObW1Hd2tHXC9FUktIYno4QlB6XC9TNFBDUWZ6RFhFYTRaNm9WUUdVXC9DbjlOM0RlTGZ1eGw0dEdvUmViWURDT3NoaldXUkMwaldHcGM3ZlRLWWxjMmpWWTVTSW1EaE1DQ0ZGM0JGWGJPQ1RBNUF0bGNkSktBTWlaeHpoa0NwdllyNWltZmRjTmwySHE3ZHZRcEwxeXlvNVp3MXNqMXMrRDByeElXcE4xbXB6bUFzbG9IT1ZuNEVITmxDcTdEWDJnMk5yZzEyeWRZU2pIRWU5dFVDZWRVODZ1VCs0OVRVdU8xc2dhajJPTGVJVFRxTFl4YWFaalphRmdKV1c2YVhsVzREMjF0SnFhZWtTUnp2V3hGdnFZSlZSUXV4bTloMmNjelJYaTFWMDFEVDRZTWY2RUNPQzUxOTRcL3N5S1o1VTAxTDI4TmlGbnU5bEtYSmR4YWlPN1FMbktFdTlxUXFUSVVlclp3XC9jcjVWbDVPWVpqcllqVHljNlwvb0RDK1Z1b2FDZkc3YmJVUmJxRmZWZDJyV0ZkVmt3VkN2VVVtSTJkMmVOaUJtcURxWml0aWJTeHk2OWxIVkI4WDRYY1AyaHZpNmdxWDV5V0hyVUFqODcwTWhwVFE5TFhvZWorNzBHQllcL0pmeXJFTHNzeVorR1RiSGRVNlwvYlpicUV5UHJXYzVcL1NBYWsxZzk4bDREb2lIT2pqVVwvZ0VcL2JvaVBHbU9kTUJmMG5GbDdiN0RSVXoyTnVqVVhkbU44NG5mWkJraDY3RlhVMTErK3V6ZHNsZHU0TENoUEF0Uksrd0dza3NjTGFaQXZXcE9DWWhsRGRCeXRkRkU1SjRGQWxQZTZPMm5Ec25raFAzVEVjdE1uZXRvOEJ3c0g5alY1ZHJqNjNWazdNWmpCV2pqOVkrODBYTU5nS0ZPTWxueTJSSTFVT2lFTlhRc0VhdThCQTRGd2dmM1FCVUJpZEJYSUc2VDVYbCtkSFFMQ0ZNSHY4Mm8ySzBoWnBcL1A5ZDF0WTllT3JENnpHUkFmcEpVRjFkVDRsbExBUWw0QlZBMDFzaWlGWG1wMkZjSVc2VzBTMmQ5SU1nUnErMjJWVUp4aVpHbUpcL0J0NjNcL3Ria1FUT1dreVRiNGlyMm1uNkZ1OFZOMmIyZ3QwRmxXbzVycG4wMDVGazl3MUJMRlJZQzM2UDdhNGF3K3lLWU1lbGFGWk5oT0ZoXC94dGRGckhhZmRDVU9QYVJiM1lnbElsWUpQNVFwdVE3XC9nQUJFVDNlQlAyVjBVNWd0XC93NXZwWFRsNWlOOWtMRDUxTGNWd0RHTEtZeTZWZHJvcjBOOW5kcUEyS0RGcmlFR3NKV2N0NkZYeFBxTjRJSFwvNzZYZGVhckplWWpkM1dcLytad1YwNzRCbFpUQU1vWWFsSUR5a0k1SWVCRG1GVW84K1IrSytOemNFUnRpU2g1bFZ5WVp4OXhpeEd3MXVcL2tSc1ZLbVwveTBqWEVlUm5QUldwU1c4REN0eHdLWWZJSGVLWTdLdGlsVnBFaVhJNmQrZmlnNnY4Mk1VZytHT3BWUEJkWnJjSVY2T2xSM1FzTTQ4cXd2c3Urd1pHTTNWdzhVbFFwa1pRdlhDbmM4Z1prXC8yVjFZMGZYYTBGMEMwK1MxNnZxUnRRa2ZVUjJDWk9RVEtJV3NqZ3VEdTdYU0pIMkhZR0loK2l2aG1qT256MEVoXC84TVwveHo2amhMYmExSzhYc25ONFpCQm1BbGN3b2hKWmlaWUtYR3ZQQ3g4Znl6OFJYNHNQTzY1ZXlkZzlsOHNJRnZZMVllVmt4OWZlalloQ3MyRmVRblFUM01qU2g1SXFSbTRcL0dLZFljU09sOXMyWE11elpvOFdcL3lcL0RRbzA2MnlsSk11c3FlN3Nzd2NPSnFYUUZzOTZGXC83cGxyK056NWJxbWZ3eXBcL3ZFbUtHVWp6VkE4VVpicW5TclZEXC9CVHljcStOUDhUSXcyeHdVXC94VEhIcGowTlFUV3pWZmxwbFE9PSIsIm1hYyI6IjE0NTI1NGRjMjM5MzMzMmE0MDBmZTI2YjkyNmQ2YWNkM2EzNzVhMGQ4NGM5MWQyNzZiZmU5ZmMzN2Y5OTZkNTYifQ%3D%3D; expires=Wed, 26-May-2021 09:34:04 GMT; Max-Age=155520000; path=/; domain=fortel.fortifi.me; HttpOnly");
-header("Location: /locked?return=/customers/40673510/billing/invoices&qs=currency%3DUSD%26customerId%3D40673510");
-?> \ No newline at end of file
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi b/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi
deleted file mode 100755
index efe9b74c0..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/printenv.cgi
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-exec ${H2O_PERL:-perl} -x $0 "$@"
-#! perl
-
-print "content-type: text/plain; charset=utf-8\r\n\r\n";
-
-for my $k (sort keys %ENV) {
- print "$k:$ENV{$k}\n";
-}
diff --git a/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt b/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt
deleted file mode 100644
index 1fa86464d..000000000
--- a/web/server/h2o/libh2o/t/assets/doc_root/subdir/index.txt
+++ /dev/null
@@ -1 +0,0 @@
-subdir index
diff --git a/web/server/h2o/libh2o/t/assets/session_tickets.yaml b/web/server/h2o/libh2o/t/assets/session_tickets.yaml
deleted file mode 100644
index f97285299..000000000
--- a/web/server/h2o/libh2o/t/assets/session_tickets.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-- name: a397b6b7fab929366203f16fc81ffbed
- cipher: aes-128-cbc
- hash: sha1
- key: f1ed89cde68763630e80d2be827cfb98e3fe72644f64315a4a8ad63769a3577ccec4dd13b20eaf8c008886e5458db10e658cf2a83f04403ac4e98035d2422a75806730eb4f2fee12faff954895bc65d1
- not_before: 1437092430
- not_after: 1437096029
-- name: e7e3c6980b1832bd5d23917572e8448f
- cipher: aes-256-cbc
- hash: sha256
- key: f6e071d993b05f77ce51cb0fe2e0e18c7200c2a7873a66008c8e1d75ae7b8e2af4fcb86fdf03a7f335632e668a8fe956c5bfe77a41412d269979634768999add6a84cafea41b6b2c47aaf1a514ca9d2a84f48d1f5f7018ff1740cf9b944b8fcf
- not_before: 1437093330
- not_after: 1437096929
diff --git a/web/server/h2o/libh2o/t/assets/upstream.psgi b/web/server/h2o/libh2o/t/assets/upstream.psgi
deleted file mode 100644
index 95427428a..000000000
--- a/web/server/h2o/libh2o/t/assets/upstream.psgi
+++ /dev/null
@@ -1,225 +0,0 @@
-use strict;
-use warnings;
-use Digest::SHA qw(sha1_base64);
-use Plack::App::File;
-use Plack::Builder;
-use Plack::Request;
-use Plack::TempBuffer;
-use Time::HiRes qw(sleep);
-use t::Util;
-
-my $force_chunked = $ENV{FORCE_CHUNKED} || 0;
-
-builder {
- enable sub {
- my $app = shift;
- return sub {
- my $env = shift;
- my $query = Plack::Request->new($env)->query_parameters;
- my $res = $app->($env);
- Plack::Util::response_cb($res, sub {
- my $res = shift;
- if ($query->{"resp:status"}) {
- $res->[0] = $query->get("resp:status");
- $query->remove("resp:status");
- }
- push @{$res->[1]}, map {
- my $n = $_;
- +(substr($n, length "resp:") => $query->get($n))
- } grep {
- $_ =~ /^resp:/
- } $query->keys;
- $res;
- });
- };
- };
- if ($force_chunked) {
- enable sub {
- my $app = shift;
- return sub {
- my $env = shift;
- my $res = $app->($env);
- Plack::Util::response_cb($res, sub {
- my $res = shift;
- my @headers;
- for (my $i = 0; $i != @{$res->[1]}; $i += 2) {
- push @headers, $res->[1][$i], $res->[1][$i + 1]
- if lc $res->[1][$i] ne 'content-length';
- }
- $res->[1] = \@headers;
- return $res;
- });
- };
- };
- }
- mount "/" => Plack::App::File->new(root => DOC_ROOT)->to_app;
- mount "/echo-query" => sub {
- my $env = shift;
- return [
- 200,
- [
- 'content-type' => 'text/plain',
- ],
- [$env->{QUERY_STRING}],
- ];
- };
- mount "/echo" => sub {
- my $env = shift;
- my $content = Plack::TempBuffer->new;
- if ($env->{'psgi.input'}) {
- my $buf;
- while ($env->{'psgi.input'}->read($buf, 65536)) {
- $content->print($buf);
- }
- }
- return [
- 200,
- [
- 'content-type' => 'text/plain',
- 'content-length' => $content->size(),
- ],
- $content->rewind(),
- ];
- };
- mount "/echo-headers" => sub {
- my $env = shift;
- return [
- 200,
- [
- 'content-type' => 'text/plain',
- ],
- [
- join "\n", map { my $n = lc $_; $n=~ s/^http_//; $n =~ tr/_/-/; "$n: $env->{$_}" } sort grep { /^(HTTP_|HTTPS$)/ } keys %$env,
- ]
- ];
- };
- mount "/echo-server-header" => sub {
- my $env = shift;
- my @resph = [ 'content-type' => 'text/plain' ];
- if ($env->{HTTP_SERVER}) {
- @resph = [ 'content-type' => 'text/plain', 'server' => $env->{HTTP_SERVER} ];
- }
- return [
- 200, @resph, [ "Ok" ]
- ];
- };
- mount "/streaming-body" => sub {
- my $env = shift;
- return sub {
- my $responder = shift;
- my $writer = $responder->([ 200, [ 'content-type' => 'text/plain' ] ]);
- for my $i (1..30) {
- sleep 0.1;
- $writer->write($i);
- }
- $writer->close;
- };
- };
- mount "/sleep-and-respond" => sub {
- my $env = shift;
- my $query = Plack::Request->new($env)->parameters;
- sleep($query->{sleep} || 0);
- return [
- 200,
- [
- 'content-type' => 'text/plain; charset=utf-8',
- ],
- [
- 'hello world',
- ],
- ];
- };
- mount "/fixed-date-header" => sub {
- my $env = shift;
- return [
- 200,
- [
- 'content-type' => 'text/plain',
- 'date' => 'Thu, 01 Jan 1970 00:00:00 GMT',
- ],
- []
- ];
- };
- mount "/infinite-stream" => sub {
- my $env = shift;
- return sub {
- my $responder = shift;
- my $writer = $responder->([ 200, [ 'content-type' => 'text/plain' ] ]);
- while ($writer->write("lorem ipsum dolor sit amet")) {
- sleep 0.1;
- }
- $writer->close;
- };
- };
- mount "/infinite-redirect" => sub {
- my $env = shift;
- return [
- 302,
- [
- location => '/infinite-redirect',
- ],
- [],
- ];
- };
- mount "/websocket" => sub {
- my $env = shift;
- my $key = $env->{HTTP_SEC_WEBSOCKET_KEY}
- or return [400, [], ["no Sec-WebSocket-Key"]];
- $key .= "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
- my $accept_key = sha1_base64($key);
- my $fh = $env->{"psgix.io"};
- print $fh join(
- "\r\n",
- "HTTP/1.1 101 Switching Protocols",
- "Upgrade: websocket",
- "Sec-Websocket-Accept: $accept_key",
- "",
- "",
- );
- while (1) {
- my $rfds = '';
- vec($rfds, fileno($fh), 1) = 1;
- next if select($rfds, undef, undef, undef) <= 0;
- $fh->sysread(my $data, 65536) <= 0
- and last;
- while (length($data) != 0) {
- my $wfds = '';
- vec($wfds, fileno($fh), 1) = 1;
- next if select(undef, $wfds, undef, undef) <= 0;
- my $wlen = $fh->syswrite($data);
- last if $wlen <= 0;
- $data = substr $data, $wlen;
- }
- }
- close $fh;
- exit 0;
- };
- mount "/1xx-push" => sub {
- my $env = shift;
- my $fh = $env->{"psgix.io"};
- print $fh join(
- "\r\n",
- "HTTP/1.1 100 Continue",
- "link: </index.js>; rel=preload",
- "",
- "",
- );
- sleep 1.1;
- [200, ["content-type" => "text/plain; charset=utf-8", "content-length" => 11], ["hello world"]];
- };
- mount "/push-attr" => sub {
- my $env = shift;
- my $query = Plack::Request->new($env)->query_parameters;
- [200, ["content-type" => "text/plain; charset=utf-8", "content-length" => 11, "link" => "$query->{'pushes'}"], ["hello world"]];
- };
- mount "/no-content" => sub {
- my $env = shift;
- return [
- 204,
- [
- 'content-type' => 'text/plain',
- ],
- [],
- ];
- };
-};