Repository: pingcap/dumpling
Pull request #307 (2021-07-13 07:04:46)

dump: always split TiDB v3.* tables through tidb rowid to save TiDB's memory (#301)
This is an automated cherry-pick of #301

<!--
Thank you for contributing to Dumpling! Please read the [CONTRIBUTING](https://github.com/pingcap/dumpling/blob/master/CONTRIBUTING.md) document **BEFORE** filing this PR.

If you want to open the **Challenge Program** pull request, please use the following template:
https://raw.githubusercontent.com/pingcap/.github/master/.github/PULL_REQUEST_TEMPLATE/challenge-program.md

You can use it with query parameters: https://github.com/pingcap/dumpling/compare/master...${you branch}?template=challenge-program.md
-->

### What problem does this PR solve? <!--add issue link with summary if exists-->
fix https://github.com/pingcap/dumpling/issues/295, an extension of https://github.com/pingcap/dumpling/pull/273
In TiDB v3.x:
1. table INFORMATION_SCHEMA.TIKV_REGION_STATUS doesn't have table_name/table_schema. 
2. doesn't have `SHOW TABLE REGIONS` statement.
3. table INFORMATION_SCHEMA.PARTITIONS doesn't actually have data.
4. doesn't have `tidb_decode_key` function.
```sql
mysql> show create table information_schema.TIKV_REGION_STATUS;
+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table              | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| TIKV_REGION_STATUS | CREATE TABLE `TIKV_REGION_STATUS` (
  `REGION_ID` bigint(21) unsigned DEFAULT NULL,
  `START_KEY` text DEFAULT NULL,
  `END_KEY` text DEFAULT NULL,
  `EPOCH_CONF_VER` bigint(21) unsigned DEFAULT NULL,
  `EPOCH_VERSION` bigint(21) unsigned DEFAULT NULL,
  `WRITTEN_BYTES` bigint(21) unsigned DEFAULT NULL,
  `READ_BYTES` bigint(21) unsigned DEFAULT NULL,
  `APPROXIMATE_SIZE` bigint(21) unsigned DEFAULT NULL,
  `APPROXIMATE_KEYS` bigint(21) unsigned DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin |
+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
```

### What is changed and how it works?
Split chunks by `PKIsHandle` for TiDB v3.*. Make sure TiDB won't OOM through splitting tables by rowids.
We do some staff by our own to solve the problem that tidb lacks some info.

### Check List <!--REMOVE the items that are not applicable-->

Tests <!-- At least one of them must be included. -->

 - Unit test
 - Integration test
 - Manual test (add detailed scripts or steps below)
Test dump with v3.0.0. The result is looks expected.

Related changes

 - Need to cherry-pick to the release branch
 
### Release note

<!-- bugfixes or new feature need a release note, must in the form of a list, such as

- support -T/--tables-list argument

or if no need to be included in the release note, just add the following line

- No release note
-->
- Always split TiDB v3.* tables through tidb rowid to save TiDB's memory.

ti-chi-bot: [REVIEW NOTIFICATION]

This pull request has not been approved.


To complete the [pull request process](https://book.prow.tidb.io/#/en/workflows/pr), please ask the reviewers in the [list](https://prow.tidb.io/tichi/repos/pingcap/dumpling/pulls/307/owners) to review by filling `/cc @reviewer` in the comment.
After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the [list](https://prow.tidb.io/tichi/repos/pingcap/dumpling/pulls/307/owners) by filling  `/assign @committer` in the comment to help you merge this pull request.

The full list of commands accepted by this bot can be found [here](https://prow.tidb.io/command-help?repo=pingcap%2Fdumpling).

<details>

Reviewer can indicate their review by submitting an approval review.
Reviewer can cancel approval by submitting a request changes review.
</details>

<!--Review Notification Identifier-->
ti-chi-bot: @ti-chi-bot: This cherry pick PR is for a release branch and has not yet been approved by release team.
Adding the `do-not-merge/cherry-pick-not-approved` label.

To merge this cherry pick, it must first be approved by the collaborators.

**AFTER** it has been approved by collaborators, please ping the release team in a comment to request a cherry pick review.


<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
</details>
ti-chi-bot: @ti-chi-bot: PR needs rebase.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
</details>
lichunzhu: /merge
ti-chi-bot: This pull request has been accepted and is ready to merge. <details>Commit hash: 3712e6f3c8fe1a7ec75261b98c0bfcfdc5fe18b6</details>

Patch:
diff --git a/go.mod b/go.mod
index f91b95b..bbabfdc 100644
--- a/go.mod
+++ b/go.mod
@@ -12,13 +12,14 @@ require (
 	github.com/golang/mock v1.4.4 // indirect
 	github.com/gorilla/websocket v1.4.1 // indirect
 	github.com/grpc-ecosystem/grpc-gateway v1.14.3 // indirect
-	github.com/joho/sqltocsv v0.0.0-20210428211105-a6d6801d59df // indirect
-	github.com/pingcap/br v5.1.0-alpha.0.20210601094737-6cb0c4abc210+incompatible
+	github.com/pingcap/br v5.0.4-0.20210723091214-cd2f2da8fa9b+incompatible
 	github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712
 	github.com/pingcap/errors v0.11.5-0.20201126102027-b0a155152ca3
 	github.com/pingcap/failpoint v0.0.0-20210316064728-7acb0f0a3dfd
 	github.com/pingcap/log v0.0.0-20210317133921-96f4fcab92a4
-	github.com/pingcap/tidb v1.1.0-beta.0.20210517044538-8ad868f801fc // indirect
+	github.com/pingcap/parser v0.0.0-20210623034316-5ee95ed0081f
+	github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3 // indirect
+	github.com/pingcap/tidb v1.1.0-beta.0.20210817073159-2fbd25d032df
 	github.com/pingcap/tidb-tools v4.0.9-0.20201127090955-2707c97b3853+incompatible
 	github.com/prometheus/client_golang v1.5.1
 	github.com/prometheus/client_model v0.2.0
@@ -29,12 +30,14 @@ require (
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
 	github.com/spf13/pflag v1.0.5
 	github.com/syndtr/goleveldb v1.0.1-0.20190625010220-02440ea7a285 // indirect
-	github.com/tikv/pd v1.1.0-beta.0.20210323121136-78679e5e209d
+	github.com/tikv/pd v1.1.0-beta.0.20210323123936-c8fa72502f16
 	github.com/xitongsys/parquet-go v1.6.0 // indirect
 	go.etcd.io/bbolt v1.3.5 // indirect
 	go.etcd.io/etcd v0.5.0-alpha.5.0.20200824191128-ae9734ed278b
-	go.uber.org/zap v1.16.0
+	go.uber.org/zap v1.17.0
 	golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
 	golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
+	gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
+	honnef.co/go/tools v0.1.4 // indirect
 	sigs.k8s.io/yaml v1.2.0 // indirect
 )
diff --git a/go.sum b/go.sum
index 61581c3..0da6417 100644
--- a/go.sum
+++ b/go.sum
@@ -25,6 +25,19 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
 cloud.google.com/go/storage v1.6.0 h1:UDpwYIwla4jHGzZJaEJYx1tOejbgSoNqsAfHAUYe2r8=
 cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc=
+github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k=
+github.com/Azure/azure-storage-blob-go v0.10.0/go.mod h1:ep1edmW+kNQx4UfWM9heESNmQdijykocJ0YOxmMX8SE=
+github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
+github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
+github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
+github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
+github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
+github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
+github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
+github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
+github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
+github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
@@ -151,6 +164,7 @@ github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg=
 github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
 github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
+github.com/frankban/quicktest v1.11.1/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsouza/fake-gcs-server v1.17.0/go.mod h1:D1rTE4YCyHFNa99oyJJ5HyclvN/0uQR+pM/VdlL83bw=
 github.com/fsouza/fake-gcs-server v1.19.0 h1:XyaGOlqo+R5sjT03x2ymk0xepaQlgwhRLTT2IopW0zA=
@@ -190,7 +204,6 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh
 github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
 github.com/go-playground/overalls v0.0.0-20180201144345-22ec1a223b7c/go.mod h1:UqxAgEOt89sCiXlrc/ycnx00LVvUO/eS8tMUkWX4R7w=
 github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
-github.com/go-sql-driver/mysql v1.3.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
@@ -303,9 +316,8 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW
 github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
 github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
+github.com/joho/sqltocsv v0.0.0-20210208114054-cb2c3a95fb99 h1:yYV8KMzsc4ius4P8A9BK13cY6nFDL3jlVX25HvEXOkw=
 github.com/joho/sqltocsv v0.0.0-20210208114054-cb2c3a95fb99/go.mod h1:mAVCUAYtW9NG31eB30umMSLKcDt6mCUWSjoSn5qBh0k=
-github.com/joho/sqltocsv v0.0.0-20210428211105-a6d6801d59df h1:Zrb0IbuLOGHL7nrO2WrcuNWgDTlzFv3zY69QMx4ggQE=
-github.com/joho/sqltocsv v0.0.0-20210428211105-a6d6801d59df/go.mod h1:mAVCUAYtW9NG31eB30umMSLKcDt6mCUWSjoSn5qBh0k=
 github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/joomcode/errorx v1.0.1/go.mod h1:kgco15ekB6cs+4Xjzo7SPeXzx38PbJzBwbnu9qfVNHQ=
@@ -353,6 +365,8 @@ github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc
 github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
 github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
+github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
 github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
 github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
@@ -384,12 +398,16 @@ github.com/montanaflynn/stats v0.5.0/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFW
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/ncw/directio v1.0.4 h1:CojwI07mCEmRkajgx42Pf8jyCwTs1ji9/Ij9/PJG12k=
 github.com/ncw/directio v1.0.4/go.mod h1:CKGdcN7StAaqjT7Qack3lAXeX4pjnyc46YeqZH1yWVY=
+github.com/ncw/swift v1.0.52/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
 github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
 github.com/ngaut/pools v0.0.0-20180318154953-b7bc8c42aac7 h1:7KAv7KMGTTqSmYZtNdcNTgsos+vFzULLwyElndwn+5c=
 github.com/ngaut/pools v0.0.0-20180318154953-b7bc8c42aac7/go.mod h1:iWMfgwqYW+e8n5lC/jjNEhwcjbRDpl5NT7n2h+4UNcI=
 github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef h1:K0Fn+DoFqNqktdZtdV3bPQ/0cuYh2H4rkg0tytX/07k=
 github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef/go.mod h1:7WjlapSfwQyo6LNmIvEWzsW1hbBQfpUO4JWnuQRmva8=
+github.com/ngaut/unistore v0.0.0-20210719114803-9cf36a97f8a1 h1:hRbBhUgFoiEyNwdsd5NJbOB6SK78FuJyiGeGUda3Eug=
+github.com/ngaut/unistore v0.0.0-20210719114803-9cf36a97f8a1/go.mod h1:ZR3NH+HzqfiYetwdoAivApnIy8iefPZHTMLfrFNm8g4=
 github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60=
 github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
@@ -408,11 +426,12 @@ github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCr
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
 github.com/phf/go-queue v0.0.0-20170504031614-9abe38d0371d h1:U+PMnTlV2tu7RuMK5etusZG3Cf+rpow5hqQByeCzJ2g=
 github.com/phf/go-queue v0.0.0-20170504031614-9abe38d0371d/go.mod h1:lXfE4PvvTW5xOjO6Mba8zDPyw8M93B6AQ7frTGnMlA8=
+github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI=
+github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/pingcap/badger v1.5.1-0.20200908111422-2e78ee155d19 h1:IXpGy7y9HyoShAFmzW2OPF0xCA5EOoSTyZHwsgYk9Ro=
 github.com/pingcap/badger v1.5.1-0.20200908111422-2e78ee155d19/go.mod h1:LyrqUOHZrUDf9oGi1yoz1+qw9ckSIhQb5eMa1acOLNQ=
-github.com/pingcap/br v5.0.0-nightly.0.20210419090151-03762465b589+incompatible/go.mod h1:ymVmo50lQydxib0tmK5hHk4oteB7hZ0IMCArunwy3UQ=
-github.com/pingcap/br v5.1.0-alpha.0.20210601094737-6cb0c4abc210+incompatible h1:q7wg9ESQFg2wXo8IFIgArkSl9yWPhSR6s+UYj2LHzWs=
-github.com/pingcap/br v5.1.0-alpha.0.20210601094737-6cb0c4abc210+incompatible/go.mod h1:ymVmo50lQydxib0tmK5hHk4oteB7hZ0IMCArunwy3UQ=
+github.com/pingcap/br v5.0.4-0.20210723091214-cd2f2da8fa9b+incompatible h1:/Yk76XdRpM6XZShir/mAuJBXfDcqzanAEpObg7sKQHg=
+github.com/pingcap/br v5.0.4-0.20210723091214-cd2f2da8fa9b+incompatible/go.mod h1:ymVmo50lQydxib0tmK5hHk4oteB7hZ0IMCArunwy3UQ=
 github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8/go.mod h1:B1+S9LNcuMyLH/4HMTViQOJevkGiik3wW2AN9zb2fNQ=
 github.com/pingcap/check v0.0.0-20191107115940-caf2b9e6ccf4/go.mod h1:PYMCGwN0JHjoqGr3HrZoD+b8Tgx8bKnArhSq8YVzUMc=
 github.com/pingcap/check v0.0.0-20191216031241-8a5a85928f12/go.mod h1:PYMCGwN0JHjoqGr3HrZoD+b8Tgx8bKnArhSq8YVzUMc=
@@ -436,28 +455,30 @@ github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989 h1:surzm05a8C9dN
 github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989/go.mod h1:O17XtbryoCJhkKGbT62+L2OlrniwqiGLSqrmdHCMzZw=
 github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w=
 github.com/pingcap/kvproto v0.0.0-20200411081810-b85805c9476c/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI=
+github.com/pingcap/kvproto v0.0.0-20200810113304-6157337686b1/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI=
 github.com/pingcap/kvproto v0.0.0-20210219064844-c1844a4775d6/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI=
-github.com/pingcap/kvproto v0.0.0-20210507054410-a8152f8a876c h1:cy87vgUJT0U4JuxC7R14PuwBrabI9fDawYhyKTbjOBQ=
-github.com/pingcap/kvproto v0.0.0-20210507054410-a8152f8a876c/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI=
+github.com/pingcap/kvproto v0.0.0-20210722112940-1a69d0b093f1 h1:ZYsk3z+fMsnuDfGdPGI2Pq3bOphBMfLTcfTOziBPf28=
+github.com/pingcap/kvproto v0.0.0-20210722112940-1a69d0b093f1/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI=
 github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8=
 github.com/pingcap/log v0.0.0-20200511115504-543df19646ad/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8=
 github.com/pingcap/log v0.0.0-20201112100606-8f1e84a3abc8/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8=
 github.com/pingcap/log v0.0.0-20210317133921-96f4fcab92a4 h1:ERrF0fTuIOnwfGbt71Ji3DKbOEaP189tjym50u8gpC8=
 github.com/pingcap/log v0.0.0-20210317133921-96f4fcab92a4/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8=
 github.com/pingcap/parser v0.0.0-20190506092653-e336082eb825/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA=
-github.com/pingcap/parser v0.0.0-20210513020953-ae2c4497c07b h1:eLuDQ6eJCEKCbGwhGrkjzagwev1GJGU2Y2kFkAsBzV0=
-github.com/pingcap/parser v0.0.0-20210513020953-ae2c4497c07b/go.mod h1:xZC8I7bug4GJ5KtHhgAikjTfU4kBv1Sbo3Pf1MZ6lVw=
+github.com/pingcap/parser v0.0.0-20210623034316-5ee95ed0081f h1:YaLHP/U93ZPMIPDH5vpX3oZDZM3oOw/QvZESl4bBcYM=
+github.com/pingcap/parser v0.0.0-20210623034316-5ee95ed0081f/go.mod h1:GbEr2PgY72/4XqPZzmzstlOU/+il/wrjeTNFs6ihsSE=
 github.com/pingcap/sysutil v0.0.0-20200206130906-2bfa6dc40bcd/go.mod h1:EB/852NMQ+aRKioCpToQ94Wl7fktV+FNnxf3CX/TTXI=
+github.com/pingcap/sysutil v0.0.0-20210221112134-a07bda3bde99/go.mod h1:EB/852NMQ+aRKioCpToQ94Wl7fktV+FNnxf3CX/TTXI=
 github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3 h1:A9KL9R+lWSVPH8IqUuH1QSTRJ5FGoY1bT2IcfPKsWD8=
 github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3/go.mod h1:tckvA041UWP+NqYzrJ3fMgC/Hw9wnmQ/tUkp/JaHly8=
-github.com/pingcap/tidb v1.1.0-beta.0.20210517044538-8ad868f801fc h1:b7FW7xj/pjDefpRqcYOoLX+anUBlPJUa0bZWXFHEEaY=
-github.com/pingcap/tidb v1.1.0-beta.0.20210517044538-8ad868f801fc/go.mod h1:MTGiqcSY5WEi5LzxVW1dZ2BiMiALuVvHQ6zuDHQyL70=
+github.com/pingcap/tidb v1.1.0-beta.0.20210817073159-2fbd25d032df h1:EeAkD5wOBrELsQ0bfPjSw69LWcbLOpixkD5QJHreetE=
+github.com/pingcap/tidb v1.1.0-beta.0.20210817073159-2fbd25d032df/go.mod h1:hWsOag/wWiydHc5NTxV7O/iQQZUhTLWe6iN5fYN1L24=
 github.com/pingcap/tidb-dashboard v0.0.0-20210312062513-eef5d6404638/go.mod h1:OzFN8H0EDMMqeulPhPMw2i2JaiZWOKFQ7zdRPhENNgo=
 github.com/pingcap/tidb-tools v4.0.9-0.20201127090955-2707c97b3853+incompatible h1:ceznmu/lLseGHP/jKyOa/3u/5H3wtLLLqkH2V3ssSjg=
 github.com/pingcap/tidb-tools v4.0.9-0.20201127090955-2707c97b3853+incompatible/go.mod h1:XGdcy9+yqlDSEMTpOXnwf3hiTeqrV6MN/u1se9N8yIM=
 github.com/pingcap/tipb v0.0.0-20190428032612-535e1abaa330/go.mod h1:RtkHW8WbcNxj8lsbzjaILci01CtYnYbIkQhjyZWrWVI=
-github.com/pingcap/tipb v0.0.0-20210422074242-57dd881b81b1 h1:Kcp3jIcQrqG+pT1JQ0oWyRncVKQtDgnMFzRt3zJBaBo=
-github.com/pingcap/tipb v0.0.0-20210422074242-57dd881b81b1/go.mod h1:nsEhnMokcn7MRqd2J60yxpn/ac3ZH8A6GOJ9NslabUo=
+github.com/pingcap/tipb v0.0.0-20210601083426-79a378b6d1c4 h1:n47+OwdI/uxKenfBT8Y2/be11MwbeLKNLdzOWnxNQKg=
+github.com/pingcap/tipb v0.0.0-20210601083426-79a378b6d1c4/go.mod h1:nsEhnMokcn7MRqd2J60yxpn/ac3ZH8A6GOJ9NslabUo=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -509,6 +530,7 @@ github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b/go.mod h1:dA0hQrY
 github.com/sergi/go-diff v1.0.1-0.20180205163309-da645544ed44/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
 github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
 github.com/shirou/gopsutil v2.19.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
+github.com/shirou/gopsutil v3.20.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/gopsutil v3.21.2+incompatible h1:U+YvJfjCh6MslYlIAXvPtzhW3YZEtc9uncueUNpD/0A=
 github.com/shirou/gopsutil v3.21.2+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
@@ -558,8 +580,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 github.com/stretchr/testify v1.6.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:gxQT6pBGRuIGunNf/+tSOB5OHvguWi8Tbt82WOkf35E=
 github.com/swaggo/gin-swagger v1.2.0/go.mod h1:qlH2+W7zXGZkczuL+r2nEBR2JTT+/lX05Nn6vPhc7OI=
 github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba/go.mod h1:O1lAbCgAAX/KZ80LM/OXwtWFI/5TvZlwxSg8Cq08PV0=
@@ -575,8 +598,8 @@ github.com/tiancaiamao/appdash v0.0.0-20181126055449-889f96f722a2/go.mod h1:2PfK
 github.com/tidwall/gjson v1.3.5/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls=
 github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tikv/pd v1.1.0-beta.0.20210323121136-78679e5e209d h1:K0XnvsnT6ofLDuM8Rt3PuFQO4p8bNraeHYstspD316g=
-github.com/tikv/pd v1.1.0-beta.0.20210323121136-78679e5e209d/go.mod h1:Jw9KG11C/23Rr7DW4XWQ7H5xOgGZo6DFL1OKAF4+Igw=
+github.com/tikv/pd v1.1.0-beta.0.20210323123936-c8fa72502f16 h1:6H33vwE7gZAt3kO5UpeBhnSfqNCx3p/cyogI0t4Wsmo=
+github.com/tikv/pd v1.1.0-beta.0.20210323123936-c8fa72502f16/go.mod h1:D9Oe7yFmVFbeDyJPwx/QZEwoihThX5xkAUm6gvCFzbE=
 github.com/tklauser/go-sysconf v0.3.4 h1:HT8SVixZd3IzLdfs/xlpq0jeSfTX57g1v6wB1EuzV7M=
 github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
 github.com/tklauser/numcpus v0.2.1 h1:ct88eFm+Q7m2ZfXJdan1xYoXKlmwsfP+k88q05KvlZc=
@@ -614,10 +637,13 @@ github.com/xitongsys/parquet-go v1.6.0 h1:j6YrTVZdQx5yywJLIOklZcKVsCoSD1tqOVRXyT
 github.com/xitongsys/parquet-go v1.6.0/go.mod h1:pheqtXeHQFzxJk45lRQ0UIGIivKnLXvialZSFWs81A8=
 github.com/xitongsys/parquet-go-source v0.0.0-20190524061010-2b72cbee77d5/go.mod h1:xxCx7Wpym/3QCo6JhujJX51dzSXrwmb0oH6FQb39SEA=
 github.com/xitongsys/parquet-go-source v0.0.0-20200817004010-026bad9b25d0/go.mod h1:HYhIKsdns7xz80OgkbgJYrtQY7FjHWHKH6cvN7+czGE=
+github.com/xitongsys/parquet-go-source v0.0.0-20201108113611-f372b7d813be/go.mod h1:SQSSW1CBj/egoUhnaTXihUlDayvpp01Fn8qwuEpK5bY=
 github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
 github.com/yookoala/realpath v1.0.0/go.mod h1:gJJMA9wuX7AcqLy1+ffPatSCySA1FQ2S8Ya9AIoYBpE=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/zhangjinpeng1987/raft v0.0.0-20200819064223-df31bb68a018 h1:T3OrqVdcH6z6SakR7WkECvGpdkfB0MAur/6zf66GPxQ=
+github.com/zhangjinpeng1987/raft v0.0.0-20200819064223-df31bb68a018/go.mod h1:rTSjwgeYU2on64W50csWDlhyy0x9UYVYJUovHlYdt5s=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
@@ -635,8 +661,9 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
 go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/atomic v1.8.0 h1:CUhrE4N1rqSE6FM9ecihEjRkLQu8cDfgDyoOs83mEY4=
+go.uber.org/atomic v1.8.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 go.uber.org/automaxprocs v1.2.0/go.mod h1:YfO3fm683kQpzETxlTGZhGIVmXAhaw3gxeBADbpZtnU=
 go.uber.org/dig v1.8.0/go.mod h1:X34SnWGr8Fyla9zQNO2GSO2D+TIuqB14OS8JhYocIyw=
 go.uber.org/fx v1.10.0/go.mod h1:vLRicqpG/qQEzno4SYU86iCwfT95EZza+Eba0ItuxqY=
@@ -646,16 +673,17 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/
 go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
 go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
 go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec=
+go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
 go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
 go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM=
-go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
+go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U=
+go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
 golang.org/x/crypto v0.0.0-20180723164146-c126467f60eb/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -666,6 +694,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
 golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
@@ -726,6 +755,7 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -735,8 +765,8 @@ golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 h1:b0LrWgu8+q7z4J+0Y3Umo5q1dL7NXBkKBWkaVkAq17E=
-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
+golang.org/x/net v0.0.0-20210323141857-08027d57d8cf h1:sewfyKLWuY3ko6EI4hbFziQ8bHkfammpzCDfLT92I1c=
+golang.org/x/net v0.0.0-20210323141857-08027d57d8cf/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -777,6 +807,7 @@ golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -914,6 +945,7 @@ gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20180810215634-df19058c872c/go.mo
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
 gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
@@ -942,14 +974,15 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
 honnef.co/go/tools v0.1.4 h1:SadWOkti5uVN1FAMgxn165+Mw00fuQKyk4Gyn/inxNQ=
 honnef.co/go/tools v0.1.4/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
 k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
diff --git a/v4/export/config.go b/v4/export/config.go
index 7290425..8e2ee84 100644
--- a/v4/export/config.go
+++ b/v4/export/config.go
@@ -561,8 +561,9 @@ const (
 )
 
 var (
-	gcSafePointVersion = semver.New("4.0.0")
-	tableSampleVersion = semver.New("5.0.0-nightly")
+	decodeRegionVersion = semver.New("3.0.0")
+	gcSafePointVersion  = semver.New("4.0.0")
+	tableSampleVersion  = semver.New("5.0.0-nightly")
 )
 
 // ServerInfo is the combination of ServerType and ServerInfo
diff --git a/v4/export/dump.go b/v4/export/dump.go
index 947f187..5f0d658 100755
--- a/v4/export/dump.go
+++ b/v4/export/dump.go
@@ -6,8 +6,11 @@ import (
 	"bytes"
 	"context"
 	"database/sql"
+	"encoding/hex"
 	"fmt"
 	"math/big"
+	"sort"
+	"strconv"
 	"strings"
 	"time"
 
@@ -22,11 +25,16 @@ import (
 	"github.com/pingcap/errors"
 	"github.com/pingcap/failpoint"
 	pclog "github.com/pingcap/log"
+	"github.com/pingcap/tidb/store/helper"
+	"github.com/pingcap/tidb/tablecodec"
+	"github.com/pingcap/tidb/util/codec"
 	pd "github.com/tikv/pd/client"
 	"go.uber.org/zap"
 	"golang.org/x/sync/errgroup"
 )
 
+var openDBFunc = sql.Open
+
 // Dumper is the dump progress structure
 type Dumper struct {
 	tctx      *tcontext.Context
@@ -36,16 +44,18 @@ type Dumper struct {
 	extStore storage.ExternalStorage
 	dbHandle *sql.DB
 
-	tidbPDClientForGC pd.Client
+	tidbPDClientForGC         pd.Client
+	selectTiDBTableRegionFunc func(tctx *tcontext.Context, conn *sql.Conn, dbName, tableName string) (pkFields []string, pkVals [][]string, err error)
 }
 
 // NewDumper returns a new Dumper
 func NewDumper(ctx context.Context, conf *Config) (*Dumper, error) {
 	tctx, cancelFn := tcontext.Background().WithContext(ctx).WithCancel()
 	d := &Dumper{
-		tctx:      tctx,
-		conf:      conf,
-		cancelCtx: cancelFn,
+		tctx:                      tctx,
+		conf:                      conf,
+		cancelCtx:                 cancelFn,
+		selectTiDBTableRegionFunc: selectTiDBTableRegion,
 	}
 	err := adjustConfig(conf,
 		registerTLSConfig,
@@ -139,6 +149,9 @@ func (d *Dumper) Dump() (dumpErr error) {
 			return err
 		}
 	}
+	if err = d.renewSelectTableRegionFuncForLowerTiDB(tctx); err != nil {
+		tctx.L().Error("fail to update select table region info for TiDB", zap.Error(err))
+	}
 
 	rebuildConn := func(conn *sql.Conn) (*sql.Conn, error) {
 		// make sure that the lock connection is still alive
@@ -214,8 +227,7 @@ func (d *Dumper) Dump() (dumpErr error) {
 	})
 
 	// get estimate total count
-	err = d.getEstimateTotalRowsCount(tctx, metaConn)
-	if err != nil {
+	if err = d.getEstimateTotalRowsCount(tctx, metaConn); err != nil {
 		tctx.L().Error("fail to get estimate total count", zap.Error(err))
 	}
 
@@ -442,7 +454,7 @@ func (d *Dumper) concurrentDumpTable(tctx *tcontext.Context, conn *sql.Conn, met
 	if conf.ServerInfo.ServerType == ServerTypeTiDB &&
 		conf.ServerInfo.ServerVersion != nil &&
 		(conf.ServerInfo.ServerVersion.Compare(*tableSampleVersion) >= 0 ||
-			(conf.ServerInfo.HasTiKV && conf.ServerInfo.ServerVersion.Compare(*gcSafePointVersion) >= 0)) {
+			(conf.ServerInfo.HasTiKV && conf.ServerInfo.ServerVersion.Compare(*decodeRegionVersion) >= 0)) {
 		return d.concurrentDumpTiDBTables(tctx, conn, meta, taskChan)
 	}
 	field, err := pickupPossibleField(db, tbl, conn, conf)
@@ -578,18 +590,22 @@ func (d *Dumper) concurrentDumpTiDBTables(tctx *tcontext.Context, conn *sql.Conn
 		handleVals     [][]string
 		err            error
 	)
+	// for TiDB v5.0+, we can use table sample directly
 	if d.conf.ServerInfo.ServerVersion.Compare(*tableSampleVersion) >= 0 {
 		tctx.L().Debug("dumping TiDB tables with TABLESAMPLE",
 			zap.String("database", db), zap.String("table", tbl))
 		handleColNames, handleVals, err = selectTiDBTableSample(tctx, conn, db, tbl)
 	} else {
+		// for TiDB v3.0+, we can use table region decode in TiDB directly
 		tctx.L().Debug("dumping TiDB tables with TABLE REGIONS",
 			zap.String("database", db), zap.String("table", tbl))
 		var partitions []string
-		partitions, err = GetPartitionNames(conn, db, tbl)
+		if d.conf.ServerInfo.ServerVersion.Compare(*gcSafePointVersion) >= 0 {
+			partitions, err = GetPartitionNames(conn, db, tbl)
+		}
 		if err == nil {
 			if len(partitions) == 0 {
-				handleColNames, handleVals, err = selectTiDBTableRegion(tctx, conn, db, tbl)
+				handleColNames, handleVals, err = d.selectTiDBTableRegionFunc(tctx, conn, db, tbl)
 			} else {
 				return d.concurrentDumpTiDBPartitionTables(tctx, conn, meta, taskChan, partitions)
 			}
@@ -1153,3 +1169,93 @@ func setSessionParam(d *Dumper) error {
 	}
 	return nil
 }
+
+func (d *Dumper) renewSelectTableRegionFuncForLowerTiDB(tctx *tcontext.Context) error {
+	conf := d.conf
+	if !(conf.ServerInfo.ServerType == ServerTypeTiDB && conf.ServerInfo.ServerVersion != nil && conf.ServerInfo.HasTiKV &&
+		conf.ServerInfo.ServerVersion.Compare(*decodeRegionVersion) >= 0 &&
+		conf.ServerInfo.ServerVersion.Compare(*gcSafePointVersion) < 0) {
+		tctx.L().Debug("no need to build region info because database is not TiDB 3.x")
+		return nil
+	}
+	dbHandle, err := openDBFunc("mysql", conf.GetDSN(""))
+	if err != nil {
+		return errors.Trace(err)
+	}
+	defer dbHandle.Close()
+	conn, err := dbHandle.Conn(tctx)
+	if err != nil {
+		return errors.Trace(err)
+	}
+	defer conn.Close()
+	dbInfos, err := GetDBInfo(conn, DatabaseTablesToMap(conf.Tables))
+	if err != nil {
+		return errors.Trace(err)
+	}
+	regionsInfo, err := GetRegionInfos(conn)
+	if err != nil {
+		return errors.Trace(err)
+	}
+	tikvHelper := &helper.Helper{}
+	tableInfos := tikvHelper.GetRegionsTableInfo(regionsInfo, dbInfos)
+
+	tableInfoMap := make(map[string]map[string][]int64, len(conf.Tables))
+	for _, region := range regionsInfo.Regions {
+		tableList := tableInfos[region.ID]
+		for _, table := range tableList {
+			db, tbl := table.DB.Name.O, table.Table.Name.O
+			if _, ok := tableInfoMap[db]; !ok {
+				tableInfoMap[db] = make(map[string][]int64, len(conf.Tables[db]))
+			}
+
+			key, err := hex.DecodeString(region.StartKey)
+			if err != nil {
+				d.L().Debug("invalid region start key", zap.Error(err), zap.String("key", region.StartKey))
+				continue
+			}
+			// Auto decode byte if needed.
+			_, bs, err := codec.DecodeBytes(key, nil)
+			if err == nil {
+				key = bs
+			}
+			// Try to decode it as a record key.
+			tableID, handle, err := tablecodec.DecodeRecordKey(key)
+			if err != nil {
+				d.L().Debug("fail to decode region start key", zap.Error(err), zap.String("key", region.StartKey), zap.Int64("tableID", tableID))
+				continue
+			}
+			if handle.IsInt() {
+				tableInfoMap[db][tbl] = append(tableInfoMap[db][tbl], handle.IntValue())
+			} else {
+				d.L().Debug("not an int handle", zap.Error(err), zap.Stringer("handle", handle))
+			}
+		}
+	}
+	for _, tbInfos := range tableInfoMap {
+		for _, tbInfoLoop := range tbInfos {
+			// make sure tbInfo is only used in this loop
+			tbInfo := tbInfoLoop
+			sort.Slice(tbInfo, func(i, j int) bool {
+				return tbInfo[i] < tbInfo[j]
+			})
+		}
+	}
+
+	d.selectTiDBTableRegionFunc = func(tctx *tcontext.Context, conn *sql.Conn, dbName, tableName string) (pkFields []string, pkVals [][]string, err error) {
+		pkFields, _, err = selectTiDBRowKeyFields(conn, dbName, tableName, checkTiDBTableRegionPkFields)
+		if err != nil {
+			return
+		}
+		if tbInfos, ok := tableInfoMap[dbName]; ok {
+			if tbInfo, ok := tbInfos[tableName]; ok {
+				pkVals = make([][]string, len(tbInfo))
+				for i, val := range tbInfo {
+					pkVals[i] = []string{strconv.FormatInt(val, 10)}
+				}
+			}
+		}
+		return
+	}
+
+	return nil
+}
diff --git a/v4/export/prepare.go b/v4/export/prepare.go
index 362ff7c..000e1cf 100644
--- a/v4/export/prepare.go
+++ b/v4/export/prepare.go
@@ -183,3 +183,17 @@ func (d DatabaseTables) Literal() string {
 
 	return b.String()
 }
+
+// DatabaseTablesToMap transfers DatabaseTables to Map
+func DatabaseTablesToMap(d DatabaseTables) map[string]map[string]struct{} {
+	mp := make(map[string]map[string]struct{}, len(d))
+	for name, infos := range d {
+		mp[name] = make(map[string]struct{}, len(infos))
+		for _, info := range infos {
+			if info.Type == TableTypeBase {
+				mp[name][info.Name] = struct{}{}
+			}
+		}
+	}
+	return mp
+}
diff --git a/v4/export/region_results.csv b/v4/export/region_results.csv
new file mode 100644
index 0000000..07c0355
--- /dev/null
+++ b/v4/export/region_results.csv
@@ -0,0 +1,990 @@
+4,"","7480000000000000FF0500000000000000F8"
+6,"7480000000000000FF0500000000000000F8","7480000000000000FF0700000000000000F8"
+8,"7480000000000000FF0700000000000000F8","7480000000000000FF0900000000000000F8"
+10,"7480000000000000FF0900000000000000F8","7480000000000000FF0B00000000000000F8"
+12,"7480000000000000FF0B00000000000000F8","7480000000000000FF0D00000000000000F8"
+14,"7480000000000000FF0D00000000000000F8","7480000000000000FF0F00000000000000F8"
+16,"7480000000000000FF0F00000000000000F8","7480000000000000FF1100000000000000F8"
+18,"7480000000000000FF1100000000000000F8","7480000000000000FF1300000000000000F8"
+20,"7480000000000000FF1300000000000000F8","7480000000000000FF1500000000000000F8"
+22,"7480000000000000FF1500000000000000F8","7480000000000000FF1700000000000000F8"
+24,"7480000000000000FF1700000000000000F8","7480000000000000FF1900000000000000F8"
+26,"7480000000000000FF1900000000000000F8","7480000000000000FF1B00000000000000F8"
+28,"7480000000000000FF1B00000000000000F8","7480000000000000FF1D00000000000000F8"
+30,"7480000000000000FF1D00000000000000F8","7480000000000000FF1F00000000000000F8"
+32,"7480000000000000FF1F00000000000000F8","7480000000000000FF2100000000000000F8"
+34,"7480000000000000FF2100000000000000F8","7480000000000000FF2300000000000000F8"
+36,"7480000000000000FF2300000000000000F8","7480000000000000FF2500000000000000F8"
+38,"7480000000000000FF2500000000000000F8","7480000000000000FF2700000000000000F8"
+40,"7480000000000000FF2700000000000000F8","7480000000000000FF2900000000000000F8"
+42,"7480000000000000FF2900000000000000F8","7480000000000000FF295F728000000000FF0EA6010000000000FA"
+44,"7480000000000000FF295F728000000000FF0EA6010000000000FA","7480000000000000FF295F728000000000FF1D4C010000000000FA"
+46,"7480000000000000FF295F728000000000FF1D4C010000000000FA","7480000000000000FF295F728000000000FF2BF2010000000000FA"
+48,"7480000000000000FF295F728000000000FF2BF2010000000000FA","7480000000000000FF295F728000000000FF3A98010000000000FA"
+50,"7480000000000000FF295F728000000000FF3A98010000000000FA","7480000000000000FF295F728000000000FF493E010000000000FA"
+52,"7480000000000000FF295F728000000000FF493E010000000000FA","7480000000000000FF295F728000000000FF57E4010000000000FA"
+54,"7480000000000000FF295F728000000000FF57E4010000000000FA","7480000000000000FF295F728000000000FF668A010000000000FA"
+1001,"7480000000000000FF295F728000000000FF668A010000000000FA","7480000000000000FF2F00000000000000F8"
+1003,"7480000000000000FF2F00000000000000F8","7480000000000000FF3300000000000000F8"
+1005,"7480000000000000FF3300000000000000F8","7480000000000000FF3500000000000000F8"
+1007,"7480000000000000FF3500000000000000F8","7480000000000000FF3C00000000000000F8"
+1009,"7480000000000000FF3C00000000000000F8","7480000000000000FF4500000000000000F8"
+1011,"7480000000000000FF4500000000000000F8","7480000000000000FF4700000000000000F8"
+1013,"7480000000000000FF4700000000000000F8","7480000000000000FF4F00000000000000F8"
+1015,"7480000000000000FF4F00000000000000F8","7480000000000000FF5400000000000000F8"
+1017,"7480000000000000FF5400000000000000F8","7480000000000000FF5800000000000000F8"
+1019,"7480000000000000FF5800000000000000F8","7480000000000000FF5E00000000000000F8"
+1021,"7480000000000000FF5E00000000000000F8","7480000000000000FF6B00000000000000F8"
+1023,"7480000000000000FF6B00000000000000F8","7480000000000000FF7000000000000000F8"
+1025,"7480000000000000FF7000000000000000F8","7480000000000000FF7300000000000000F8"
+1027,"7480000000000000FF7300000000000000F8","7480000000000000FF7A00000000000000F8"
+1029,"7480000000000000FF7A00000000000000F8","7480000000000000FF8500000000000000F8"
+1031,"7480000000000000FF8500000000000000F8","7480000000000000FF8900000000000000F8"
+1033,"7480000000000000FF8900000000000000F8","7480000000000000FF8D00000000000000F8"
+1035,"7480000000000000FF8D00000000000000F8","7480000000000000FF9400000000000000F8"
+1037,"7480000000000000FF9400000000000000F8","7480000000000000FF9D00000000000000F8"
+1039,"7480000000000000FF9D00000000000000F8","7480000000000000FFA200000000000000F8"
+1041,"7480000000000000FFA200000000000000F8","7480000000000000FFA500000000000000F8"
+1043,"7480000000000000FFA500000000000000F8","7480000000000000FFAC00000000000000F8"
+1045,"7480000000000000FFAC00000000000000F8","7480000000000000FFB900000000000000F8"
+1047,"7480000000000000FFB900000000000000F8","7480000000000000FFBD00000000000000F8"
+1049,"7480000000000000FFBD00000000000000F8","7480000000000000FFBF00000000000000F8"
+1051,"7480000000000000FFBF00000000000000F8","7480000000000000FFC300000000000000F8"
+1053,"7480000000000000FFC300000000000000F8","7480000000000000FFCF00000000000000F8"
+1055,"7480000000000000FFCF00000000000000F8","7480000000000000FFD400000000000000F8"
+1057,"7480000000000000FFD400000000000000F8","7480000000000000FFD800000000000000F8"
+1059,"7480000000000000FFD800000000000000F8","7480000000000000FFDE00000000000000F8"
+1061,"7480000000000000FFDE00000000000000F8","7480000000000000FFE700000000000000F8"
+1063,"7480000000000000FFE700000000000000F8","7480000000000000FFEC00000000000000F8"
+1065,"7480000000000000FFEC00000000000000F8","7480000000000000FFF000000000000000F8"
+1067,"7480000000000000FFF000000000000000F8","7480000000000000FFF600000000000000F8"
+1069,"7480000000000000FFF600000000000000F8","7480000000000000FFFC00000000000000F8"
+1071,"7480000000000000FFFC00000000000000F8","7480000000000000FFFE00000000000000F8"
+1119,"7480000000000000FFFE00000000000000F8","7480000000000001FF0200000000000000F8"
+1135,"7480000000000001FF0200000000000000F8","7480000000000001FF0300000000000000F8"
+1137,"7480000000000001FF0300000000000000F8","7480000000000001FF0400000000000000F8"
+1127,"7480000000000001FF0400000000000000F8","7480000000000001FF0500000000000000F8"
+1073,"7480000000000001FF0500000000000000F8","7480000000000001FF0600000000000000F8"
+1125,"7480000000000001FF0600000000000000F8","7480000000000001FF0800000000000000F8"
+1083,"7480000000000001FF0800000000000000F8","7480000000000001FF0900000000000000F8"
+1075,"7480000000000001FF0900000000000000F8","7480000000000001FF0A00000000000000F8"
+1115,"7480000000000001FF0A00000000000000F8","7480000000000001FF0C00000000000000F8"
+1077,"7480000000000001FF0C00000000000000F8","7480000000000001FF0D00000000000000F8"
+1079,"7480000000000001FF0D00000000000000F8","7480000000000001FF0F00000000000000F8"
+1129,"7480000000000001FF0F00000000000000F8","7480000000000001FF1100000000000000F8"
+1103,"7480000000000001FF1100000000000000F8","7480000000000001FF1200000000000000F8"
+1081,"7480000000000001FF1200000000000000F8","7480000000000001FF1300000000000000F8"
+1085,"7480000000000001FF1300000000000000F8","7480000000000001FF1500000000000000F8"
+1105,"7480000000000001FF1500000000000000F8","7480000000000001FF1600000000000000F8"
+1089,"7480000000000001FF1600000000000000F8","7480000000000001FF1800000000000000F8"
+1087,"7480000000000001FF1800000000000000F8","7480000000000001FF1A00000000000000F8"
+1099,"7480000000000001FF1A00000000000000F8","7480000000000001FF1C00000000000000F8"
+1093,"7480000000000001FF1C00000000000000F8","7480000000000001FF1E00000000000000F8"
+1091,"7480000000000001FF1E00000000000000F8","7480000000000001FF1F00000000000000F8"
+1143,"7480000000000001FF1F00000000000000F8","7480000000000001FF2200000000000000F8"
+1097,"7480000000000001FF2200000000000000F8","7480000000000001FF2300000000000000F8"
+1145,"7480000000000001FF2300000000000000F8","7480000000000001FF2400000000000000F8"
+1095,"7480000000000001FF2400000000000000F8","7480000000000001FF2500000000000000F8"
+1139,"7480000000000001FF2500000000000000F8","7480000000000001FF2800000000000000F8"
+1101,"7480000000000001FF2800000000000000F8","7480000000000001FF2A00000000000000F8"
+1141,"7480000000000001FF2A00000000000000F8","7480000000000001FF2E00000000000000F8"
+1123,"7480000000000001FF2E00000000000000F8","7480000000000001FF2F00000000000000F8"
+1107,"7480000000000001FF2F00000000000000F8","7480000000000001FF3000000000000000F8"
+1121,"7480000000000001FF3000000000000000F8","7480000000000001FF3100000000000000F8"
+1109,"7480000000000001FF3100000000000000F8","7480000000000001FF3200000000000000F8"
+1113,"7480000000000001FF3200000000000000F8","7480000000000001FF3500000000000000F8"
+1111,"7480000000000001FF3500000000000000F8","7480000000000001FF3600000000000000F8"
+1117,"7480000000000001FF3600000000000000F8","7480000000000001FF3A00000000000000F8"
+1131,"7480000000000001FF3A00000000000000F8","7480000000000001FF4200000000000000F8"
+1133,"7480000000000001FF4200000000000000F8","7480000000000001FF4400000000000000F8"
+1147,"7480000000000001FF4400000000000000F8","7480000000000001FF4C00000000000000F8"
+1149,"7480000000000001FF4C00000000000000F8","7480000000000001FF4E00000000000000F8"
+1153,"7480000000000001FF4E00000000000000F8","7480000000000001FF5000000000000000F8"
+1187,"7480000000000001FF5000000000000000F8","7480000000000001FF5100000000000000F8"
+1183,"7480000000000001FF5100000000000000F8","7480000000000001FF5300000000000000F8"
+1151,"7480000000000001FF5300000000000000F8","7480000000000001FF5400000000000000F8"
+1167,"7480000000000001FF5400000000000000F8","7480000000000001FF5500000000000000F8"
+1175,"7480000000000001FF5500000000000000F8","7480000000000001FF5700000000000000F8"
+1177,"7480000000000001FF5700000000000000F8","7480000000000001FF5800000000000000F8"
+1197,"7480000000000001FF5800000000000000F8","7480000000000001FF5900000000000000F8"
+1169,"7480000000000001FF5900000000000000F8","7480000000000001FF5A00000000000000F8"
+1157,"7480000000000001FF5A00000000000000F8","7480000000000001FF5B00000000000000F8"
+1179,"7480000000000001FF5B00000000000000F8","7480000000000001FF5C00000000000000F8"
+1191,"7480000000000001FF5C00000000000000F8","7480000000000001FF5D00000000000000F8"
+1155,"7480000000000001FF5D00000000000000F8","7480000000000001FF5E00000000000000F8"
+1189,"7480000000000001FF5E00000000000000F8","7480000000000001FF6100000000000000F8"
+1159,"7480000000000001FF6100000000000000F8","7480000000000001FF6200000000000000F8"
+1193,"7480000000000001FF6200000000000000F8","7480000000000001FF6400000000000000F8"
+1163,"7480000000000001FF6400000000000000F8","7480000000000001FF6500000000000000F8"
+1161,"7480000000000001FF6500000000000000F8","7480000000000001FF6600000000000000F8"
+1185,"7480000000000001FF6600000000000000F8","7480000000000001FF6900000000000000F8"
+1165,"7480000000000001FF6900000000000000F8","7480000000000001FF6A00000000000000F8"
+1171,"7480000000000001FF6A00000000000000F8","7480000000000001FF6E00000000000000F8"
+1173,"7480000000000001FF6E00000000000000F8","7480000000000001FF7000000000000000F8"
+1181,"7480000000000001FF7000000000000000F8","7480000000000001FF7500000000000000F8"
+1195,"7480000000000001FF7500000000000000F8","7480000000000001FF7C00000000000000F8"
+1199,"7480000000000001FF7C00000000000000F8","7480000000000001FF8000000000000000F8"
+1201,"7480000000000001FF8000000000000000F8","7480000000000001FF8200000000000000F8"
+1203,"7480000000000001FF8200000000000000F8","7480000000000001FF8400000000000000F8"
+1209,"7480000000000001FF8400000000000000F8","7480000000000001FF8600000000000000F8"
+1211,"7480000000000001FF8600000000000000F8","7480000000000001FF8800000000000000F8"
+1207,"7480000000000001FF8800000000000000F8","7480000000000001FF8A00000000000000F8"
+1217,"7480000000000001FF8A00000000000000F8","7480000000000001FF8B00000000000000F8"
+1219,"7480000000000001FF8B00000000000000F8","7480000000000001FF8C00000000000000F8"
+1205,"7480000000000001FF8C00000000000000F8","7480000000000001FF8D00000000000000F8"
+1213,"7480000000000001FF8D00000000000000F8","7480000000000001FF9100000000000000F8"
+1233,"7480000000000001FF9100000000000000F8","7480000000000001FF9400000000000000F8"
+1247,"7480000000000001FF9400000000000000F8","7480000000000001FF9500000000000000F8"
+1215,"7480000000000001FF9500000000000000F8","7480000000000001FF9600000000000000F8"
+1227,"7480000000000001FF9600000000000000F8","7480000000000001FF9700000000000000F8"
+1235,"7480000000000001FF9700000000000000F8","7480000000000001FF9900000000000000F8"
+1221,"7480000000000001FF9900000000000000F8","7480000000000001FF9A00000000000000F8"
+1231,"7480000000000001FF9A00000000000000F8","7480000000000001FF9B00000000000000F8"
+1223,"7480000000000001FF9B00000000000000F8","7480000000000001FF9D00000000000000F8"
+1229,"7480000000000001FF9D00000000000000F8","7480000000000001FFA000000000000000F8"
+1243,"7480000000000001FFA000000000000000F8","7480000000000001FFA500000000000000F8"
+1245,"7480000000000001FFA500000000000000F8","7480000000000001FFA600000000000000F8"
+1239,"7480000000000001FFA600000000000000F8","7480000000000001FFA700000000000000F8"
+1241,"7480000000000001FFA700000000000000F8","7480000000000001FFA900000000000000F8"
+1237,"7480000000000001FFA900000000000000F8","7480000000000001FFAA00000000000000F8"
+1249,"7480000000000001FFAA00000000000000F8","7480000000000001FFB000000000000000F8"
+1251,"7480000000000001FFB000000000000000F8","7480000000000001FFB200000000000000F8"
+1255,"7480000000000001FFB200000000000000F8","7480000000000001FFB300000000000000F8"
+1257,"7480000000000001FFB300000000000000F8","7480000000000001FFB600000000000000F8"
+1267,"7480000000000001FFB600000000000000F8","7480000000000001FFB800000000000000F8"
+1275,"7480000000000001FFB800000000000000F8","7480000000000001FFB900000000000000F8"
+1273,"7480000000000001FFB900000000000000F8","7480000000000001FFBA00000000000000F8"
+1271,"7480000000000001FFBA00000000000000F8","7480000000000001FFBB00000000000000F8"
+1277,"7480000000000001FFBB00000000000000F8","7480000000000001FFBC00000000000000F8"
+1261,"7480000000000001FFBC00000000000000F8","7480000000000001FFBD00000000000000F8"
+1259,"7480000000000001FFBD00000000000000F8","7480000000000001FFBE00000000000000F8"
+1279,"7480000000000001FFBE00000000000000F8","7480000000000001FFC600000000000000F8"
+1281,"7480000000000001FFC600000000000000F8","7480000000000001FFC800000000000000F8"
+1283,"7480000000000001FFC800000000000000F8","7480000000000001FFCA00000000000000F8"
+1285,"7480000000000001FFCA00000000000000F8","7480000000000001FFCC00000000000000F8"
+1289,"7480000000000001FFCC00000000000000F8","7480000000000001FFCD00000000000000F8"
+1291,"7480000000000001FFCD00000000000000F8","7480000000000001FFD000000000000000F8"
+1293,"7480000000000001FFD000000000000000F8","7480000000000001FFD200000000000000F8"
+1295,"7480000000000001FFD200000000000000F8","7480000000000001FFD400000000000000F8"
+1297,"7480000000000001FFD400000000000000F8","7480000000000001FFD600000000000000F8"
+1299,"7480000000000001FFD600000000000000F8","7480000000000001FFD800000000000000F8"
+1309,"7480000000000001FFD800000000000000F8","7480000000000001FFDA00000000000000F8"
+1303,"7480000000000001FFDA00000000000000F8","7480000000000001FFDB00000000000000F8"
+1307,"7480000000000001FFDB00000000000000F8","7480000000000001FFDE00000000000000F8"
+1311,"7480000000000001FFDE00000000000000F8","7480000000000001FFE000000000000000F8"
+1313,"7480000000000001FFE000000000000000F8","7480000000000001FFE200000000000000F8"
+1317,"7480000000000001FFE200000000000000F8","7480000000000001FFE400000000000000F8"
+1321,"7480000000000001FFE400000000000000F8","7480000000000001FFE600000000000000F8"
+1325,"7480000000000001FFE600000000000000F8","7480000000000001FFE800000000000000F8"
+1329,"7480000000000001FFE800000000000000F8","7480000000000001FFEA00000000000000F8"
+1331,"7480000000000001FFEA00000000000000F8","7480000000000001FFEC00000000000000F8"
+1327,"7480000000000001FFEC00000000000000F8","7480000000000001FFED00000000000000F8"
+1333,"7480000000000001FFED00000000000000F8","7480000000000001FFF000000000000000F8"
+1335,"7480000000000001FFF000000000000000F8","7480000000000001FFF200000000000000F8"
+1337,"7480000000000001FFF200000000000000F8","7480000000000001FFF400000000000000F8"
+1339,"7480000000000001FFF400000000000000F8","7480000000000001FFF600000000000000F8"
+1341,"7480000000000001FFF600000000000000F8","7480000000000001FFF800000000000000F8"
+1355,"7480000000000001FFF800000000000000F8","7480000000000001FFFA00000000000000F8"
+1343,"7480000000000001FFFA00000000000000F8","7480000000000001FFFB00000000000000F8"
+1347,"7480000000000001FFFB00000000000000F8","7480000000000001FFFC00000000000000F8"
+1345,"7480000000000001FFFC00000000000000F8","7480000000000001FFFD00000000000000F8"
+1353,"7480000000000001FFFD00000000000000F8","7480000000000002FF0100000000000000F8"
+1349,"7480000000000002FF0100000000000000F8","7480000000000002FF0200000000000000F8"
+1351,"7480000000000002FF0200000000000000F8","7480000000000002FF0500000000000000F8"
+1363,"7480000000000002FF0500000000000000F8","7480000000000002FF0800000000000000F8"
+1357,"7480000000000002FF0800000000000000F8","7480000000000002FF0900000000000000F8"
+1359,"7480000000000002FF0900000000000000F8","7480000000000002FF0B00000000000000F8"
+1361,"7480000000000002FF0B00000000000000F8","7480000000000002FF0D00000000000000F8"
+1365,"7480000000000002FF0D00000000000000F8","7480000000000002FF1000000000000000F8"
+1369,"7480000000000002FF1000000000000000F8","7480000000000002FF1200000000000000F8"
+1373,"7480000000000002FF1200000000000000F8","7480000000000002FF1400000000000000F8"
+1375,"7480000000000002FF1400000000000000F8","7480000000000002FF1600000000000000F8"
+1367,"7480000000000002FF1600000000000000F8","7480000000000002FF1800000000000000F8"
+1377,"7480000000000002FF1800000000000000F8","7480000000000002FF1A00000000000000F8"
+1383,"7480000000000002FF1A00000000000000F8","7480000000000002FF1C00000000000000F8"
+1379,"7480000000000002FF1C00000000000000F8","7480000000000002FF1D00000000000000F8"
+1385,"7480000000000002FF1D00000000000000F8","7480000000000002FF2000000000000000F8"
+1397,"7480000000000002FF2000000000000000F8","7480000000000002FF2200000000000000F8"
+1389,"7480000000000002FF2200000000000000F8","7480000000000002FF2300000000000000F8"
+1387,"7480000000000002FF2300000000000000F8","7480000000000002FF2400000000000000F8"
+1393,"7480000000000002FF2400000000000000F8","7480000000000002FF2700000000000000F8"
+1391,"7480000000000002FF2700000000000000F8","7480000000000002FF2800000000000000F8"
+1401,"7480000000000002FF2800000000000000F8","7480000000000002FF2C00000000000000F8"
+1399,"7480000000000002FF2C00000000000000F8","7480000000000002FF2D00000000000000F8"
+1395,"7480000000000002FF2D00000000000000F8","7480000000000002FF3000000000000000F8"
+1403,"7480000000000002FF3000000000000000F8","7480000000000002FF3200000000000000F8"
+1405,"7480000000000002FF3200000000000000F8","7480000000000002FF3400000000000000F8"
+1411,"7480000000000002FF3400000000000000F8","7480000000000002FF3500000000000000F8"
+1409,"7480000000000002FF3500000000000000F8","7480000000000002FF3800000000000000F8"
+1413,"7480000000000002FF3800000000000000F8","7480000000000002FF3A00000000000000F8"
+1417,"7480000000000002FF3A00000000000000F8","7480000000000002FF3C00000000000000F8"
+1415,"7480000000000002FF3C00000000000000F8","7480000000000002FF3D00000000000000F8"
+1419,"7480000000000002FF3D00000000000000F8","7480000000000002FF4000000000000000F8"
+1423,"7480000000000002FF4000000000000000F8","7480000000000002FF4200000000000000F8"
+1421,"7480000000000002FF4200000000000000F8","7480000000000002FF4300000000000000F8"
+1425,"7480000000000002FF4300000000000000F8","7480000000000002FF4600000000000000F8"
+1427,"7480000000000002FF4600000000000000F8","7480000000000002FF4800000000000000F8"
+1429,"7480000000000002FF4800000000000000F8","7480000000000002FF4A00000000000000F8"
+1431,"7480000000000002FF4A00000000000000F8","7480000000000002FF4C00000000000000F8"
+1437,"7480000000000002FF4C00000000000000F8","7480000000000002FF4E00000000000000F8"
+1433,"7480000000000002FF4E00000000000000F8","7480000000000002FF4F00000000000000F8"
+1439,"7480000000000002FF4F00000000000000F8","7480000000000002FF5200000000000000F8"
+1445,"7480000000000002FF5200000000000000F8","7480000000000002FF5400000000000000F8"
+1441,"7480000000000002FF5400000000000000F8","7480000000000002FF5500000000000000F8"
+1443,"7480000000000002FF5500000000000000F8","7480000000000002FF5700000000000000F8"
+1447,"7480000000000002FF5700000000000000F8","7480000000000002FF5A00000000000000F8"
+1449,"7480000000000002FF5A00000000000000F8","7480000000000002FF5C00000000000000F8"
+1451,"7480000000000002FF5C00000000000000F8","7480000000000002FF5E00000000000000F8"
+1453,"7480000000000002FF5E00000000000000F8","7480000000000002FF6000000000000000F8"
+1457,"7480000000000002FF6000000000000000F8","7480000000000002FF6200000000000000F8"
+1459,"7480000000000002FF6200000000000000F8","7480000000000002FF6400000000000000F8"
+1455,"7480000000000002FF6400000000000000F8","7480000000000002FF6600000000000000F8"
+1465,"7480000000000002FF6600000000000000F8","7480000000000002FF6800000000000000F8"
+1461,"7480000000000002FF6800000000000000F8","7480000000000002FF6A00000000000000F8"
+1463,"7480000000000002FF6A00000000000000F8","7480000000000002FF6C00000000000000F8"
+1469,"7480000000000002FF6C00000000000000F8","7480000000000002FF6E00000000000000F8"
+1467,"7480000000000002FF6E00000000000000F8","7480000000000002FF6F00000000000000F8"
+1471,"7480000000000002FF6F00000000000000F8","7480000000000002FF7200000000000000F8"
+1473,"7480000000000002FF7200000000000000F8","7480000000000002FF7400000000000000F8"
+1475,"7480000000000002FF7400000000000000F8","7480000000000002FF7600000000000000F8"
+1477,"7480000000000002FF7600000000000000F8","7480000000000002FF7800000000000000F8"
+1479,"7480000000000002FF7800000000000000F8","7480000000000002FF7A00000000000000F8"
+1481,"7480000000000002FF7A00000000000000F8","7480000000000002FF7C00000000000000F8"
+1485,"7480000000000002FF7C00000000000000F8","7480000000000002FF7E00000000000000F8"
+1487,"7480000000000002FF7E00000000000000F8","7480000000000002FF8000000000000000F8"
+1483,"7480000000000002FF8000000000000000F8","7480000000000002FF8200000000000000F8"
+1489,"7480000000000002FF8200000000000000F8","7480000000000002FF8400000000000000F8"
+1491,"7480000000000002FF8400000000000000F8","7480000000000002FF8600000000000000F8"
+1493,"7480000000000002FF8600000000000000F8","7480000000000002FF8800000000000000F8"
+1495,"7480000000000002FF8800000000000000F8","7480000000000002FF8A00000000000000F8"
+1497,"7480000000000002FF8A00000000000000F8","7480000000000002FF8C00000000000000F8"
+1501,"7480000000000002FF8C00000000000000F8","7480000000000002FF8E00000000000000F8"
+1499,"7480000000000002FF8E00000000000000F8","7480000000000002FF9000000000000000F8"
+1507,"7480000000000002FF9000000000000000F8","7480000000000002FF9200000000000000F8"
+1503,"7480000000000002FF9200000000000000F8","7480000000000002FF9400000000000000F8"
+1509,"7480000000000002FF9400000000000000F8","7480000000000002FF9600000000000000F8"
+1511,"7480000000000002FF9600000000000000F8","7480000000000002FF9800000000000000F8"
+1515,"7480000000000002FF9800000000000000F8","7480000000000002FF9A00000000000000F8"
+1513,"7480000000000002FF9A00000000000000F8","7480000000000002FF9C00000000000000F8"
+1517,"7480000000000002FF9C00000000000000F8","7480000000000002FF9E00000000000000F8"
+1519,"7480000000000002FF9E00000000000000F8","7480000000000002FFA000000000000000F8"
+1521,"7480000000000002FFA000000000000000F8","7480000000000002FFA200000000000000F8"
+1523,"7480000000000002FFA200000000000000F8","7480000000000002FFA400000000000000F8"
+1527,"7480000000000002FFA400000000000000F8","7480000000000002FFA600000000000000F8"
+1529,"7480000000000002FFA600000000000000F8","7480000000000002FFA800000000000000F8"
+1531,"7480000000000002FFA800000000000000F8","7480000000000002FFAA00000000000000F8"
+1533,"7480000000000002FFAA00000000000000F8","7480000000000002FFAC00000000000000F8"
+1535,"7480000000000002FFAC00000000000000F8","7480000000000002FFAE00000000000000F8"
+1537,"7480000000000002FFAE00000000000000F8","7480000000000002FFB000000000000000F8"
+1547,"7480000000000002FFB000000000000000F8","7480000000000002FFB200000000000000F8"
+1539,"7480000000000002FFB200000000000000F8","7480000000000002FFB300000000000000F8"
+1543,"7480000000000002FFB300000000000000F8","7480000000000002FFB500000000000000F8"
+1549,"7480000000000002FFB500000000000000F8","7480000000000002FFB800000000000000F8"
+1541,"7480000000000002FFB800000000000000F8","7480000000000002FFBA00000000000000F8"
+1545,"7480000000000002FFBA00000000000000F8","7480000000000002FFBC00000000000000F8"
+1551,"7480000000000002FFBC00000000000000F8","7480000000000002FFBE00000000000000F8"
+1553,"7480000000000002FFBE00000000000000F8","7480000000000002FFC000000000000000F8"
+1557,"7480000000000002FFC000000000000000F8","7480000000000002FFC200000000000000F8"
+1555,"7480000000000002FFC200000000000000F8","7480000000000002FFC400000000000000F8"
+1567,"7480000000000002FFC400000000000000F8","7480000000000002FFC500000000000000F8"
+1559,"7480000000000002FFC500000000000000F8","7480000000000002FFC700000000000000F8"
+1577,"7480000000000002FFC700000000000000F8","7480000000000002FFC800000000000000F8"
+1565,"7480000000000002FFC800000000000000F8","7480000000000002FFC900000000000000F8"
+1561,"7480000000000002FFC900000000000000F8","7480000000000002FFCB00000000000000F8"
+1569,"7480000000000002FFCB00000000000000F8","7480000000000002FFCD00000000000000F8"
+1563,"7480000000000002FFCD00000000000000F8","7480000000000002FFCE00000000000000F8"
+1571,"7480000000000002FFCE00000000000000F8","7480000000000002FFD400000000000000F8"
+1573,"7480000000000002FFD400000000000000F8","7480000000000002FFD600000000000000F8"
+1575,"7480000000000002FFD600000000000000F8","7480000000000002FFD800000000000000F8"
+1579,"7480000000000002FFD800000000000000F8","7480000000000002FFDA00000000000000F8"
+1589,"7480000000000002FFDA00000000000000F8","7480000000000002FFDC00000000000000F8"
+1581,"7480000000000002FFDC00000000000000F8","7480000000000002FFDD00000000000000F8"
+1591,"7480000000000002FFDD00000000000000F8","7480000000000002FFE000000000000000F8"
+1587,"7480000000000002FFE000000000000000F8","7480000000000002FFE200000000000000F8"
+1593,"7480000000000002FFE200000000000000F8","7480000000000002FFE400000000000000F8"
+1595,"7480000000000002FFE400000000000000F8","7480000000000002FFE600000000000000F8"
+1599,"7480000000000002FFE600000000000000F8","7480000000000002FFE800000000000000F8"
+1597,"7480000000000002FFE800000000000000F8","7480000000000002FFE900000000000000F8"
+1601,"7480000000000002FFE900000000000000F8","7480000000000002FFEB00000000000000F8"
+1603,"7480000000000002FFEB00000000000000F8","7480000000000002FFEE00000000000000F8"
+1605,"7480000000000002FFEE00000000000000F8","7480000000000002FFF000000000000000F8"
+1607,"7480000000000002FFF000000000000000F8","7480000000000002FFF200000000000000F8"
+1609,"7480000000000002FFF200000000000000F8","7480000000000002FFF400000000000000F8"
+1611,"7480000000000002FFF400000000000000F8","7480000000000002FFF600000000000000F8"
+1613,"7480000000000002FFF600000000000000F8","7480000000000002FFF800000000000000F8"
+1615,"7480000000000002FFF800000000000000F8","7480000000000002FFFA00000000000000F8"
+1621,"7480000000000002FFFA00000000000000F8","7480000000000002FFFC00000000000000F8"
+1623,"7480000000000002FFFC00000000000000F8","7480000000000002FFFD00000000000000F8"
+1617,"7480000000000002FFFD00000000000000F8","7480000000000002FFFE00000000000000F8"
+1619,"7480000000000002FFFE00000000000000F8","7480000000000003FF0000000000000000F8"
+1625,"7480000000000003FF0000000000000000F8","7480000000000003FF0400000000000000F8"
+1627,"7480000000000003FF0400000000000000F8","7480000000000003FF0600000000000000F8"
+1629,"7480000000000003FF0600000000000000F8","7480000000000003FF0800000000000000F8"
+1631,"7480000000000003FF0800000000000000F8","7480000000000003FF0A00000000000000F8"
+1633,"7480000000000003FF0A00000000000000F8","7480000000000003FF0C00000000000000F8"
+1635,"7480000000000003FF0C00000000000000F8","7480000000000003FF0E00000000000000F8"
+1637,"7480000000000003FF0E00000000000000F8","7480000000000003FF1000000000000000F8"
+1639,"7480000000000003FF1000000000000000F8","7480000000000003FF1200000000000000F8"
+1641,"7480000000000003FF1200000000000000F8","7480000000000003FF1400000000000000F8"
+1643,"7480000000000003FF1400000000000000F8","7480000000000003FF1600000000000000F8"
+1647,"7480000000000003FF1600000000000000F8","7480000000000003FF1800000000000000F8"
+1649,"7480000000000003FF1800000000000000F8","7480000000000003FF1A00000000000000F8"
+1651,"7480000000000003FF1A00000000000000F8","7480000000000003FF1C00000000000000F8"
+1645,"7480000000000003FF1C00000000000000F8","7480000000000003FF1E00000000000000F8"
+1657,"7480000000000003FF1E00000000000000F8","7480000000000003FF1F00000000000000F8"
+1655,"7480000000000003FF1F00000000000000F8","7480000000000003FF2000000000000000F8"
+1677,"7480000000000003FF2000000000000000F8","7480000000000003FF2300000000000000F8"
+1671,"7480000000000003FF2300000000000000F8","7480000000000003FF2400000000000000F8"
+1675,"7480000000000003FF2400000000000000F8","7480000000000003FF2500000000000000F8"
+1681,"7480000000000003FF2500000000000000F8","7480000000000003FF2600000000000000F8"
+1679,"7480000000000003FF2600000000000000F8","7480000000000003FF2700000000000000F8"
+1661,"7480000000000003FF2700000000000000F8","7480000000000003FF2900000000000000F8"
+1665,"7480000000000003FF2900000000000000F8","7480000000000003FF2A00000000000000F8"
+1663,"7480000000000003FF2A00000000000000F8","7480000000000003FF2B00000000000000F8"
+1659,"7480000000000003FF2B00000000000000F8","7480000000000003FF2C00000000000000F8"
+1653,"7480000000000003FF2C00000000000000F8","7480000000000003FF2D00000000000000F8"
+1667,"7480000000000003FF2D00000000000000F8","7480000000000003FF3300000000000000F8"
+1669,"7480000000000003FF3300000000000000F8","7480000000000003FF3500000000000000F8"
+1683,"7480000000000003FF3500000000000000F8","7480000000000003FF3B00000000000000F8"
+1685,"7480000000000003FF3B00000000000000F8","7480000000000003FF3E00000000000000F8"
+1687,"7480000000000003FF3E00000000000000F8","7480000000000003FF4000000000000000F8"
+1689,"7480000000000003FF4000000000000000F8","7480000000000003FF4200000000000000F8"
+1691,"7480000000000003FF4200000000000000F8","7480000000000003FF4300000000000000F8"
+1693,"7480000000000003FF4300000000000000F8","7480000000000003FF4600000000000000F8"
+1695,"7480000000000003FF4600000000000000F8","7480000000000003FF4800000000000000F8"
+1697,"7480000000000003FF4800000000000000F8","7480000000000003FF4A00000000000000F8"
+1699,"7480000000000003FF4A00000000000000F8","7480000000000003FF4C00000000000000F8"
+1701,"7480000000000003FF4C00000000000000F8","7480000000000003FF4E00000000000000F8"
+1705,"7480000000000003FF4E00000000000000F8","7480000000000003FF4F00000000000000F8"
+1711,"7480000000000003FF4F00000000000000F8","7480000000000003FF5200000000000000F8"
+1707,"7480000000000003FF5200000000000000F8","7480000000000003FF5300000000000000F8"
+1713,"7480000000000003FF5300000000000000F8","7480000000000003FF5600000000000000F8"
+1715,"7480000000000003FF5600000000000000F8","7480000000000003FF5800000000000000F8"
+1717,"7480000000000003FF5800000000000000F8","7480000000000003FF5A00000000000000F8"
+1719,"7480000000000003FF5A00000000000000F8","7480000000000003FF5C00000000000000F8"
+1721,"7480000000000003FF5C00000000000000F8","7480000000000003FF5E00000000000000F8"
+1723,"7480000000000003FF5E00000000000000F8","7480000000000003FF6000000000000000F8"
+1727,"7480000000000003FF6000000000000000F8","7480000000000003FF6200000000000000F8"
+1725,"7480000000000003FF6200000000000000F8","7480000000000003FF6300000000000000F8"
+1729,"7480000000000003FF6300000000000000F8","7480000000000003FF6600000000000000F8"
+1731,"7480000000000003FF6600000000000000F8","7480000000000003FF6800000000000000F8"
+1733,"7480000000000003FF6800000000000000F8","7480000000000003FF6A00000000000000F8"
+1735,"7480000000000003FF6A00000000000000F8","7480000000000003FF6C00000000000000F8"
+1741,"7480000000000003FF6C00000000000000F8","7480000000000003FF6E00000000000000F8"
+1737,"7480000000000003FF6E00000000000000F8","7480000000000003FF6F00000000000000F8"
+1765,"7480000000000003FF6F00000000000000F8","7480000000000003FF7200000000000000F8"
+1779,"7480000000000003FF7200000000000000F8","7480000000000003FF7300000000000000F8"
+1773,"7480000000000003FF7300000000000000F8","7480000000000003FF7400000000000000F8"
+1739,"7480000000000003FF7400000000000000F8","7480000000000003FF7500000000000000F8"
+1785,"7480000000000003FF7500000000000000F8","7480000000000003FF7600000000000000F8"
+1789,"7480000000000003FF7600000000000000F8","7480000000000003FF7700000000000000F8"
+1743,"7480000000000003FF7700000000000000F8","7480000000000003FF7800000000000000F8"
+1777,"7480000000000003FF7800000000000000F8","7480000000000003FF7A00000000000000F8"
+1775,"7480000000000003FF7A00000000000000F8","7480000000000003FF7B00000000000000F8"
+1771,"7480000000000003FF7B00000000000000F8","7480000000000003FF7D00000000000000F8"
+1761,"7480000000000003FF7D00000000000000F8","7480000000000003FF7E00000000000000F8"
+1745,"7480000000000003FF7E00000000000000F8","7480000000000003FF7F00000000000000F8"
+1755,"7480000000000003FF7F00000000000000F8","7480000000000003FF8100000000000000F8"
+1747,"7480000000000003FF8100000000000000F8","7480000000000003FF8200000000000000F8"
+1749,"7480000000000003FF8200000000000000F8","7480000000000003FF8400000000000000F8"
+1787,"7480000000000003FF8400000000000000F8","7480000000000003FF8500000000000000F8"
+1783,"7480000000000003FF8500000000000000F8","7480000000000003FF8600000000000000F8"
+1769,"7480000000000003FF8600000000000000F8","7480000000000003FF8800000000000000F8"
+1751,"7480000000000003FF8800000000000000F8","7480000000000003FF8900000000000000F8"
+1767,"7480000000000003FF8900000000000000F8","7480000000000003FF8B00000000000000F8"
+1753,"7480000000000003FF8B00000000000000F8","7480000000000003FF8C00000000000000F8"
+1757,"7480000000000003FF8C00000000000000F8","7480000000000003FF8E00000000000000F8"
+1759,"7480000000000003FF8E00000000000000F8","7480000000000003FF9100000000000000F8"
+1763,"7480000000000003FF9100000000000000F8","7480000000000003FF9400000000000000F8"
+1781,"7480000000000003FF9400000000000000F8","7480000000000003FF9D00000000000000F8"
+1791,"7480000000000003FF9D00000000000000F8","7480000000000003FFA400000000000000F8"
+1793,"7480000000000003FFA400000000000000F8","7480000000000003FFA600000000000000F8"
+1795,"7480000000000003FFA600000000000000F8","7480000000000003FFA800000000000000F8"
+1805,"7480000000000003FFA800000000000000F8","7480000000000003FFAA00000000000000F8"
+1799,"7480000000000003FFAA00000000000000F8","7480000000000003FFAC00000000000000F8"
+1807,"7480000000000003FFAC00000000000000F8","7480000000000003FFAD00000000000000F8"
+1803,"7480000000000003FFAD00000000000000F8","7480000000000003FFAE00000000000000F8"
+1809,"7480000000000003FFAE00000000000000F8","7480000000000003FFAF00000000000000F8"
+1797,"7480000000000003FFAF00000000000000F8","7480000000000003FFB000000000000000F8"
+1811,"7480000000000003FFB000000000000000F8","7480000000000003FFB600000000000000F8"
+1813,"7480000000000003FFB600000000000000F8","7480000000000003FFB800000000000000F8"
+1815,"7480000000000003FFB800000000000000F8","7480000000000003FFBA00000000000000F8"
+1817,"7480000000000003FFBA00000000000000F8","7480000000000003FFBC00000000000000F8"
+1819,"7480000000000003FFBC00000000000000F8","7480000000000003FFBE00000000000000F8"
+1821,"7480000000000003FFBE00000000000000F8","7480000000000003FFC000000000000000F8"
+1823,"7480000000000003FFC000000000000000F8","7480000000000003FFC200000000000000F8"
+1827,"7480000000000003FFC200000000000000F8","7480000000000003FFC400000000000000F8"
+1825,"7480000000000003FFC400000000000000F8","7480000000000003FFC600000000000000F8"
+1829,"7480000000000003FFC600000000000000F8","7480000000000003FFC800000000000000F8"
+1839,"7480000000000003FFC800000000000000F8","7480000000000003FFCA00000000000000F8"
+1837,"7480000000000003FFCA00000000000000F8","7480000000000003FFCB00000000000000F8"
+1831,"7480000000000003FFCB00000000000000F8","7480000000000003FFCC00000000000000F8"
+1833,"7480000000000003FFCC00000000000000F8","7480000000000003FFCE00000000000000F8"
+1841,"7480000000000003FFCE00000000000000F8","7480000000000003FFD600000000000000F8"
+1843,"7480000000000003FFD600000000000000F8","7480000000000003FFD800000000000000F8"
+1917,"7480000000000003FFD800000000000000F8","7480000000000003FFDC00000000000000F8"
+1893,"7480000000000003FFDC00000000000000F8","7480000000000003FFDD00000000000000F8"
+1847,"7480000000000003FFDD00000000000000F8","7480000000000003FFDE00000000000000F8"
+1869,"7480000000000003FFDE00000000000000F8","7480000000000003FFDF00000000000000F8"
+1899,"7480000000000003FFDF00000000000000F8","7480000000000003FFE000000000000000F8"
+1849,"7480000000000003FFE000000000000000F8","7480000000000003FFE100000000000000F8"
+1845,"7480000000000003FFE100000000000000F8","7480000000000003FFE200000000000000F8"
+1909,"7480000000000003FFE200000000000000F8","7480000000000003FFE600000000000000F8"
+1879,"7480000000000003FFE600000000000000F8","7480000000000003FFE700000000000000F8"
+1851,"7480000000000003FFE700000000000000F8","7480000000000003FFE800000000000000F8"
+1865,"7480000000000003FFE800000000000000F8","7480000000000003FFEA00000000000000F8"
+1863,"7480000000000003FFEA00000000000000F8","7480000000000003FFEB00000000000000F8"
+1853,"7480000000000003FFEB00000000000000F8","7480000000000003FFEC00000000000000F8"
+1855,"7480000000000003FFEC00000000000000F8","7480000000000003FFEE00000000000000F8"
+1857,"7480000000000003FFEE00000000000000F8","7480000000000003FFF000000000000000F8"
+1861,"7480000000000003FFF000000000000000F8","7480000000000003FFF200000000000000F8"
+1859,"7480000000000003FFF200000000000000F8","7480000000000003FFF300000000000000F8"
+1867,"7480000000000003FFF300000000000000F8","7480000000000003FFF800000000000000F8"
+1907,"7480000000000003FFF800000000000000F8","7480000000000003FFFB00000000000000F8"
+1915,"7480000000000003FFFB00000000000000F8","7480000000000003FFFC00000000000000F8"
+1897,"7480000000000003FFFC00000000000000F8","7480000000000003FFFD00000000000000F8"
+1905,"7480000000000003FFFD00000000000000F8","7480000000000003FFFE00000000000000F8"
+1891,"7480000000000003FFFE00000000000000F8","7480000000000003FFFF00000000000000F8"
+1873,"7480000000000003FFFF00000000000000F8","7480000000000004FF0000000000000000F8"
+1901,"7480000000000004FF0000000000000000F8","7480000000000004FF0100000000000000F8"
+1913,"7480000000000004FF0100000000000000F8","7480000000000004FF0200000000000000F8"
+1871,"7480000000000004FF0200000000000000F8","7480000000000004FF0300000000000000F8"
+1889,"7480000000000004FF0300000000000000F8","7480000000000004FF0600000000000000F8"
+1875,"7480000000000004FF0600000000000000F8","7480000000000004FF0700000000000000F8"
+1881,"7480000000000004FF0700000000000000F8","7480000000000004FF0900000000000000F8"
+1887,"7480000000000004FF0900000000000000F8","7480000000000004FF0A00000000000000F8"
+1877,"7480000000000004FF0A00000000000000F8","7480000000000004FF0B00000000000000F8"
+1885,"7480000000000004FF0B00000000000000F8","7480000000000004FF0F00000000000000F8"
+1883,"7480000000000004FF0F00000000000000F8","7480000000000004FF1000000000000000F8"
+1919,"7480000000000004FF1000000000000000F8","7480000000000004FF1800000000000000F8"
+1911,"7480000000000004FF1800000000000000F8","7480000000000004FF1900000000000000F8"
+1921,"7480000000000004FF1900000000000000F8","7480000000000004FF1A00000000000000F8"
+1895,"7480000000000004FF1A00000000000000F8","7480000000000004FF1B00000000000000F8"
+1903,"7480000000000004FF1B00000000000000F8","7480000000000004FF1F00000000000000F8"
+1923,"7480000000000004FF1F00000000000000F8","7480000000000004FF2A00000000000000F8"
+1925,"7480000000000004FF2A00000000000000F8","7480000000000004FF2C00000000000000F8"
+1929,"7480000000000004FF2C00000000000000F8","7480000000000004FF2E00000000000000F8"
+1927,"7480000000000004FF2E00000000000000F8","7480000000000004FF2F00000000000000F8"
+1931,"7480000000000004FF2F00000000000000F8","7480000000000004FF3200000000000000F8"
+1933,"7480000000000004FF3200000000000000F8","7480000000000004FF3400000000000000F8"
+1945,"7480000000000004FF3400000000000000F8","7480000000000004FF3600000000000000F8"
+1939,"7480000000000004FF3600000000000000F8","7480000000000004FF3700000000000000F8"
+1935,"7480000000000004FF3700000000000000F8","7480000000000004FF3800000000000000F8"
+1943,"7480000000000004FF3800000000000000F8","7480000000000004FF3B00000000000000F8"
+1941,"7480000000000004FF3B00000000000000F8","7480000000000004FF3C00000000000000F8"
+1951,"7480000000000004FF3C00000000000000F8","7480000000000004FF4000000000000000F8"
+1947,"7480000000000004FF4000000000000000F8","7480000000000004FF4100000000000000F8"
+1961,"7480000000000004FF4100000000000000F8","7480000000000004FF4400000000000000F8"
+1953,"7480000000000004FF4400000000000000F8","7480000000000004FF4500000000000000F8"
+1965,"7480000000000004FF4500000000000000F8","7480000000000004FF4700000000000000F8"
+1957,"7480000000000004FF4700000000000000F8","7480000000000004FF4800000000000000F8"
+1955,"7480000000000004FF4800000000000000F8","7480000000000004FF4900000000000000F8"
+1959,"7480000000000004FF4900000000000000F8","7480000000000004FF4C00000000000000F8"
+1967,"7480000000000004FF4C00000000000000F8","7480000000000004FF5000000000000000F8"
+1963,"7480000000000004FF5000000000000000F8","7480000000000004FF5200000000000000F8"
+1969,"7480000000000004FF5200000000000000F8","7480000000000004FF5400000000000000F8"
+1973,"7480000000000004FF5400000000000000F8","7480000000000004FF5600000000000000F8"
+1971,"7480000000000004FF5600000000000000F8","7480000000000004FF5700000000000000F8"
+1975,"7480000000000004FF5700000000000000F8","7480000000000004FF5A00000000000000F8"
+1977,"7480000000000004FF5A00000000000000F8","7480000000000004FF5C00000000000000F8"
+1979,"7480000000000004FF5C00000000000000F8","7480000000000004FF5E00000000000000F8"
+1983,"7480000000000004FF5E00000000000000F8","7480000000000004FF6000000000000000F8"
+1981,"7480000000000004FF6000000000000000F8","7480000000000004FF6100000000000000F8"
+1985,"7480000000000004FF6100000000000000F8","7480000000000004FF6400000000000000F8"
+1987,"7480000000000004FF6400000000000000F8","7480000000000004FF6600000000000000F8"
+1989,"7480000000000004FF6600000000000000F8","7480000000000004FF6800000000000000F8"
+1991,"7480000000000004FF6800000000000000F8","7480000000000004FF6A00000000000000F8"
+1995,"7480000000000004FF6A00000000000000F8","7480000000000004FF6C00000000000000F8"
+1993,"7480000000000004FF6C00000000000000F8","7480000000000004FF6D00000000000000F8"
+1997,"7480000000000004FF6D00000000000000F8","7480000000000004FF7000000000000000F8"
+1999,"7480000000000004FF7000000000000000F8","7480000000000004FF7200000000000000F8"
+2001,"7480000000000004FF7200000000000000F8","7480000000000004FF7400000000000000F8"
+2003,"7480000000000004FF7400000000000000F8","7480000000000004FF7600000000000000F8"
+2005,"7480000000000004FF7600000000000000F8","7480000000000004FF7800000000000000F8"
+2011,"7480000000000004FF7800000000000000F8","7480000000000004FF7A00000000000000F8"
+2007,"7480000000000004FF7A00000000000000F8","7480000000000004FF7C00000000000000F8"
+2013,"7480000000000004FF7C00000000000000F8","7480000000000004FF7E00000000000000F8"
+2015,"7480000000000004FF7E00000000000000F8","7480000000000004FF8000000000000000F8"
+2019,"7480000000000004FF8000000000000000F8","7480000000000004FF8200000000000000F8"
+2017,"7480000000000004FF8200000000000000F8","7480000000000004FF8300000000000000F8"
+2021,"7480000000000004FF8300000000000000F8","7480000000000004FF8600000000000000F8"
+2023,"7480000000000004FF8600000000000000F8","7480000000000004FF8800000000000000F8"
+2025,"7480000000000004FF8800000000000000F8","7480000000000004FF8A00000000000000F8"
+2027,"7480000000000004FF8A00000000000000F8","7480000000000004FF8C00000000000000F8"
+2029,"7480000000000004FF8C00000000000000F8","7480000000000004FF8E00000000000000F8"
+2033,"7480000000000004FF8E00000000000000F8","7480000000000004FF9000000000000000F8"
+2035,"7480000000000004FF9000000000000000F8","7480000000000004FF9200000000000000F8"
+2037,"7480000000000004FF9200000000000000F8","7480000000000004FF9400000000000000F8"
+2039,"7480000000000004FF9400000000000000F8","7480000000000004FF9600000000000000F8"
+2041,"7480000000000004FF9600000000000000F8","7480000000000004FF9800000000000000F8"
+2047,"7480000000000004FF9800000000000000F8","7480000000000004FF9A00000000000000F8"
+2043,"7480000000000004FF9A00000000000000F8","7480000000000004FF9B00000000000000F8"
+2049,"7480000000000004FF9B00000000000000F8","7480000000000004FF9E00000000000000F8"
+2051,"7480000000000004FF9E00000000000000F8","7480000000000004FFA000000000000000F8"
+2055,"7480000000000004FFA000000000000000F8","7480000000000004FFA200000000000000F8"
+2053,"7480000000000004FFA200000000000000F8","7480000000000004FFA300000000000000F8"
+2057,"7480000000000004FFA300000000000000F8","7480000000000004FFA600000000000000F8"
+2061,"7480000000000004FFA600000000000000F8","7480000000000004FFA800000000000000F8"
+2063,"7480000000000004FFA800000000000000F8","7480000000000004FFAA00000000000000F8"
+2065,"7480000000000004FFAA00000000000000F8","7480000000000004FFAC00000000000000F8"
+2075,"7480000000000004FFAC00000000000000F8","7480000000000004FFAE00000000000000F8"
+2059,"7480000000000004FFAE00000000000000F8","7480000000000004FFAF00000000000000F8"
+2073,"7480000000000004FFAF00000000000000F8","7480000000000004FFB200000000000000F8"
+2067,"7480000000000004FFB200000000000000F8","7480000000000004FFB400000000000000F8"
+2069,"7480000000000004FFB400000000000000F8","7480000000000004FFB600000000000000F8"
+2071,"7480000000000004FFB600000000000000F8","7480000000000004FFB800000000000000F8"
+2077,"7480000000000004FFB800000000000000F8","7480000000000004FFBA00000000000000F8"
+2081,"7480000000000004FFBA00000000000000F8","7480000000000004FFBB00000000000000F8"
+2083,"7480000000000004FFBB00000000000000F8","7480000000000004FFBE00000000000000F8"
+2085,"7480000000000004FFBE00000000000000F8","7480000000000004FFC000000000000000F8"
+2087,"7480000000000004FFC000000000000000F8","7480000000000004FFC200000000000000F8"
+2089,"7480000000000004FFC200000000000000F8","7480000000000004FFC400000000000000F8"
+2099,"7480000000000004FFC400000000000000F8","7480000000000004FFC600000000000000F8"
+2103,"7480000000000004FFC600000000000000F8","7480000000000004FFC800000000000000F8"
+2091,"7480000000000004FFC800000000000000F8","7480000000000004FFCA00000000000000F8"
+2097,"7480000000000004FFCA00000000000000F8","7480000000000004FFCC00000000000000F8"
+2105,"7480000000000004FFCC00000000000000F8","7480000000000004FFCE00000000000000F8"
+2107,"7480000000000004FFCE00000000000000F8","7480000000000004FFD000000000000000F8"
+2109,"7480000000000004FFD000000000000000F8","7480000000000004FFD200000000000000F8"
+2111,"7480000000000004FFD200000000000000F8","7480000000000004FFD400000000000000F8"
+2123,"7480000000000004FFD400000000000000F8","7480000000000004FFD600000000000000F8"
+2115,"7480000000000004FFD600000000000000F8","7480000000000004FFD700000000000000F8"
+2121,"7480000000000004FFD700000000000000F8","7480000000000004FFDA00000000000000F8"
+2113,"7480000000000004FFDA00000000000000F8","7480000000000004FFDB00000000000000F8"
+2125,"7480000000000004FFDB00000000000000F8","7480000000000004FFDE00000000000000F8"
+2127,"7480000000000004FFDE00000000000000F8","7480000000000004FFE000000000000000F8"
+2129,"7480000000000004FFE000000000000000F8","7480000000000004FFE200000000000000F8"
+2131,"7480000000000004FFE200000000000000F8","7480000000000004FFE400000000000000F8"
+2179,"7480000000000004FFE400000000000000F8","7480000000000004FFE600000000000000F8"
+2169,"7480000000000004FFE600000000000000F8","7480000000000004FFE700000000000000F8"
+2177,"7480000000000004FFE700000000000000F8","7480000000000004FFE800000000000000F8"
+2191,"7480000000000004FFE800000000000000F8","7480000000000004FFE900000000000000F8"
+2181,"7480000000000004FFE900000000000000F8","7480000000000004FFEA00000000000000F8"
+2173,"7480000000000004FFEA00000000000000F8","7480000000000004FFEB00000000000000F8"
+2189,"7480000000000004FFEB00000000000000F8","7480000000000004FFEC00000000000000F8"
+2185,"7480000000000004FFEC00000000000000F8","7480000000000004FFED00000000000000F8"
+2163,"7480000000000004FFED00000000000000F8","7480000000000004FFEE00000000000000F8"
+2133,"7480000000000004FFEE00000000000000F8","7480000000000004FFEF00000000000000F8"
+2161,"7480000000000004FFEF00000000000000F8","7480000000000004FFF100000000000000F8"
+2135,"7480000000000004FFF100000000000000F8","7480000000000004FFF200000000000000F8"
+2137,"7480000000000004FFF200000000000000F8","7480000000000004FFF400000000000000F8"
+2145,"7480000000000004FFF400000000000000F8","7480000000000004FFF600000000000000F8"
+2141,"7480000000000004FFF600000000000000F8","7480000000000004FFF700000000000000F8"
+2139,"7480000000000004FFF700000000000000F8","7480000000000004FFF800000000000000F8"
+2143,"7480000000000004FFF800000000000000F8","7480000000000004FFFB00000000000000F8"
+2147,"7480000000000004FFFB00000000000000F8","7480000000000004FFFE00000000000000F8"
+2149,"7480000000000004FFFE00000000000000F8","7480000000000005FF0000000000000000F8"
+2171,"7480000000000005FF0000000000000000F8","7480000000000005FF0200000000000000F8"
+2151,"7480000000000005FF0200000000000000F8","7480000000000005FF0300000000000000F8"
+2157,"7480000000000005FF0300000000000000F8","7480000000000005FF0400000000000000F8"
+2153,"7480000000000005FF0400000000000000F8","7480000000000005FF0500000000000000F8"
+2155,"7480000000000005FF0500000000000000F8","7480000000000005FF0800000000000000F8"
+2159,"7480000000000005FF0800000000000000F8","7480000000000005FF0B00000000000000F8"
+2165,"7480000000000005FF0B00000000000000F8","7480000000000005FF0E00000000000000F8"
+2167,"7480000000000005FF0E00000000000000F8","7480000000000005FF1100000000000000F8"
+2183,"7480000000000005FF1100000000000000F8","7480000000000005FF1900000000000000F8"
+2193,"7480000000000005FF1900000000000000F8","7480000000000005FF1E00000000000000F8"
+2195,"7480000000000005FF1E00000000000000F8","7480000000000005FF2000000000000000F8"
+2197,"7480000000000005FF2000000000000000F8","7480000000000005FF2200000000000000F8"
+2199,"7480000000000005FF2200000000000000F8","7480000000000005FF2400000000000000F8"
+2241,"7480000000000005FF2400000000000000F8","7480000000000005FF2500000000000000F8"
+2235,"7480000000000005FF2500000000000000F8","7480000000000005FF2700000000000000F8"
+2245,"7480000000000005FF2700000000000000F8","7480000000000005FF2800000000000000F8"
+2203,"7480000000000005FF2800000000000000F8","7480000000000005FF2900000000000000F8"
+2231,"7480000000000005FF2900000000000000F8","7480000000000005FF2A00000000000000F8"
+2201,"7480000000000005FF2A00000000000000F8","7480000000000005FF2B00000000000000F8"
+2221,"7480000000000005FF2B00000000000000F8","7480000000000005FF2E00000000000000F8"
+2253,"7480000000000005FF2E00000000000000F8","7480000000000005FF2F00000000000000F8"
+2229,"7480000000000005FF2F00000000000000F8","7480000000000005FF3000000000000000F8"
+2247,"7480000000000005FF3000000000000000F8","7480000000000005FF3100000000000000F8"
+2239,"7480000000000005FF3100000000000000F8","7480000000000005FF3200000000000000F8"
+2205,"7480000000000005FF3200000000000000F8","7480000000000005FF3300000000000000F8"
+2207,"7480000000000005FF3300000000000000F8","7480000000000005FF3400000000000000F8"
+2211,"7480000000000005FF3400000000000000F8","7480000000000005FF3600000000000000F8"
+2249,"7480000000000005FF3600000000000000F8","7480000000000005FF3700000000000000F8"
+2209,"7480000000000005FF3700000000000000F8","7480000000000005FF3900000000000000F8"
+2225,"7480000000000005FF3900000000000000F8","7480000000000005FF3C00000000000000F8"
+2223,"7480000000000005FF3C00000000000000F8","7480000000000005FF3D00000000000000F8"
+2219,"7480000000000005FF3D00000000000000F8","7480000000000005FF3E00000000000000F8"
+2227,"7480000000000005FF3E00000000000000F8","7480000000000005FF3F00000000000000F8"
+2213,"7480000000000005FF3F00000000000000F8","7480000000000005FF4000000000000000F8"
+2215,"7480000000000005FF4000000000000000F8","7480000000000005FF4200000000000000F8"
+2217,"7480000000000005FF4200000000000000F8","7480000000000005FF4400000000000000F8"
+2243,"7480000000000005FF4400000000000000F8","7480000000000005FF5000000000000000F8"
+2251,"7480000000000005FF5000000000000000F8","7480000000000005FF5500000000000000F8"
+2255,"7480000000000005FF5500000000000000F8","7480000000000005FF5800000000000000F8"
+2257,"7480000000000005FF5800000000000000F8","7480000000000005FF5A00000000000000F8"
+2259,"7480000000000005FF5A00000000000000F8","7480000000000005FF5C00000000000000F8"
+2265,"7480000000000005FF5C00000000000000F8","7480000000000005FF5E00000000000000F8"
+2333,"7480000000000005FF5E00000000000000F8","7480000000000005FF6000000000000000F8"
+2329,"7480000000000005FF6000000000000000F8","7480000000000005FF6100000000000000F8"
+2291,"7480000000000005FF6100000000000000F8","7480000000000005FF6200000000000000F8"
+2261,"7480000000000005FF6200000000000000F8","7480000000000005FF6300000000000000F8"
+2355,"7480000000000005FF6300000000000000F8","7480000000000005FF6500000000000000F8"
+2325,"7480000000000005FF6500000000000000F8","7480000000000005FF6600000000000000F8"
+2263,"7480000000000005FF6600000000000000F8","7480000000000005FF6700000000000000F8"
+2351,"7480000000000005FF6700000000000000F8","7480000000000005FF6800000000000000F8"
+2315,"7480000000000005FF6800000000000000F8","7480000000000005FF6900000000000000F8"
+2345,"7480000000000005FF6900000000000000F8","7480000000000005FF6B00000000000000F8"
+2341,"7480000000000005FF6B00000000000000F8","7480000000000005FF6C00000000000000F8"
+2269,"7480000000000005FF6C00000000000000F8","7480000000000005FF6D00000000000000F8"
+2331,"7480000000000005FF6D00000000000000F8","7480000000000005FF6E00000000000000F8"
+2267,"7480000000000005FF6E00000000000000F8","7480000000000005FF6F00000000000000F8"
+2271,"7480000000000005FF6F00000000000000F8","7480000000000005FF7100000000000000F8"
+2299,"7480000000000005FF7100000000000000F8","7480000000000005FF7400000000000000F8"
+2273,"7480000000000005FF7400000000000000F8","7480000000000005FF7500000000000000F8"
+2293,"7480000000000005FF7500000000000000F8","7480000000000005FF7700000000000000F8"
+2275,"7480000000000005FF7700000000000000F8","7480000000000005FF7800000000000000F8"
+2277,"7480000000000005FF7800000000000000F8","7480000000000005FF7A00000000000000F8"
+2279,"7480000000000005FF7A00000000000000F8","7480000000000005FF7C00000000000000F8"
+2281,"7480000000000005FF7C00000000000000F8","7480000000000005FF7E00000000000000F8"
+2287,"7480000000000005FF7E00000000000000F8","7480000000000005FF8000000000000000F8"
+2283,"7480000000000005FF8000000000000000F8","7480000000000005FF8100000000000000F8"
+2289,"7480000000000005FF8100000000000000F8","7480000000000005FF8300000000000000F8"
+2285,"7480000000000005FF8300000000000000F8","7480000000000005FF8400000000000000F8"
+2309,"7480000000000005FF8400000000000000F8","7480000000000005FF8A00000000000000F8"
+2295,"7480000000000005FF8A00000000000000F8","7480000000000005FF8B00000000000000F8"
+2311,"7480000000000005FF8B00000000000000F8","7480000000000005FF8D00000000000000F8"
+2297,"7480000000000005FF8D00000000000000F8","7480000000000005FF8E00000000000000F8"
+2301,"7480000000000005FF8E00000000000000F8","7480000000000005FF9000000000000000F8"
+2307,"7480000000000005FF9000000000000000F8","7480000000000005FF9100000000000000F8"
+2305,"7480000000000005FF9100000000000000F8","7480000000000005FF9200000000000000F8"
+2303,"7480000000000005FF9200000000000000F8","7480000000000005FF9500000000000000F8"
+2339,"7480000000000005FF9500000000000000F8","7480000000000005FF9B00000000000000F8"
+2349,"7480000000000005FF9B00000000000000F8","7480000000000005FF9C00000000000000F8"
+2361,"7480000000000005FF9C00000000000000F8","7480000000000005FF9D00000000000000F8"
+2313,"7480000000000005FF9D00000000000000F8","7480000000000005FF9E00000000000000F8"
+2317,"7480000000000005FF9E00000000000000F8","7480000000000005FFA000000000000000F8"
+2347,"7480000000000005FFA000000000000000F8","7480000000000005FFA100000000000000F8"
+2321,"7480000000000005FFA100000000000000F8","7480000000000005FFA400000000000000F8"
+2319,"7480000000000005FFA400000000000000F8","7480000000000005FFA500000000000000F8"
+2337,"7480000000000005FFA500000000000000F8","7480000000000005FFA700000000000000F8"
+2323,"7480000000000005FFA700000000000000F8","7480000000000005FFA800000000000000F8"
+2327,"7480000000000005FFA800000000000000F8","7480000000000005FFAB00000000000000F8"
+2335,"7480000000000005FFAB00000000000000F8","7480000000000005FFB000000000000000F8"
+2343,"7480000000000005FFB000000000000000F8","7480000000000005FFB500000000000000F8"
+2353,"7480000000000005FFB500000000000000F8","7480000000000005FFBD00000000000000F8"
+2357,"7480000000000005FFBD00000000000000F8","7480000000000005FFC000000000000000F8"
+2359,"7480000000000005FFC000000000000000F8","7480000000000005FFC200000000000000F8"
+2363,"7480000000000005FFC200000000000000F8","7480000000000005FFC400000000000000F8"
+2365,"7480000000000005FFC400000000000000F8","7480000000000005FFC600000000000000F8"
+2367,"7480000000000005FFC600000000000000F8","7480000000000005FFC800000000000000F8"
+2369,"7480000000000005FFC800000000000000F8","7480000000000005FFCA00000000000000F8"
+2377,"7480000000000005FFCA00000000000000F8","7480000000000005FFCC00000000000000F8"
+2373,"7480000000000005FFCC00000000000000F8","7480000000000005FFCD00000000000000F8"
+2371,"7480000000000005FFCD00000000000000F8","7480000000000005FFCE00000000000000F8"
+2379,"7480000000000005FFCE00000000000000F8","7480000000000005FFD200000000000000F8"
+2381,"7480000000000005FFD200000000000000F8","7480000000000005FFD400000000000000F8"
+2383,"7480000000000005FFD400000000000000F8","7480000000000005FFD600000000000000F8"
+2385,"7480000000000005FFD600000000000000F8","7480000000000005FFD800000000000000F8"
+2391,"7480000000000005FFD800000000000000F8","7480000000000005FFDA00000000000000F8"
+2395,"7480000000000005FFDA00000000000000F8","7480000000000005FFDB00000000000000F8"
+2397,"7480000000000005FFDB00000000000000F8","7480000000000005FFDE00000000000000F8"
+2399,"7480000000000005FFDE00000000000000F8","7480000000000005FFE000000000000000F8"
+2401,"7480000000000005FFE000000000000000F8","7480000000000005FFE200000000000000F8"
+2403,"7480000000000005FFE200000000000000F8","7480000000000005FFE400000000000000F8"
+2405,"7480000000000005FFE400000000000000F8","7480000000000005FFE600000000000000F8"
+2409,"7480000000000005FFE600000000000000F8","7480000000000005FFE800000000000000F8"
+2411,"7480000000000005FFE800000000000000F8","7480000000000005FFEA00000000000000F8"
+2413,"7480000000000005FFEA00000000000000F8","7480000000000005FFEC00000000000000F8"
+2407,"7480000000000005FFEC00000000000000F8","7480000000000005FFED00000000000000F8"
+2415,"7480000000000005FFED00000000000000F8","7480000000000005FFF000000000000000F8"
+2417,"7480000000000005FFF000000000000000F8","7480000000000005FFF200000000000000F8"
+2421,"7480000000000005FFF200000000000000F8","7480000000000005FFF400000000000000F8"
+2419,"7480000000000005FFF400000000000000F8","7480000000000005FFF600000000000000F8"
+2429,"7480000000000005FFF600000000000000F8","7480000000000005FFF800000000000000F8"
+2425,"7480000000000005FFF800000000000000F8","7480000000000005FFF900000000000000F8"
+2423,"7480000000000005FFF900000000000000F8","7480000000000005FFFB00000000000000F8"
+2431,"7480000000000005FFFB00000000000000F8","7480000000000005FFFE00000000000000F8"
+2433,"7480000000000005FFFE00000000000000F8","7480000000000006FF0000000000000000F8"
+2435,"7480000000000006FF0000000000000000F8","7480000000000006FF0200000000000000F8"
+2437,"7480000000000006FF0200000000000000F8","7480000000000006FF0400000000000000F8"
+2439,"7480000000000006FF0400000000000000F8","7480000000000006FF0600000000000000F8"
+2441,"7480000000000006FF0600000000000000F8","7480000000000006FF0800000000000000F8"
+2443,"7480000000000006FF0800000000000000F8","7480000000000006FF0A00000000000000F8"
+2445,"7480000000000006FF0A00000000000000F8","7480000000000006FF0C00000000000000F8"
+2449,"7480000000000006FF0C00000000000000F8","7480000000000006FF0E00000000000000F8"
+2447,"7480000000000006FF0E00000000000000F8","7480000000000006FF0F00000000000000F8"
+2451,"7480000000000006FF0F00000000000000F8","7480000000000006FF1200000000000000F8"
+2453,"7480000000000006FF1200000000000000F8","7480000000000006FF1400000000000000F8"
+2459,"7480000000000006FF1400000000000000F8","7480000000000006FF1600000000000000F8"
+2461,"7480000000000006FF1600000000000000F8","7480000000000006FF1800000000000000F8"
+2469,"7480000000000006FF1800000000000000F8","7480000000000006FF1A00000000000000F8"
+2463,"7480000000000006FF1A00000000000000F8","7480000000000006FF1B00000000000000F8"
+2455,"7480000000000006FF1B00000000000000F8","7480000000000006FF1C00000000000000F8"
+2457,"7480000000000006FF1C00000000000000F8","7480000000000006FF1D00000000000000F8"
+2465,"7480000000000006FF1D00000000000000F8","7480000000000006FF2100000000000000F8"
+2467,"7480000000000006FF2100000000000000F8","7480000000000006FF2300000000000000F8"
+2475,"7480000000000006FF2300000000000000F8","7480000000000006FF2600000000000000F8"
+2471,"7480000000000006FF2600000000000000F8","7480000000000006FF2800000000000000F8"
+2477,"7480000000000006FF2800000000000000F8","7480000000000006FF2A00000000000000F8"
+2479,"7480000000000006FF2A00000000000000F8","7480000000000006FF2C00000000000000F8"
+2481,"7480000000000006FF2C00000000000000F8","7480000000000006FF2E00000000000000F8"
+2483,"7480000000000006FF2E00000000000000F8","7480000000000006FF3000000000000000F8"
+2485,"7480000000000006FF3000000000000000F8","7480000000000006FF3200000000000000F8"
+2487,"7480000000000006FF3200000000000000F8","7480000000000006FF3400000000000000F8"
+2495,"7480000000000006FF3400000000000000F8","7480000000000006FF3600000000000000F8"
+2489,"7480000000000006FF3600000000000000F8","7480000000000006FF3700000000000000F8"
+2497,"7480000000000006FF3700000000000000F8","7480000000000006FF3A00000000000000F8"
+2499,"7480000000000006FF3A00000000000000F8","7480000000000006FF3C00000000000000F8"
+2491,"7480000000000006FF3C00000000000000F8","7480000000000006FF3E00000000000000F8"
+2513,"7480000000000006FF3E00000000000000F8","7480000000000006FF4000000000000000F8"
+2501,"7480000000000006FF4000000000000000F8","7480000000000006FF4100000000000000F8"
+2507,"7480000000000006FF4100000000000000F8","7480000000000006FF4300000000000000F8"
+2511,"7480000000000006FF4300000000000000F8","7480000000000006FF4400000000000000F8"
+2503,"7480000000000006FF4400000000000000F8","7480000000000006FF4500000000000000F8"
+2505,"7480000000000006FF4500000000000000F8","7480000000000006FF4700000000000000F8"
+2515,"7480000000000006FF4700000000000000F8","7480000000000006FF4C00000000000000F8"
+2517,"7480000000000006FF4C00000000000000F8","7480000000000006FF4E00000000000000F8"
+2519,"7480000000000006FF4E00000000000000F8","7480000000000006FF5000000000000000F8"
+2521,"7480000000000006FF5000000000000000F8","7480000000000006FF5200000000000000F8"
+2523,"7480000000000006FF5200000000000000F8","7480000000000006FF5400000000000000F8"
+2525,"7480000000000006FF5400000000000000F8","7480000000000006FF5600000000000000F8"
+2531,"7480000000000006FF5600000000000000F8","7480000000000006FF5800000000000000F8"
+2527,"7480000000000006FF5800000000000000F8","7480000000000006FF5900000000000000F8"
+2549,"7480000000000006FF5900000000000000F8","7480000000000006FF5B00000000000000F8"
+2529,"7480000000000006FF5B00000000000000F8","7480000000000006FF5C00000000000000F8"
+2547,"7480000000000006FF5C00000000000000F8","7480000000000006FF5F00000000000000F8"
+2563,"7480000000000006FF5F00000000000000F8","7480000000000006FF6000000000000000F8"
+2533,"7480000000000006FF6000000000000000F8","7480000000000006FF6100000000000000F8"
+2553,"7480000000000006FF6100000000000000F8","7480000000000006FF6200000000000000F8"
+2555,"7480000000000006FF6200000000000000F8","7480000000000006FF6400000000000000F8"
+2567,"7480000000000006FF6400000000000000F8","7480000000000006FF6500000000000000F8"
+2557,"7480000000000006FF6500000000000000F8","7480000000000006FF6600000000000000F8"
+2559,"7480000000000006FF6600000000000000F8","7480000000000006FF6700000000000000F8"
+2565,"7480000000000006FF6700000000000000F8","7480000000000006FF6800000000000000F8"
+2561,"7480000000000006FF6800000000000000F8","7480000000000006FF6900000000000000F8"
+2545,"7480000000000006FF6900000000000000F8","7480000000000006FF6A00000000000000F8"
+2541,"7480000000000006FF6A00000000000000F8","7480000000000006FF6B00000000000000F8"
+2535,"7480000000000006FF6B00000000000000F8","7480000000000006FF6C00000000000000F8"
+2537,"7480000000000006FF6C00000000000000F8","7480000000000006FF6E00000000000000F8"
+2539,"7480000000000006FF6E00000000000000F8","7480000000000006FF7000000000000000F8"
+2543,"7480000000000006FF7000000000000000F8","7480000000000006FF7300000000000000F8"
+2551,"7480000000000006FF7300000000000000F8","7480000000000006FF7800000000000000F8"
+2571,"7480000000000006FF7800000000000000F8","7480000000000006FF8200000000000000F8"
+2573,"7480000000000006FF8200000000000000F8","7480000000000006FF8400000000000000F8"
+2575,"7480000000000006FF8400000000000000F8","7480000000000006FF8600000000000000F8"
+2569,"7480000000000006FF8600000000000000F8","7480000000000006FF8800000000000000F8"
+2577,"7480000000000006FF8800000000000000F8","7480000000000006FF8A00000000000000F8"
+2579,"7480000000000006FF8A00000000000000F8","7480000000000006FF8C00000000000000F8"
+2583,"7480000000000006FF8C00000000000000F8","7480000000000006FF8D00000000000000F8"
+2589,"7480000000000006FF8D00000000000000F8","7480000000000006FF9000000000000000F8"
+2585,"7480000000000006FF9000000000000000F8","7480000000000006FF9100000000000000F8"
+2591,"7480000000000006FF9100000000000000F8","7480000000000006FF9400000000000000F8"
+2593,"7480000000000006FF9400000000000000F8","7480000000000006FF9600000000000000F8"
+2595,"7480000000000006FF9600000000000000F8","7480000000000006FF9800000000000000F8"
+2599,"7480000000000006FF9800000000000000F8","7480000000000006FF9A00000000000000F8"
+2587,"7480000000000006FF9A00000000000000F8","7480000000000006FF9C00000000000000F8"
+2603,"7480000000000006FF9C00000000000000F8","7480000000000006FF9E00000000000000F8"
+2605,"7480000000000006FF9E00000000000000F8","7480000000000006FFA000000000000000F8"
+2607,"7480000000000006FFA000000000000000F8","7480000000000006FFA200000000000000F8"
+2609,"7480000000000006FFA200000000000000F8","7480000000000006FFA300000000000000F8"
+2597,"7480000000000006FFA300000000000000F8","7480000000000006FFA400000000000000F8"
+2601,"7480000000000006FFA400000000000000F8","7480000000000006FFA600000000000000F8"
+2611,"7480000000000006FFA600000000000000F8","7480000000000006FFA900000000000000F8"
+2615,"7480000000000006FFA900000000000000F8","7480000000000006FFAC00000000000000F8"
+2613,"7480000000000006FFAC00000000000000F8","7480000000000006FFAD00000000000000F8"
+2617,"7480000000000006FFAD00000000000000F8","7480000000000006FFB000000000000000F8"
+2619,"7480000000000006FFB000000000000000F8","7480000000000006FFB200000000000000F8"
+2625,"7480000000000006FFB200000000000000F8","7480000000000006FFB400000000000000F8"
+2621,"7480000000000006FFB400000000000000F8","7480000000000006FFB600000000000000F8"
+2627,"7480000000000006FFB600000000000000F8","7480000000000006FFB800000000000000F8"
+2629,"7480000000000006FFB800000000000000F8","7480000000000006FFBA00000000000000F8"
+2637,"7480000000000006FFBA00000000000000F8","7480000000000006FFBC00000000000000F8"
+2639,"7480000000000006FFBC00000000000000F8","7480000000000006FFBE00000000000000F8"
+2633,"7480000000000006FFBE00000000000000F8","7480000000000006FFC000000000000000F8"
+2641,"7480000000000006FFC000000000000000F8","7480000000000006FFC100000000000000F8"
+2631,"7480000000000006FFC100000000000000F8","7480000000000006FFC200000000000000F8"
+2693,"7480000000000006FFC200000000000000F8","7480000000000006FFC500000000000000F8"
+2667,"7480000000000006FFC500000000000000F8","7480000000000006FFC700000000000000F8"
+2643,"7480000000000006FFC700000000000000F8","7480000000000006FFC800000000000000F8"
+2671,"7480000000000006FFC800000000000000F8","7480000000000006FFC900000000000000F8"
+2711,"7480000000000006FFC900000000000000F8","7480000000000006FFCA00000000000000F8"
+2645,"7480000000000006FFCA00000000000000F8","7480000000000006FFCB00000000000000F8"
+2705,"7480000000000006FFCB00000000000000F8","7480000000000006FFCE00000000000000F8"
+2707,"7480000000000006FFCE00000000000000F8","7480000000000006FFCF00000000000000F8"
+2647,"7480000000000006FFCF00000000000000F8","7480000000000006FFD000000000000000F8"
+2701,"7480000000000006FFD000000000000000F8","7480000000000006FFD100000000000000F8"
+2695,"7480000000000006FFD100000000000000F8","7480000000000006FFD300000000000000F8"
+2709,"7480000000000006FFD300000000000000F8","7480000000000006FFD400000000000000F8"
+2651,"7480000000000006FFD400000000000000F8","7480000000000006FFD500000000000000F8"
+2665,"7480000000000006FFD500000000000000F8","7480000000000006FFD600000000000000F8"
+2649,"7480000000000006FFD600000000000000F8","7480000000000006FFD700000000000000F8"
+2653,"7480000000000006FFD700000000000000F8","7480000000000006FFDA00000000000000F8"
+2679,"7480000000000006FFDA00000000000000F8","7480000000000006FFDB00000000000000F8"
+2657,"7480000000000006FFDB00000000000000F8","7480000000000006FFDD00000000000000F8"
+2655,"7480000000000006FFDD00000000000000F8","7480000000000006FFDE00000000000000F8"
+2691,"7480000000000006FFDE00000000000000F8","7480000000000006FFE100000000000000F8"
+2699,"7480000000000006FFE100000000000000F8","7480000000000006FFE200000000000000F8"
+2659,"7480000000000006FFE200000000000000F8","7480000000000006FFE300000000000000F8"
+2663,"7480000000000006FFE300000000000000F8","7480000000000006FFE500000000000000F8"
+2661,"7480000000000006FFE500000000000000F8","7480000000000006FFE600000000000000F8"
+2669,"7480000000000006FFE600000000000000F8","7480000000000006FFEB00000000000000F8"
+2683,"7480000000000006FFEB00000000000000F8","7480000000000006FFEE00000000000000F8"
+2697,"7480000000000006FFEE00000000000000F8","7480000000000006FFEF00000000000000F8"
+2681,"7480000000000006FFEF00000000000000F8","7480000000000006FFF000000000000000F8"
+2703,"7480000000000006FFF000000000000000F8","7480000000000006FFF100000000000000F8"
+2673,"7480000000000006FFF100000000000000F8","7480000000000006FFF200000000000000F8"
+2675,"7480000000000006FFF200000000000000F8","7480000000000006FFF400000000000000F8"
+2677,"7480000000000006FFF400000000000000F8","7480000000000006FFF600000000000000F8"
+2687,"7480000000000006FFF600000000000000F8","7480000000000006FFFB00000000000000F8"
+2685,"7480000000000006FFFB00000000000000F8","7480000000000006FFFC00000000000000F8"
+2689,"7480000000000006FFFC00000000000000F8","7480000000000006FFFF00000000000000F8"
+2713,"7480000000000006FFFF00000000000000F8","7480000000000007FF0C00000000000000F8"
+2715,"7480000000000007FF0C00000000000000F8","7480000000000007FF0E00000000000000F8"
+2717,"7480000000000007FF0E00000000000000F8","7480000000000007FF1000000000000000F8"
+2719,"7480000000000007FF1000000000000000F8","7480000000000007FF1200000000000000F8"
+2721,"7480000000000007FF1200000000000000F8","7480000000000007FF1400000000000000F8"
+2723,"7480000000000007FF1400000000000000F8","7480000000000007FF1600000000000000F8"
+2725,"7480000000000007FF1600000000000000F8","7480000000000007FF1800000000000000F8"
+2727,"7480000000000007FF1800000000000000F8","7480000000000007FF1A00000000000000F8"
+2729,"7480000000000007FF1A00000000000000F8","7480000000000007FF1C00000000000000F8"
+2731,"7480000000000007FF1C00000000000000F8","7480000000000007FF1E00000000000000F8"
+2733,"7480000000000007FF1E00000000000000F8","7480000000000007FF2000000000000000F8"
+2735,"7480000000000007FF2000000000000000F8","7480000000000007FF2100000000000000F8"
+2739,"7480000000000007FF2100000000000000F8","7480000000000007FF2400000000000000F8"
+2741,"7480000000000007FF2400000000000000F8","7480000000000007FF2600000000000000F8"
+2745,"7480000000000007FF2600000000000000F8","7480000000000007FF2800000000000000F8"
+2743,"7480000000000007FF2800000000000000F8","7480000000000007FF2900000000000000F8"
+2753,"7480000000000007FF2900000000000000F8","7480000000000007FF2C00000000000000F8"
+2747,"7480000000000007FF2C00000000000000F8","7480000000000007FF2D00000000000000F8"
+2751,"7480000000000007FF2D00000000000000F8","7480000000000007FF2F00000000000000F8"
+2755,"7480000000000007FF2F00000000000000F8","7480000000000007FF3200000000000000F8"
+2763,"7480000000000007FF3200000000000000F8","7480000000000007FF3400000000000000F8"
+2765,"7480000000000007FF3400000000000000F8","7480000000000007FF3600000000000000F8"
+2759,"7480000000000007FF3600000000000000F8","7480000000000007FF3800000000000000F8"
+2757,"7480000000000007FF3800000000000000F8","7480000000000007FF3900000000000000F8"
+2761,"7480000000000007FF3900000000000000F8","7480000000000007FF3B00000000000000F8"
+2767,"7480000000000007FF3B00000000000000F8","7480000000000007FF3E00000000000000F8"
+2769,"7480000000000007FF3E00000000000000F8","7480000000000007FF4000000000000000F8"
+2773,"7480000000000007FF4000000000000000F8","7480000000000007FF4200000000000000F8"
+2775,"7480000000000007FF4200000000000000F8","7480000000000007FF4300000000000000F8"
+2771,"7480000000000007FF4300000000000000F8","7480000000000007FF4400000000000000F8"
+2777,"7480000000000007FF4400000000000000F8","7480000000000007FF4700000000000000F8"
+2783,"7480000000000007FF4700000000000000F8","7480000000000007FF4A00000000000000F8"
+2779,"7480000000000007FF4A00000000000000F8","7480000000000007FF4C00000000000000F8"
+2789,"7480000000000007FF4C00000000000000F8","7480000000000007FF4D00000000000000F8"
+2787,"7480000000000007FF4D00000000000000F8","7480000000000007FF5000000000000000F8"
+2797,"7480000000000007FF5000000000000000F8","7480000000000007FF5200000000000000F8"
+2791,"7480000000000007FF5200000000000000F8","7480000000000007FF5400000000000000F8"
+2793,"7480000000000007FF5400000000000000F8","7480000000000007FF5600000000000000F8"
+2795,"7480000000000007FF5600000000000000F8","7480000000000007FF5800000000000000F8"
+2799,"7480000000000007FF5800000000000000F8","7480000000000007FF5A00000000000000F8"
+2801,"7480000000000007FF5A00000000000000F8","7480000000000007FF5C00000000000000F8"
+2803,"7480000000000007FF5C00000000000000F8","7480000000000007FF5E00000000000000F8"
+2805,"7480000000000007FF5E00000000000000F8","7480000000000007FF6000000000000000F8"
+2807,"7480000000000007FF6000000000000000F8","7480000000000007FF6200000000000000F8"
+2809,"7480000000000007FF6200000000000000F8","7480000000000007FF6400000000000000F8"
+2811,"7480000000000007FF6400000000000000F8","7480000000000007FF6600000000000000F8"
+2823,"7480000000000007FF6600000000000000F8","7480000000000007FF6800000000000000F8"
+2813,"7480000000000007FF6800000000000000F8","7480000000000007FF6A00000000000000F8"
+2815,"7480000000000007FF6A00000000000000F8","7480000000000007FF6B00000000000000F8"
+2821,"7480000000000007FF6B00000000000000F8","7480000000000007FF6E00000000000000F8"
+2817,"7480000000000007FF6E00000000000000F8","7480000000000007FF6F00000000000000F8"
+2825,"7480000000000007FF6F00000000000000F8","7480000000000007FF7200000000000000F8"
+2827,"7480000000000007FF7200000000000000F8","7480000000000007FF7400000000000000F8"
+2829,"7480000000000007FF7400000000000000F8","7480000000000007FF7600000000000000F8"
+2831,"7480000000000007FF7600000000000000F8","7480000000000007FF7800000000000000F8"
+2833,"7480000000000007FF7800000000000000F8","7480000000000007FF7A00000000000000F8"
+2839,"7480000000000007FF7A00000000000000F8","7480000000000007FF7B00000000000000F8"
+2843,"7480000000000007FF7B00000000000000F8","7480000000000007FF7C00000000000000F8"
+2837,"7480000000000007FF7C00000000000000F8","7480000000000007FF7E00000000000000F8"
+2835,"7480000000000007FF7E00000000000000F8","7480000000000007FF8000000000000000F8"
+2841,"7480000000000007FF8000000000000000F8","7480000000000007FF8300000000000000F8"
+2845,"7480000000000007FF8300000000000000F8","7480000000000007FF8600000000000000F8"
+2851,"7480000000000007FF8600000000000000F8","7480000000000007FF8800000000000000F8"
+2849,"7480000000000007FF8800000000000000F8","7480000000000007FF8900000000000000F8"
+2853,"7480000000000007FF8900000000000000F8","7480000000000007FF8C00000000000000F8"
+2857,"7480000000000007FF8C00000000000000F8","7480000000000007FF8E00000000000000F8"
+2859,"7480000000000007FF8E00000000000000F8","7480000000000007FF9000000000000000F8"
+2861,"7480000000000007FF9000000000000000F8","7480000000000007FF9200000000000000F8"
+2863,"7480000000000007FF9200000000000000F8","7480000000000007FF9400000000000000F8"
+2865,"7480000000000007FF9400000000000000F8","7480000000000007FF9600000000000000F8"
+2867,"7480000000000007FF9600000000000000F8","7480000000000007FF9800000000000000F8"
+2869,"7480000000000007FF9800000000000000F8","7480000000000007FF9A00000000000000F8"
+2871,"7480000000000007FF9A00000000000000F8","7480000000000007FF9C00000000000000F8"
+2873,"7480000000000007FF9C00000000000000F8","7480000000000007FF9E00000000000000F8"
+2875,"7480000000000007FF9E00000000000000F8","7480000000000007FFA000000000000000F8"
+2879,"7480000000000007FFA000000000000000F8","7480000000000007FFA200000000000000F8"
+2877,"7480000000000007FFA200000000000000F8","7480000000000007FFA300000000000000F8"
+2881,"7480000000000007FFA300000000000000F8","7480000000000007FFA600000000000000F8"
+2903,"7480000000000007FFA600000000000000F8","7480000000000007FFA800000000000000F8"
+2895,"7480000000000007FFA800000000000000F8","7480000000000007FFA900000000000000F8"
+2899,"7480000000000007FFA900000000000000F8","7480000000000007FFAA00000000000000F8"
+2901,"7480000000000007FFAA00000000000000F8","7480000000000007FFAB00000000000000F8"
+2891,"7480000000000007FFAB00000000000000F8","7480000000000007FFAC00000000000000F8"
+2907,"7480000000000007FFAC00000000000000F8","7480000000000007FFAD00000000000000F8"
+2909,"7480000000000007FFAD00000000000000F8","7480000000000007FFAE00000000000000F8"
+2885,"7480000000000007FFAE00000000000000F8","7480000000000007FFAF00000000000000F8"
+2905,"7480000000000007FFAF00000000000000F8","7480000000000007FFB000000000000000F8"
+2883,"7480000000000007FFB000000000000000F8","7480000000000007FFB100000000000000F8"
+2893,"7480000000000007FFB100000000000000F8","7480000000000007FFB300000000000000F8"
+2897,"7480000000000007FFB300000000000000F8","7480000000000007FFB400000000000000F8"
+2887,"7480000000000007FFB400000000000000F8","7480000000000007FFB500000000000000F8"
+2889,"7480000000000007FFB500000000000000F8","7480000000000007FFB700000000000000F8"
+2911,"7480000000000007FFB700000000000000F8","7480000000000007FFCB00000000000000F8"
+2913,"7480000000000007FFCB00000000000000F8","7480000000000007FFCF00000000000000F8"
+2915,"7480000000000007FFCF00000000000000F8","7480000000000007FFD100000000000000F8"
+2917,"7480000000000007FFD100000000000000F8","7480000000000007FFD600000000000000F8"
+2919,"7480000000000007FFD600000000000000F8","7480000000000007FFDF00000000000000F8"
+2921,"7480000000000007FFDF00000000000000F8","7480000000000007FFE300000000000000F8"
+2923,"7480000000000007FFE300000000000000F8","7480000000000007FFE500000000000000F8"
+2925,"7480000000000007FFE500000000000000F8","7480000000000007FFEA00000000000000F8"
+2927,"7480000000000007FFEA00000000000000F8","7480000000000007FFF700000000000000F8"
+2929,"7480000000000007FFF700000000000000F8","7480000000000007FFFB00000000000000F8"
+2931,"7480000000000007FFFB00000000000000F8","7480000000000008FF0000000000000000F8"
+2933,"7480000000000008FF0000000000000000F8","7480000000000008FF0600000000000000F8"
+2935,"7480000000000008FF0600000000000000F8","7480000000000008FF0E00000000000000F8"
+2937,"7480000000000008FF0E00000000000000F8","7480000000000008FF1300000000000000F8"
+2939,"7480000000000008FF1300000000000000F8","7480000000000008FF1800000000000000F8"
+2941,"7480000000000008FF1800000000000000F8","7480000000000008FF1A00000000000000F8"
+2943,"7480000000000008FF1A00000000000000F8","7480000000000008FF2200000000000000F8"
+2945,"7480000000000008FF2200000000000000F8","7480000000000008FF2700000000000000F8"
+2947,"7480000000000008FF2700000000000000F8","7480000000000008FF2E00000000000000F8"
+2949,"7480000000000008FF2E00000000000000F8","7480000000000008FF3000000000000000F8"
+4001,"7480000000000008FF3000000000000000F8","7480000000000008FF4300000000000000F8"
+4003,"7480000000000008FF4300000000000000F8","7480000000000008FF4400000000000000F8"
+4005,"7480000000000008FF4400000000000000F8","7480000000000008FF4500000000000000F8"
+4007,"7480000000000008FF4500000000000000F8","7480000000000008FF4600000000000000F8"
+4009,"7480000000000008FF4600000000000000F8","7480000000000008FF5000000000000000F8"
+4017,"7480000000000008FF5000000000000000F8","7480000000000008FF505F728000000000FF0EA6010000000000FA"
+4011,"7480000000000008FF505F728000000000FF0EA6010000000000FA","7480000000000008FF5100000000000000F8"
+4019,"7480000000000008FF5100000000000000F8","7480000000000008FF515F728000000000FF2D2A810000000000FA"
+4013,"7480000000000008FF515F728000000000FF2D2A810000000000FA","7480000000000008FF5200000000000000F8"
+4021,"7480000000000008FF5200000000000000F8","7480000000000008FF525F728000000000FF4BAF010000000000FA"
+4015,"7480000000000008FF525F728000000000FF4BAF010000000000FA","7480000000000008FF5300000000000000F8"
+4023,"7480000000000008FF5300000000000000F8","7480000000000008FF535F728000000000FF6A33810000000000FA"
+4025,"7480000000000008FF535F728000000000FF6A33810000000000FA","7480000000000008FF5500000000000000F8"
+5001,"7480000000000008FF5500000000000000F8","7480000000000008FF5800000000000000F8"
+5005,"7480000000000008FF5800000000000000F8","7480000000000008FF585F698000000000FF0000010380000000FF000EA60103800000FF00000EA601000000FC"
+5009,"7480000000000008FF585F698000000000FF0000010380000000FF000EA60103800000FF00000EA601000000FC","7480000000000008FF585F698000000000FF0000010380000000FF001D4C0103800000FF00001D4C01000000FC"
+5013,"7480000000000008FF585F698000000000FF0000010380000000FF001D4C0103800000FF00001D4C01000000FC","7480000000000008FF585F698000000000FF0000010380000000FF002BF20103800000FF00002BF201000000FC"
+5017,"7480000000000008FF585F698000000000FF0000010380000000FF002BF20103800000FF00002BF201000000FC","7480000000000008FF585F698000000000FF0000010380000000FF003A980103800000FF00003A9801000000FC"
+5021,"7480000000000008FF585F698000000000FF0000010380000000FF003A980103800000FF00003A9801000000FC","7480000000000008FF585F698000000000FF0000010380000000FF00493E0103800000FF0000493E01000000FC"
+5025,"7480000000000008FF585F698000000000FF0000010380000000FF00493E0103800000FF0000493E01000000FC","7480000000000008FF585F698000000000FF0000010380000000FF0057E40103800000FF000057E401000000FC"
+5029,"7480000000000008FF585F698000000000FF0000010380000000FF0057E40103800000FF000057E401000000FC","7480000000000008FF585F698000000000FF0000010380000000FF00668A0103800000FF0000668A01000000FC"
+5003,"7480000000000008FF585F698000000000FF0000010380000000FF00668A0103800000FF0000668A01000000FC","7480000000000008FF585F728000000000FF013EB00000000000FA"
+5007,"7480000000000008FF585F728000000000FF013EB00000000000FA","7480000000000008FF585F728000000000FF0FE4B00000000000FA"
+5011,"7480000000000008FF585F728000000000FF0FE4B00000000000FA","7480000000000008FF585F728000000000FF1E8AB00000000000FA"
+5015,"7480000000000008FF585F728000000000FF1E8AB00000000000FA","7480000000000008FF585F728000000000FF2D30B00000000000FA"
+5019,"7480000000000008FF585F728000000000FF2D30B00000000000FA","7480000000000008FF585F728000000000FF3BD6B00000000000FA"
+5023,"7480000000000008FF585F728000000000FF3BD6B00000000000FA","7480000000000008FF585F728000000000FF4A7CB00000000000FA"
+5027,"7480000000000008FF585F728000000000FF4A7CB00000000000FA","7480000000000008FF585F728000000000FF5922B00000000000FA"
+5031,"7480000000000008FF585F728000000000FF5922B00000000000FA","7480000000000008FF585F728000000000FF67C8B00000000000FA"
+5033,"7480000000000008FF585F728000000000FF67C8B00000000000FA","7480000000000008FF5B00000000000000F8"
+5043,"7480000000000008FF5B00000000000000F8","7480000000000008FF5B5F698000000000FF0000010380000000FF000EA60103800000FF00000EA601000000FC"
+5041,"7480000000000008FF5B5F698000000000FF0000010380000000FF000EA60103800000FF00000EA601000000FC","7480000000000008FF5B5F728000000000FF02BF210000000000FA"
+5045,"7480000000000008FF5B5F728000000000FF02BF210000000000FA","7480000000000008FF5B5F728000000000FF1165210000000000FA"
+5035,"7480000000000008FF5B5F728000000000FF1165210000000000FA","7480000000000008FF5C00000000000000F8"
+5049,"7480000000000008FF5C00000000000000F8","7480000000000008FF5C5F698000000000FF0000010380000000FF002D2A8103800000FF00002D2A81000000FC"
+5047,"7480000000000008FF5C5F698000000000FF0000010380000000FF002D2A8103800000FF00002D2A81000000FC","7480000000000008FF5C5F728000000000FF2191C10000000000FA"
+5051,"7480000000000008FF5C5F728000000000FF2191C10000000000FA","7480000000000008FF5C5F728000000000FF3037C10000000000FA"
+5037,"7480000000000008FF5C5F728000000000FF3037C10000000000FA","7480000000000008FF5D00000000000000F8"
+5057,"7480000000000008FF5D00000000000000F8","7480000000000008FF5D5F698000000000FF0000010380000000FF004BAF0103800000FF00004BAF01000000FC"
+5053,"7480000000000008FF5D5F698000000000FF0000010380000000FF004BAF0103800000FF00004BAF01000000FC","7480000000000008FF5D5F728000000000FF3F7A010000000000FA"
+5055,"7480000000000008FF5D5F728000000000FF3F7A010000000000FA","7480000000000008FF5D5F728000000000FF4E20010000000000FA"
+5039,"7480000000000008FF5D5F728000000000FF4E20010000000000FA","7480000000000008FF5E00000000000000F8"
+5061,"7480000000000008FF5E00000000000000F8","7480000000000008FF5E5F698000000000FF0000010380000000FF006A338103800000FF00006A3381000000FC"
+5059,"7480000000000008FF5E5F698000000000FF0000010380000000FF006A338103800000FF00006A3381000000FC","7480000000000008FF5E5F728000000000FF5E25910000000000FA"
+5063,"7480000000000008FF5E5F728000000000FF5E25910000000000FA","7480000000000008FF5E5F728000000000FF6CCB910000000000FA"
+2,"7480000000000008FF5E5F728000000000FF6CCB910000000000FA",""
diff --git a/v4/export/sql.go b/v4/export/sql.go
index 655d9c2..8f0bf9f 100644
--- a/v4/export/sql.go
+++ b/v4/export/sql.go
@@ -15,6 +15,8 @@ import (
 	tcontext "github.com/pingcap/dumpling/v4/context"
 
 	"github.com/pingcap/errors"
+	"github.com/pingcap/parser/model"
+	"github.com/pingcap/tidb/store/helper"
 	"go.uber.org/zap"
 )
 
@@ -473,6 +475,51 @@ func GetSpecifiedColumnValueAndClose(rows *sql.Rows, columnName string) ([]strin
 	return strs, errors.Trace(rows.Err())
 }
 
+// GetSpecifiedColumnValuesAndClose get columns' values whose name is equal to columnName
+func GetSpecifiedColumnValuesAndClose(rows *sql.Rows, columnName ...string) ([][]string, error) {
+	if rows == nil {
+		return [][]string{}, nil
+	}
+	defer rows.Close()
+	var strs [][]string
+	columns, err := rows.Columns()
+	if err != nil {
+		return strs, errors.Trace(err)
+	}
+	addr := make([]interface{}, len(columns))
+	oneRow := make([]sql.NullString, len(columns))
+	fieldIndexMp := make(map[int]int)
+	for i, col := range columns {
+		addr[i] = &oneRow[i]
+		for j, name := range columnName {
+			if strings.ToUpper(col) == name {
+				fieldIndexMp[i] = j
+			}
+		}
+	}
+	if len(fieldIndexMp) == 0 {
+		return strs, nil
+	}
+	for rows.Next() {
+		err := rows.Scan(addr...)
+		if err != nil {
+			return strs, errors.Trace(err)
+		}
+		written := false
+		tmpStr := make([]string, len(columnName))
+		for colPos, namePos := range fieldIndexMp {
+			if oneRow[colPos].Valid {
+				written = true
+				tmpStr[namePos] = oneRow[colPos].String
+			}
+		}
+		if written {
+			strs = append(strs, tmpStr)
+		}
+	}
+	return strs, errors.Trace(rows.Err())
+}
+
 // GetPdAddrs gets PD address from TiDB
 func GetPdAddrs(tctx *tcontext.Context, db *sql.DB) ([]string, error) {
 	query := "SELECT * FROM information_schema.cluster_info where type = 'pd';"
@@ -562,13 +609,7 @@ func resetDBWithSessionParams(tctx *tcontext.Context, db *sql.DB, dsn string, pa
 	}
 
 	newDB, err := sql.Open("mysql", dsn)
-	if err != nil {
-		return nil, errors.Trace(err)
-	}
-
-	db.Close()
-
-	return newDB, nil
+	return newDB, errors.Trace(err)
 }
 
 func createConnWithConsistency(ctx context.Context, db *sql.DB) (*sql.Conn, error) {
@@ -816,18 +857,18 @@ func simpleQuery(conn *sql.Conn, sql string, handleOneRow func(*sql.Rows) error)
 func simpleQueryWithArgs(conn *sql.Conn, handleOneRow func(*sql.Rows) error, sql string, args ...interface{}) error {
 	rows, err := conn.QueryContext(context.Background(), sql, args...)
 	if err != nil {
-		return errors.Annotatef(err, "sql: %s", sql)
+		return errors.Annotatef(err, "sql: %s, args: %s", sql, args)
 	}
 	defer rows.Close()
 
 	for rows.Next() {
 		if err := handleOneRow(rows); err != nil {
 			rows.Close()
-			return errors.Annotatef(err, "sql: %s", sql)
+			return errors.Annotatef(err, "sql: %s, args: %s", sql, args)
 		}
 	}
 	rows.Close()
-	return errors.Annotatef(rows.Err(), "sql: %s", sql)
+	return errors.Annotatef(rows.Err(), "sql: %s, args: %s", sql, args)
 }
 
 func pickupPossibleField(dbName, tableName string, db *sql.Conn, conf *Config) (string, error) {
@@ -1009,3 +1050,157 @@ func GetPartitionNames(db *sql.Conn, schema, table string) (partitions []string,
 	}, "SELECT PARTITION_NAME from INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?", schema, table)
 	return
 }
+
+// GetPartitionTableIDs get partition tableIDs through histograms.
+// SHOW STATS_HISTOGRAMS  has db_name,table_name,partition_name but doesn't have partition id
+// mysql.stats_histograms has partition_id but doesn't have db_name,table_name,partition_name
+// So we combine the results from these two sqls to get partition ids for each table
+// If UPDATE_TIME,DISTINCT_COUNT are equal, we assume these two records can represent one line.
+// If histograms are not accurate or (UPDATE_TIME,DISTINCT_COUNT) has duplicate data, it's still fine.
+// Because the possibility is low and the effect is that we will select more than one regions in one time,
+// this will not affect the correctness of the dumping data and will not affect the memory usage much.
+// This method is tricky, but no better way is found.
+// Because TiDB v3.0.0's information_schema.partition table doesn't have partition name or partition id info
+// return (dbName -> tbName -> partitionName -> partitionID, error)
+func GetPartitionTableIDs(db *sql.Conn, tables map[string]map[string]struct{}) (map[string]map[string]map[string]int64, error) {
+	const (
+		showStatsHistogramsSQL   = "SHOW STATS_HISTOGRAMS"
+		selectStatsHistogramsSQL = "SELECT TABLE_ID,FROM_UNIXTIME(VERSION DIV 262144 DIV 1000,'%Y-%m-%d %H:%i:%s') AS UPDATE_TIME,DISTINCT_COUNT FROM mysql.stats_histograms"
+	)
+	partitionIDs := make(map[string]map[string]map[string]int64, len(tables))
+	rows, err := db.QueryContext(context.Background(), showStatsHistogramsSQL)
+	if err != nil {
+		return nil, errors.Annotatef(err, "sql: %s", showStatsHistogramsSQL)
+	}
+	results, err := GetSpecifiedColumnValuesAndClose(rows, "DB_NAME", "TABLE_NAME", "PARTITION_NAME", "UPDATE_TIME", "DISTINCT_COUNT")
+	if err != nil {
+		return nil, errors.Annotatef(err, "sql: %s", showStatsHistogramsSQL)
+	}
+	type partitionInfo struct {
+		dbName, tbName, partitionName string
+	}
+	saveMap := make(map[string]map[string]partitionInfo)
+	for _, oneRow := range results {
+		dbName, tbName, partitionName, updateTime, distinctCount := oneRow[0], oneRow[1], oneRow[2], oneRow[3], oneRow[4]
+		if len(partitionName) == 0 {
+			continue
+		}
+		if tbm, ok := tables[dbName]; ok {
+			if _, ok = tbm[tbName]; ok {
+				if _, ok = saveMap[updateTime]; !ok {
+					saveMap[updateTime] = make(map[string]partitionInfo)
+				}
+				saveMap[updateTime][distinctCount] = partitionInfo{
+					dbName:        dbName,
+					tbName:        tbName,
+					partitionName: partitionName,
+				}
+			}
+		}
+	}
+	if len(saveMap) == 0 {
+		return map[string]map[string]map[string]int64{}, nil
+	}
+	err = simpleQuery(db, selectStatsHistogramsSQL, func(rows *sql.Rows) error {
+		var (
+			tableID                   int64
+			updateTime, distinctCount string
+		)
+		err2 := rows.Scan(&tableID, &updateTime, &distinctCount)
+		if err2 != nil {
+			return errors.Trace(err2)
+		}
+		if mpt, ok := saveMap[updateTime]; ok {
+			if partition, ok := mpt[distinctCount]; ok {
+				dbName, tbName, partitionName := partition.dbName, partition.tbName, partition.partitionName
+				if _, ok := partitionIDs[dbName]; !ok {
+					partitionIDs[dbName] = make(map[string]map[string]int64)
+				}
+				if _, ok := partitionIDs[dbName][tbName]; !ok {
+					partitionIDs[dbName][tbName] = make(map[string]int64)
+				}
+				partitionIDs[dbName][tbName][partitionName] = tableID
+			}
+		}
+		return nil
+	})
+	return partitionIDs, err
+}
+
+// GetDBInfo get model.DBInfos from database sql interface.
+// We need table_id to check whether a region belongs to this table
+func GetDBInfo(db *sql.Conn, tables map[string]map[string]struct{}) ([]*model.DBInfo, error) {
+	const tableIDSQL = "SELECT TABLE_SCHEMA,TABLE_NAME,TIDB_TABLE_ID FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_SCHEMA"
+
+	schemas := make([]*model.DBInfo, 0, len(tables))
+	var (
+		tableSchema, tableName string
+		tidbTableID            int64
+	)
+	partitionIDs, err := GetPartitionTableIDs(db, tables)
+	if err != nil {
+		return nil, err
+	}
+	err = simpleQuery(db, tableIDSQL, func(rows *sql.Rows) error {
+		err2 := rows.Scan(&tableSchema, &tableName, &tidbTableID)
+		if err2 != nil {
+			return errors.Trace(err2)
+		}
+		if tbm, ok := tables[tableSchema]; !ok {
+			return nil
+		} else if _, ok = tbm[tableName]; !ok {
+			return nil
+		}
+		last := len(schemas) - 1
+		if last < 0 || schemas[last].Name.O != tableSchema {
+			schemas = append(schemas, &model.DBInfo{
+				Name:   model.CIStr{O: tableSchema},
+				Tables: make([]*model.TableInfo, 0, len(tables[tableSchema])),
+			})
+			last++
+		}
+		var partition *model.PartitionInfo
+		if tbm, ok := partitionIDs[tableSchema]; ok {
+			if ptm, ok := tbm[tableName]; ok {
+				partition = &model.PartitionInfo{Definitions: make([]model.PartitionDefinition, 0, len(ptm))}
+				for partitionName, partitionID := range ptm {
+					partition.Definitions = append(partition.Definitions, model.PartitionDefinition{
+						ID:   partitionID,
+						Name: model.CIStr{O: partitionName},
+					})
+				}
+			}
+		}
+		schemas[last].Tables = append(schemas[last].Tables, &model.TableInfo{
+			ID:        tidbTableID,
+			Name:      model.CIStr{O: tableName},
+			Partition: partition,
+		})
+		return nil
+	})
+	return schemas, err
+}
+
+// GetRegionInfos get region info including regionID, start key, end key from database sql interface.
+// start key, end key includes information to help split table
+func GetRegionInfos(db *sql.Conn) (*helper.RegionsInfo, error) {
+	const tableRegionSQL = "SELECT REGION_ID,START_KEY,END_KEY FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS ORDER BY START_KEY;"
+	var (
+		regionID         int64
+		startKey, endKey string
+	)
+	regionsInfo := &helper.RegionsInfo{Regions: make([]helper.RegionInfo, 0)}
+	err := simpleQuery(db, tableRegionSQL, func(rows *sql.Rows) error {
+		err := rows.Scan(&regionID, &startKey, &endKey)
+		if err != nil {
+			return errors.Trace(err)
+		}
+		regionsInfo.Regions = append(regionsInfo.Regions, helper.RegionInfo{
+			ID:       regionID,
+			StartKey: startKey,
+			EndKey:   endKey,
+		})
+		return nil
+	})
+	return regionsInfo, err
+}


Test patch:
diff --git a/v4/export/sql_test.go b/v4/export/sql_test.go
index 7d8c94a..4706cca 100644
--- a/v4/export/sql_test.go
+++ b/v4/export/sql_test.go
@@ -6,8 +6,14 @@ import (
 	"context"
 	"database/sql"
 	"database/sql/driver"
+	"encoding/csv"
 	"errors"
 	"fmt"
+	"io"
+	"os"
+	"path"
+	"runtime"
+	"strconv"
 	"strings"
 
 	tcontext "github.com/pingcap/dumpling/v4/context"
@@ -420,9 +426,10 @@ func (s *testSQLSuite) TestBuildTableSampleQueries(c *C) {
 	tctx, cancel := tcontext.Background().WithLogger(appLogger).WithCancel()
 
 	d := &Dumper{
-		tctx:      tctx,
-		conf:      DefaultConfig(),
-		cancelCtx: cancel,
+		tctx:                      tctx,
+		conf:                      DefaultConfig(),
+		cancelCtx:                 cancel,
+		selectTiDBTableRegionFunc: selectTiDBTableRegion,
 	}
 	d.conf.ServerInfo = ServerInfo{
 		HasTiKV:       true,
@@ -652,7 +659,7 @@ func (s *testSQLSuite) TestBuildTableSampleQueries(c *C) {
 		if len(handleColNames) > 0 {
 			taskChan := make(chan Task, 128)
 			quotaCols := make([]string, 0, len(handleColNames))
-			for _, col := range quotaCols {
+			for _, col := range handleColNames {
 				quotaCols = append(quotaCols, wrapBackTicks(col))
 			}
 			selectFields := strings.Join(quotaCols, ",")
@@ -797,9 +804,10 @@ func (s *testSQLSuite) TestBuildRegionQueriesWithoutPartition(c *C) {
 	tctx, cancel := tcontext.Background().WithLogger(appLogger).WithCancel()
 
 	d := &Dumper{
-		tctx:      tctx,
-		conf:      DefaultConfig(),
-		cancelCtx: cancel,
+		tctx:                      tctx,
+		conf:                      DefaultConfig(),
+		cancelCtx:                 cancel,
+		selectTiDBTableRegionFunc: selectTiDBTableRegion,
 	}
 	d.conf.ServerInfo = ServerInfo{
 		HasTiKV:       true,
@@ -885,7 +893,7 @@ func (s *testSQLSuite) TestBuildRegionQueriesWithoutPartition(c *C) {
 		// Test build tasks through table region
 		taskChan := make(chan Task, 128)
 		quotaCols := make([]string, 0, len(handleColNames))
-		for _, col := range quotaCols {
+		for _, col := range handleColNames {
 			quotaCols = append(quotaCols, wrapBackTicks(col))
 		}
 		selectFields := strings.Join(quotaCols, ",")
@@ -964,9 +972,10 @@ func (s *testSQLSuite) TestBuildRegionQueriesWithPartitions(c *C) {
 	tctx, cancel := tcontext.Background().WithLogger(appLogger).WithCancel()
 
 	d := &Dumper{
-		tctx:      tctx,
-		conf:      DefaultConfig(),
-		cancelCtx: cancel,
+		tctx:                      tctx,
+		conf:                      DefaultConfig(),
+		cancelCtx:                 cancel,
+		selectTiDBTableRegionFunc: selectTiDBTableRegion,
 	}
 	d.conf.ServerInfo = ServerInfo{
 		HasTiKV:       true,
@@ -1097,7 +1106,7 @@ func (s *testSQLSuite) TestBuildRegionQueriesWithPartitions(c *C) {
 		// Test build tasks through table region
 		taskChan := make(chan Task, 128)
 		quotaCols := make([]string, 0, len(handleColNames))
-		for _, col := range quotaCols {
+		for _, col := range handleColNames {
 			quotaCols = append(quotaCols, wrapBackTicks(col))
 		}
 		selectFields := strings.Join(quotaCols, ",")
@@ -1178,6 +1187,326 @@ func (s *testSQLSuite) TestBuildRegionQueriesWithPartitions(c *C) {
 	}
 }
 
+func buildMockNewRows(mock sqlmock.Sqlmock, columns []string, driverValues [][]driver.Value) *sqlmock.Rows {
+	rows := mock.NewRows(columns)
+	for _, driverValue := range driverValues {
+		rows.AddRow(driverValue...)
+	}
+	return rows
+}
+
+func readRegionCsvDriverValues(c *C) [][]driver.Value {
+	// nolint: dogsled
+	_, filename, _, _ := runtime.Caller(0)
+	csvFilename := path.Join(path.Dir(filename), "region_results.csv")
+	file, err := os.Open(csvFilename)
+	c.Assert(err, IsNil)
+	csvReader := csv.NewReader(file)
+	values := make([][]driver.Value, 0, 990)
+	for {
+		results, err := csvReader.Read()
+		if err == io.EOF {
+			break
+		}
+		c.Assert(err, IsNil)
+		if len(results) != 3 {
+			continue
+		}
+		regionID, err := strconv.Atoi(results[0])
+		c.Assert(err, IsNil)
+		startKey, endKey := results[1], results[2]
+		values = append(values, []driver.Value{regionID, startKey, endKey})
+	}
+	return values
+}
+
+func (s *testSQLSuite) TestBuildVersion3RegionQueries(c *C) {
+	db, mock, err := sqlmock.New()
+	c.Assert(err, IsNil)
+	defer db.Close()
+	conn, err := db.Conn(context.Background())
+	c.Assert(err, IsNil)
+	tctx, cancel := tcontext.Background().WithLogger(appLogger).WithCancel()
+	oldOpenFunc := openDBFunc
+	defer func() {
+		openDBFunc = oldOpenFunc
+	}()
+	openDBFunc = func(_, _ string) (*sql.DB, error) {
+		return db, nil
+	}
+
+	conf := DefaultConfig()
+	conf.ServerInfo = ServerInfo{
+		HasTiKV:       true,
+		ServerType:    ServerTypeTiDB,
+		ServerVersion: decodeRegionVersion,
+	}
+	database := "test"
+	conf.Tables = DatabaseTables{
+		database: []*TableInfo{
+			{"t1", TableTypeBase},
+			{"t2", TableTypeBase},
+			{"t3", TableTypeBase},
+			{"t4", TableTypeBase},
+		},
+	}
+	d := &Dumper{
+		tctx:                      tctx,
+		conf:                      conf,
+		cancelCtx:                 cancel,
+		selectTiDBTableRegionFunc: selectTiDBTableRegion,
+	}
+	showStatsHistograms := buildMockNewRows(mock, []string{"Db_name", "Table_name", "Partition_name", "Column_name", "Is_index", "Update_time", "Distinct_count", "Null_count", "Avg_col_size", "Correlation"},
+		[][]driver.Value{
+			{"test", "t2", "p0", "a", 0, "2021-06-27 17:43:51", 1999999, 0, 8, 0},
+			{"test", "t2", "p1", "a", 0, "2021-06-22 20:30:16", 1260000, 0, 8, 0},
+			{"test", "t2", "p2", "a", 0, "2021-06-22 20:32:16", 1230000, 0, 8, 0},
+			{"test", "t2", "p3", "a", 0, "2021-06-22 20:36:19", 2000000, 0, 8, 0},
+			{"test", "t1", "", "a", 0, "2021-04-22 15:23:58", 7100000, 0, 8, 0},
+			{"test", "t3", "", "PRIMARY", 1, "2021-06-27 22:08:43", 4980000, 0, 0, 0},
+			{"test", "t4", "p0", "PRIMARY", 1, "2021-06-28 10:54:06", 2000000, 0, 0, 0},
+			{"test", "t4", "p1", "PRIMARY", 1, "2021-06-28 10:55:04", 1300000, 0, 0, 0},
+			{"test", "t4", "p2", "PRIMARY", 1, "2021-06-28 10:57:05", 1830000, 0, 0, 0},
+			{"test", "t4", "p3", "PRIMARY", 1, "2021-06-28 10:59:04", 2000000, 0, 0, 0},
+			{"mysql", "global_priv", "", "PRIMARY", 1, "2021-06-04 20:39:44", 0, 0, 0, 0},
+		})
+	selectMySQLStatsHistograms := buildMockNewRows(mock, []string{"TABLE_ID", "VERSION", "DISTINCT_COUNT"},
+		[][]driver.Value{
+			{15, "1970-01-01 08:00:00", 0},
+			{15, "1970-01-01 08:00:00", 0},
+			{15, "1970-01-01 08:00:00", 0},
+			{41, "2021-04-22 15:23:58", 7100000},
+			{41, "2021-04-22 15:23:59", 7100000},
+			{41, "2021-04-22 15:23:59", 7100000},
+			{41, "2021-04-22 15:23:59", 7100000},
+			{27, "1970-01-01 08:00:00", 0},
+			{27, "1970-01-01 08:00:00", 0},
+			{25, "1970-01-01 08:00:00", 0},
+			{25, "1970-01-01 08:00:00", 0},
+			{2098, "2021-06-04 20:39:41", 0},
+			{2101, "2021-06-04 20:39:44", 0},
+			{2101, "2021-06-04 20:39:44", 0},
+			{2101, "2021-06-04 20:39:44", 0},
+			{2101, "2021-06-04 20:39:44", 0},
+			{2128, "2021-06-22 20:29:19", 1991680},
+			{2128, "2021-06-22 20:29:19", 1991680},
+			{2128, "2021-06-22 20:29:19", 1991680},
+			{2129, "2021-06-22 20:30:16", 1260000},
+			{2129, "2021-06-22 20:30:16", 1237120},
+			{2129, "2021-06-22 20:30:16", 1237120},
+			{2129, "2021-06-22 20:30:16", 1237120},
+			{2130, "2021-06-22 20:32:16", 1230000},
+			{2130, "2021-06-22 20:32:16", 1216128},
+			{2130, "2021-06-22 20:32:17", 1216128},
+			{2130, "2021-06-22 20:32:17", 1216128},
+			{2131, "2021-06-22 20:36:19", 2000000},
+			{2131, "2021-06-22 20:36:19", 1959424},
+			{2131, "2021-06-22 20:36:19", 1959424},
+			{2131, "2021-06-22 20:36:19", 1959424},
+			{2128, "2021-06-27 17:43:51", 1999999},
+			{2136, "2021-06-27 22:08:38", 4860000},
+			{2136, "2021-06-27 22:08:38", 4860000},
+			{2136, "2021-06-27 22:08:38", 4860000},
+			{2136, "2021-06-27 22:08:38", 4860000},
+			{2136, "2021-06-27 22:08:43", 4980000},
+			{2139, "2021-06-28 10:54:05", 1991680},
+			{2139, "2021-06-28 10:54:05", 1991680},
+			{2139, "2021-06-28 10:54:05", 1991680},
+			{2139, "2021-06-28 10:54:05", 1991680},
+			{2139, "2021-06-28 10:54:06", 2000000},
+			{2140, "2021-06-28 10:55:02", 1246336},
+			{2140, "2021-06-28 10:55:02", 1246336},
+			{2140, "2021-06-28 10:55:02", 1246336},
+			{2140, "2021-06-28 10:55:03", 1246336},
+			{2140, "2021-06-28 10:55:04", 1300000},
+			{2141, "2021-06-28 10:57:03", 1780000},
+			{2141, "2021-06-28 10:57:03", 1780000},
+			{2141, "2021-06-28 10:57:03", 1780000},
+			{2141, "2021-06-28 10:57:03", 1780000},
+			{2141, "2021-06-28 10:57:05", 1830000},
+			{2142, "2021-06-28 10:59:03", 1959424},
+			{2142, "2021-06-28 10:59:03", 1959424},
+			{2142, "2021-06-28 10:59:03", 1959424},
+			{2142, "2021-06-28 10:59:03", 1959424},
+			{2142, "2021-06-28 10:59:04", 2000000},
+		})
+	selectRegionStatusHistograms := buildMockNewRows(mock, []string{"REGION_ID", "START_KEY", "END_KEY"}, readRegionCsvDriverValues(c))
+	selectInformationSchemaTables := buildMockNewRows(mock, []string{"TABLE_SCHEMA", "TABLE_NAME", "TIDB_TABLE_ID"},
+		[][]driver.Value{
+			{"mysql", "expr_pushdown_blacklist", 39},
+			{"mysql", "user", 5},
+			{"mysql", "db", 7},
+			{"mysql", "tables_priv", 9},
+			{"mysql", "stats_top_n", 37},
+			{"mysql", "columns_priv", 11},
+			{"mysql", "bind_info", 35},
+			{"mysql", "default_roles", 33},
+			{"mysql", "role_edges", 31},
+			{"mysql", "stats_feedback", 29},
+			{"mysql", "gc_delete_range_done", 27},
+			{"mysql", "gc_delete_range", 25},
+			{"mysql", "help_topic", 17},
+			{"mysql", "global_priv", 2101},
+			{"mysql", "stats_histograms", 21},
+			{"mysql", "opt_rule_blacklist", 2098},
+			{"mysql", "stats_meta", 19},
+			{"mysql", "stats_buckets", 23},
+			{"mysql", "tidb", 15},
+			{"mysql", "GLOBAL_VARIABLES", 13},
+			{"test", "t2", 2127},
+			{"test", "t1", 41},
+			{"test", "t3", 2136},
+			{"test", "t4", 2138},
+		})
+	mock.ExpectQuery("SHOW STATS_HISTOGRAMS").
+		WillReturnRows(showStatsHistograms)
+	mock.ExpectQuery("SELECT TABLE_ID,FROM_UNIXTIME").
+		WillReturnRows(selectMySQLStatsHistograms)
+	mock.ExpectQuery("SELECT TABLE_SCHEMA,TABLE_NAME,TIDB_TABLE_ID FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_SCHEMA").
+		WillReturnRows(selectInformationSchemaTables)
+	mock.ExpectQuery("SELECT REGION_ID,START_KEY,END_KEY FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS ORDER BY START_KEY;").
+		WillReturnRows(selectRegionStatusHistograms)
+
+	c.Assert(d.renewSelectTableRegionFuncForLowerTiDB(tctx), IsNil)
+	c.Assert(mock.ExpectationsWereMet(), IsNil)
+
+	testCases := []struct {
+		tableName            string
+		handleColNames       []string
+		handleColTypes       []string
+		expectedWhereClauses []string
+		hasTiDBRowID         bool
+	}{
+		{
+			"t1",
+			[]string{"a"},
+			[]string{"int"},
+			[]string{
+				"`a`<960001",
+				"`a`>=960001 and `a`<1920001",
+				"`a`>=1920001 and `a`<2880001",
+				"`a`>=2880001 and `a`<3840001",
+				"`a`>=3840001 and `a`<4800001",
+				"`a`>=4800001 and `a`<5760001",
+				"`a`>=5760001 and `a`<6720001",
+				"`a`>=6720001",
+			},
+			false,
+		},
+		{
+			"t2",
+			[]string{"a"},
+			[]string{"int"},
+			[]string{
+				"`a`<960001",
+				"`a`>=960001 and `a`<2960001",
+				"`a`>=2960001 and `a`<4960001",
+				"`a`>=4960001 and `a`<6960001",
+				"`a`>=6960001",
+			},
+			false,
+		},
+		{
+			"t3",
+			[]string{"_tidb_rowid"},
+			[]string{"int"},
+			[]string{
+				"`_tidb_rowid`<81584",
+				"`_tidb_rowid`>=81584 and `_tidb_rowid`<1041584",
+				"`_tidb_rowid`>=1041584 and `_tidb_rowid`<2001584",
+				"`_tidb_rowid`>=2001584 and `_tidb_rowid`<2961584",
+				"`_tidb_rowid`>=2961584 and `_tidb_rowid`<3921584",
+				"`_tidb_rowid`>=3921584 and `_tidb_rowid`<4881584",
+				"`_tidb_rowid`>=4881584 and `_tidb_rowid`<5841584",
+				"`_tidb_rowid`>=5841584 and `_tidb_rowid`<6801584",
+				"`_tidb_rowid`>=6801584",
+			},
+			true,
+		},
+		{
+			"t4",
+			[]string{"_tidb_rowid"},
+			[]string{"int"},
+			[]string{
+				"`_tidb_rowid`<180001",
+				"`_tidb_rowid`>=180001 and `_tidb_rowid`<1140001",
+				"`_tidb_rowid`>=1140001 and `_tidb_rowid`<2200001",
+				"`_tidb_rowid`>=2200001 and `_tidb_rowid`<3160001",
+				"`_tidb_rowid`>=3160001 and `_tidb_rowid`<4160001",
+				"`_tidb_rowid`>=4160001 and `_tidb_rowid`<5120001",
+				"`_tidb_rowid`>=5120001 and `_tidb_rowid`<6170001",
+				"`_tidb_rowid`>=6170001 and `_tidb_rowid`<7130001",
+				"`_tidb_rowid`>=7130001",
+			},
+			true,
+		},
+	}
+
+	for i, testCase := range testCases {
+		c.Log(fmt.Sprintf("case #%d", i))
+		table := testCase.tableName
+		handleColNames := testCase.handleColNames
+		handleColTypes := testCase.handleColTypes
+
+		// Test build tasks through table region
+		taskChan := make(chan Task, 128)
+		quotaCols := make([]string, 0, len(handleColNames))
+		for _, col := range handleColNames {
+			quotaCols = append(quotaCols, wrapBackTicks(col))
+		}
+		selectFields := strings.Join(quotaCols, ",")
+		meta := &tableMeta{
+			database:      database,
+			table:         table,
+			selectedField: selectFields,
+			specCmts: []string{
+				"/*!40101 SET NAMES binary*/;",
+			},
+		}
+
+		if testCase.hasTiDBRowID {
+			mock.ExpectExec("SELECT _tidb_rowid").
+				WillReturnResult(sqlmock.NewResult(0, 0))
+		} else {
+			mock.ExpectExec("SELECT _tidb_rowid").
+				WillReturnError(&mysql.MyError{
+					Code:    mysql.ER_BAD_FIELD_ERROR,
+					State:   "42S22",
+					Message: "Unknown column '_tidb_rowid' in 'field list'",
+				})
+			rows := sqlmock.NewRows([]string{"COLUMN_NAME", "DATA_TYPE"})
+			for i := range handleColNames {
+				rows.AddRow(handleColNames[i], handleColTypes[i])
+			}
+			mock.ExpectQuery("SELECT c.COLUMN_NAME, DATA_TYPE FROM").WithArgs(database, table).WillReturnRows(rows)
+		}
+
+		rows := sqlmock.NewRows([]string{"COLUMN_NAME", "EXTRA"})
+		for _, handleCol := range handleColNames {
+			rows.AddRow(handleCol, "")
+		}
+		mock.ExpectQuery("SELECT COLUMN_NAME,EXTRA FROM INFORMATION_SCHEMA.COLUMNS").WithArgs(database, table).
+			WillReturnRows(rows)
+
+		orderByClause := buildOrderByClauseString(handleColNames)
+		c.Assert(d.concurrentDumpTable(tctx, conn, meta, taskChan), IsNil)
+		c.Assert(mock.ExpectationsWereMet(), IsNil)
+
+		chunkIdx := 0
+		for _, w := range testCase.expectedWhereClauses {
+			query := buildSelectQuery(database, table, "*", "", buildWhereCondition(d.conf, w), orderByClause)
+			task := <-taskChan
+			taskTableData, ok := task.(*TaskTableData)
+			c.Assert(ok, IsTrue)
+			c.Assert(taskTableData.ChunkIndex, Equals, chunkIdx)
+			data, ok := taskTableData.Data.(*tableData)
+			c.Assert(ok, IsTrue)
+			c.Assert(data.query, Equals, query)
+			chunkIdx++
+		}
+	}
+}
+
 func makeVersion(major, minor, patch int64, preRelease string) *semver.Version {
 	return &semver.Version{
 		Major:      major,
diff --git a/v4/export/writer_util_test.go b/v4/export/writer_util_test.go
index ff249c5..73cc5fa 100644
--- a/v4/export/writer_util_test.go
+++ b/v4/export/writer_util_test.go
@@ -21,7 +21,7 @@ var appLogger log.Logger
 func TestT(t *testing.T) {
 	initColTypeRowReceiverMap()
 	logger, _, err := log.InitAppLogger(&log.Config{
-		Level:  "info",
+		Level:  "debug",
 		File:   "",
 		Format: "text",
 	})