author | Gregory Szorc <gregory.szorc@gmail.com> |
Mon, 24 Sep 2018 09:41:42 -0700 | |
changeset 39866 | db5501d93bcf |
parent 39865 | d9b3cc3d5d07 |
child 39867 | 5a9ab91e0a45 |
--- a/mercurial/changegroup.py Thu Sep 20 19:31:07 2018 -0700 +++ b/mercurial/changegroup.py Mon Sep 24 09:41:42 2018 -0700 @@ -36,7 +36,6 @@ from .utils import ( interfaceutil, - stringutil, ) _CHANGEGROUPV1_DELTA_HEADER = struct.Struct("20s20s20s20s") @@ -537,11 +536,11 @@ yield prefix yield data -def _sortnodesnormal(store, nodes, reorder): +def _sortnodesnormal(store, nodes): """Sort nodes for changegroup generation and turn into revnums.""" # for generaldelta revlogs, we linearize the revs; this will both be # much quicker and generate a much smaller bundle - if (store._generaldelta and reorder is None) or reorder: + if store._generaldelta: revs = set(store.rev(n) for n in nodes) return dagop.linearize(revs, store.parentrevs) else: @@ -656,7 +655,6 @@ ) def deltagroup(repo, store, nodes, ischangelog, lookup, forcedeltaparentprev, - allowreorder, topic=None, ellipses=False, clrevtolocalrev=None, fullclnodes=None, precomputedellipsis=None): @@ -691,7 +689,7 @@ elif ellipses: revs = _sortnodesellipsis(store, nodes, cl, lookup) else: - revs = _sortnodesnormal(store, nodes, allowreorder) + revs = _sortnodesnormal(store, nodes) # In the first pass, collect info about the deltas we'll be # generating. @@ -756,7 +754,7 @@ progress.complete() class cgpacker(object): - def __init__(self, repo, filematcher, version, allowreorder, + def __init__(self, repo, filematcher, version, builddeltaheader, manifestsend, forcedeltaparentprev=False, bundlecaps=None, ellipses=False, @@ -766,10 +764,6 @@ filematcher is a matcher that matches on files to include in the changegroup. Used to facilitate sparse changegroups. - allowreorder controls whether reordering of revisions is allowed. - This value is used when ``bundle.reorder`` is ``auto`` or isn't - set. - forcedeltaparentprev indicates whether delta parents must be against the previous revision in a delta group. This should only be used for compatibility with changegroup version 1. @@ -813,13 +807,6 @@ # Maps ellipsis revs to their roots at the changelog level. self._precomputedellipsis = ellipsisroots - # experimental config: bundle.reorder - reorder = repo.ui.config('bundle', 'reorder') - if reorder == 'auto': - self._reorder = allowreorder - else: - self._reorder = stringutil.parsebool(reorder) - self._repo = repo if self._repo.ui.verbose and not self._repo.ui.debugflag: @@ -862,17 +849,16 @@ # The fastpath is usually safer than the slowpath, because the filelogs # are walked in revlog order. # - # When taking the slowpath with reorder=None and the manifest revlog - # uses generaldelta, the manifest may be walked in the "wrong" order. - # Without 'clrevorder', we would get an incorrect linkrev (see fix in - # cc0ff93d0c0c). + # When taking the slowpath when the manifest revlog uses generaldelta, + # the manifest may be walked in the "wrong" order. Without 'clrevorder', + # we would get an incorrect linkrev (see fix in cc0ff93d0c0c). # # When taking the fastpath, we are only vulnerable to reordering - # of the changelog itself. The changelog never uses generaldelta, so - # it is only reordered when reorder=True. To handle this case, we - # simply take the slowpath, which already has the 'clrevorder' logic. - # This was also fixed in cc0ff93d0c0c. - fastpathlinkrev = fastpathlinkrev and not self._reorder + # of the changelog itself. The changelog never uses generaldelta and is + # never reordered. To handle this case, we simply take the slowpath, + # which already has the 'clrevorder' logic. This was also fixed in + # cc0ff93d0c0c. + # Treemanifests don't work correctly with fastpathlinkrev # either, because we don't discover which directory nodes to # send along with files. This could probably be fixed. @@ -1003,8 +989,6 @@ gen = deltagroup( self._repo, cl, nodes, True, lookupcl, self._forcedeltaparentprev, - # Reorder settings are currently ignored for changelog. - True, ellipses=self._ellipses, topic=_('changesets'), clrevtolocalrev={}, @@ -1087,7 +1071,7 @@ deltas = deltagroup( self._repo, store, prunednodes, False, lookupfn, - self._forcedeltaparentprev, self._reorder, + self._forcedeltaparentprev, ellipses=self._ellipses, topic=_('manifests'), clrevtolocalrev=clrevtolocalrev, @@ -1184,7 +1168,7 @@ deltas = deltagroup( self._repo, filerevlog, filenodes, False, lookupfilelog, - self._forcedeltaparentprev, self._reorder, + self._forcedeltaparentprev, ellipses=self._ellipses, clrevtolocalrev=clrevtolocalrev, fullclnodes=self._fullclnodes, @@ -1200,7 +1184,6 @@ d.node, d.p1node, d.p2node, d.linknode) return cgpacker(repo, filematcher, b'01', - allowreorder=None, builddeltaheader=builddeltaheader, manifestsend=b'', forcedeltaparentprev=True, @@ -1215,11 +1198,7 @@ builddeltaheader = lambda d: _CHANGEGROUPV2_DELTA_HEADER.pack( d.node, d.p1node, d.p2node, d.basenode, d.linknode) - # Since generaldelta is directly supported by cg2, reordering - # generally doesn't help, so we disable it by default (treating - # bundle.reorder=auto just like bundle.reorder=False). return cgpacker(repo, filematcher, b'02', - allowreorder=False, builddeltaheader=builddeltaheader, manifestsend=b'', bundlecaps=bundlecaps, @@ -1234,7 +1213,6 @@ d.node, d.p1node, d.p2node, d.basenode, d.linknode, d.flags) return cgpacker(repo, filematcher, b'03', - allowreorder=False, builddeltaheader=builddeltaheader, manifestsend=closechunk(), bundlecaps=bundlecaps,
--- a/mercurial/configitems.py Thu Sep 20 19:31:07 2018 -0700 +++ b/mercurial/configitems.py Mon Sep 24 09:41:42 2018 -0700 @@ -161,10 +161,6 @@ coreconfigitem('bundle', 'mainreporoot', default='', ) -# bundle.reorder: experimental config -coreconfigitem('bundle', 'reorder', - default='auto', -) coreconfigitem('censor', 'policy', default='abort', )
--- a/tests/test-generaldelta.t Thu Sep 20 19:31:07 2018 -0700 +++ b/tests/test-generaldelta.t Mon Sep 24 09:41:42 2018 -0700 @@ -279,61 +279,61 @@ 14 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg -R relax-chain debugdeltachain -m rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio - 0 1 1 -1 base 46 45 46 1.02222 46 0 0.00000 - 1 1 2 0 p1 57 90 103 1.14444 103 0 0.00000 - 2 1 3 1 p1 57 135 160 1.18519 160 0 0.00000 - 3 1 4 2 p1 57 180 217 1.20556 217 0 0.00000 - 4 1 5 3 p1 57 225 274 1.21778 274 0 0.00000 - 5 1 6 4 p1 57 270 331 1.22593 331 0 0.00000 - 6 2 1 -1 base 46 45 46 1.02222 46 0 0.00000 - 7 2 2 6 p1 57 90 103 1.14444 103 0 0.00000 - 8 2 3 7 p1 57 135 160 1.18519 160 0 0.00000 - 9 2 4 8 p1 57 180 217 1.20556 217 0 0.00000 - 10 2 5 9 p1 58 226 275 1.21681 275 0 0.00000 - 11 2 6 10 p1 58 272 333 1.22426 333 0 0.00000 - 12 2 7 11 p1 58 318 391 1.22956 391 0 0.00000 - 13 2 8 12 p1 58 364 449 1.23352 449 0 0.00000 - 14 2 9 13 p1 58 410 507 1.23659 507 0 0.00000 - 15 2 10 14 p1 58 456 565 1.23904 565 0 0.00000 - 16 2 11 15 p1 58 502 623 1.24104 623 0 0.00000 - 17 2 12 16 p1 58 548 681 1.24270 681 0 0.00000 - 18 3 1 -1 base 47 46 47 1.02174 47 0 0.00000 - 19 3 2 18 p1 58 92 105 1.14130 105 0 0.00000 - 20 3 3 19 p1 58 138 163 1.18116 163 0 0.00000 - 21 3 4 20 p1 58 184 221 1.20109 221 0 0.00000 - 22 3 5 21 p1 58 230 279 1.21304 279 0 0.00000 - 23 3 6 22 p1 58 276 337 1.22101 337 0 0.00000 - 24 3 7 23 p1 58 322 395 1.22671 395 0 0.00000 - 25 3 8 24 p1 58 368 453 1.23098 453 0 0.00000 - 26 3 9 25 p1 58 414 511 1.23430 511 0 0.00000 - 27 3 10 26 p1 58 460 569 1.23696 569 0 0.00000 - 28 3 11 27 p1 58 506 627 1.23913 627 0 0.00000 - 29 3 12 28 p1 58 552 685 1.24094 685 0 0.00000 - 30 3 13 29 p1 58 598 743 1.24247 743 0 0.00000 - 31 3 14 30 p1 58 644 801 1.24379 801 0 0.00000 - 32 3 15 31 p1 58 690 859 1.24493 859 0 0.00000 - 33 3 16 32 p1 58 736 917 1.24592 917 0 0.00000 - 34 3 17 33 p1 58 782 975 1.24680 975 0 0.00000 - 35 3 18 34 p1 58 828 1033 1.24758 1033 0 0.00000 - 36 3 19 35 p1 58 874 1091 1.24828 1091 0 0.00000 - 37 3 20 36 p1 58 920 1149 1.24891 1149 0 0.00000 - 38 3 21 37 p1 58 966 1207 1.24948 1207 0 0.00000 - 39 3 22 38 p1 58 1012 1265 1.25000 1265 0 0.00000 - 40 3 23 39 p1 58 1058 1323 1.25047 1323 0 0.00000 - 41 3 24 40 p1 58 1104 1381 1.25091 1381 0 0.00000 - 42 3 25 41 p1 58 1150 1439 1.25130 1439 0 0.00000 - 43 3 26 42 p1 58 1196 1497 1.25167 1497 0 0.00000 - 44 3 27 43 p1 58 1242 1555 1.25201 1555 0 0.00000 - 45 3 28 44 p1 58 1288 1613 1.25233 1613 0 0.00000 - 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 - 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 - 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 - 49 4 1 -1 base 197 316 197 0.62342 197 0 0.00000 - 50 4 2 49 p1 58 362 255 0.70442 255 0 0.00000 - 51 2 13 17 p1 58 594 739 1.24411 2781 2042 2.76319 - 52 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 - 53 6 1 -1 base 0 0 0 0.00000 0 0 0.00000 - 54 7 1 -1 base 369 640 369 0.57656 369 0 0.00000 + 0 1 1 -1 base 47 46 47 1.02174 47 0 0.00000 + 1 1 2 0 p1 58 92 105 1.14130 105 0 0.00000 + 2 1 3 1 p1 58 138 163 1.18116 163 0 0.00000 + 3 1 4 2 p1 58 184 221 1.20109 221 0 0.00000 + 4 1 5 3 p1 58 230 279 1.21304 279 0 0.00000 + 5 1 6 4 p1 58 276 337 1.22101 337 0 0.00000 + 6 1 7 5 p1 58 322 395 1.22671 395 0 0.00000 + 7 1 8 6 p1 58 368 453 1.23098 453 0 0.00000 + 8 1 9 7 p1 58 414 511 1.23430 511 0 0.00000 + 9 1 10 8 p1 58 460 569 1.23696 569 0 0.00000 + 10 1 11 9 p1 58 506 627 1.23913 627 0 0.00000 + 11 1 12 10 p1 58 552 685 1.24094 685 0 0.00000 + 12 1 13 11 p1 58 598 743 1.24247 743 0 0.00000 + 13 1 14 12 p1 58 644 801 1.24379 801 0 0.00000 + 14 1 15 13 p1 58 690 859 1.24493 859 0 0.00000 + 15 1 16 14 p1 58 736 917 1.24592 917 0 0.00000 + 16 1 17 15 p1 58 782 975 1.24680 975 0 0.00000 + 17 1 18 16 p1 58 828 1033 1.24758 1033 0 0.00000 + 18 1 19 17 p1 58 874 1091 1.24828 1091 0 0.00000 + 19 1 20 18 p1 58 920 1149 1.24891 1149 0 0.00000 + 20 1 21 19 p1 58 966 1207 1.24948 1207 0 0.00000 + 21 1 22 20 p1 58 1012 1265 1.25000 1265 0 0.00000 + 22 1 23 21 p1 58 1058 1323 1.25047 1323 0 0.00000 + 23 1 24 22 p1 58 1104 1381 1.25091 1381 0 0.00000 + 24 1 25 23 p1 58 1150 1439 1.25130 1439 0 0.00000 + 25 1 26 24 p1 58 1196 1497 1.25167 1497 0 0.00000 + 26 1 27 25 p1 58 1242 1555 1.25201 1555 0 0.00000 + 27 1 28 26 p1 58 1288 1613 1.25233 1613 0 0.00000 + 28 1 29 27 p1 58 1334 1671 1.25262 1671 0 0.00000 + 29 1 30 28 p1 58 1380 1729 1.25290 1729 0 0.00000 + 30 1 31 29 p1 58 1426 1787 1.25316 1787 0 0.00000 + 31 2 1 -1 base 46 45 46 1.02222 46 0 0.00000 + 32 2 2 31 p1 57 90 103 1.14444 103 0 0.00000 + 33 2 3 32 p1 57 135 160 1.18519 160 0 0.00000 + 34 2 4 33 p1 57 180 217 1.20556 217 0 0.00000 + 35 2 5 34 p1 57 225 274 1.21778 274 0 0.00000 + 36 2 6 35 p1 57 270 331 1.22593 331 0 0.00000 + 37 2 7 36 p1 58 316 389 1.23101 389 0 0.00000 + 38 2 8 37 p1 58 362 447 1.23481 447 0 0.00000 + 39 3 1 -1 base 46 45 46 1.02222 46 0 0.00000 + 40 3 2 39 p1 57 90 103 1.14444 103 0 0.00000 + 41 3 3 40 p1 57 135 160 1.18519 160 0 0.00000 + 42 3 4 41 p1 57 180 217 1.20556 217 0 0.00000 + 43 3 5 42 p1 58 226 275 1.21681 275 0 0.00000 + 44 3 6 43 p1 58 272 333 1.22426 333 0 0.00000 + 45 3 7 44 p1 58 318 391 1.22956 391 0 0.00000 + 46 3 8 45 p1 58 364 449 1.23352 449 0 0.00000 + 47 3 9 46 p1 58 410 507 1.23659 507 0 0.00000 + 48 3 10 47 p1 58 456 565 1.23904 565 0 0.00000 + 49 3 11 48 p1 58 502 623 1.24104 623 0 0.00000 + 50 3 12 49 p1 58 548 681 1.24270 681 0 0.00000 + 51 3 13 50 p1 58 594 739 1.24411 739 0 0.00000 + 52 3 14 51 p1 58 640 797 1.24531 797 0 0.00000 + 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 + 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.generaldelta=yes requesting all changes adding changesets @@ -345,58 +345,58 @@ 14 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg -R noconst-chain debugdeltachain -m rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio - 0 1 1 -1 base 46 45 46 1.02222 46 0 0.00000 - 1 1 2 0 p1 57 90 103 1.14444 103 0 0.00000 - 2 1 3 1 p1 57 135 160 1.18519 160 0 0.00000 - 3 1 4 2 p1 57 180 217 1.20556 217 0 0.00000 - 4 1 5 3 p1 57 225 274 1.21778 274 0 0.00000 - 5 1 6 4 p1 57 270 331 1.22593 331 0 0.00000 - 6 2 1 -1 base 46 45 46 1.02222 46 0 0.00000 - 7 2 2 6 p1 57 90 103 1.14444 103 0 0.00000 - 8 2 3 7 p1 57 135 160 1.18519 160 0 0.00000 - 9 2 4 8 p1 57 180 217 1.20556 217 0 0.00000 - 10 2 5 9 p1 58 226 275 1.21681 275 0 0.00000 - 11 2 6 10 p1 58 272 333 1.22426 333 0 0.00000 - 12 2 7 11 p1 58 318 391 1.22956 391 0 0.00000 - 13 2 8 12 p1 58 364 449 1.23352 449 0 0.00000 - 14 2 9 13 p1 58 410 507 1.23659 507 0 0.00000 - 15 2 10 14 p1 58 456 565 1.23904 565 0 0.00000 - 16 2 11 15 p1 58 502 623 1.24104 623 0 0.00000 - 17 2 12 16 p1 58 548 681 1.24270 681 0 0.00000 - 18 3 1 -1 base 47 46 47 1.02174 47 0 0.00000 - 19 3 2 18 p1 58 92 105 1.14130 105 0 0.00000 - 20 3 3 19 p1 58 138 163 1.18116 163 0 0.00000 - 21 3 4 20 p1 58 184 221 1.20109 221 0 0.00000 - 22 3 5 21 p1 58 230 279 1.21304 279 0 0.00000 - 23 3 6 22 p1 58 276 337 1.22101 337 0 0.00000 - 24 3 7 23 p1 58 322 395 1.22671 395 0 0.00000 - 25 3 8 24 p1 58 368 453 1.23098 453 0 0.00000 - 26 3 9 25 p1 58 414 511 1.23430 511 0 0.00000 - 27 3 10 26 p1 58 460 569 1.23696 569 0 0.00000 - 28 3 11 27 p1 58 506 627 1.23913 627 0 0.00000 - 29 3 12 28 p1 58 552 685 1.24094 685 0 0.00000 - 30 3 13 29 p1 58 598 743 1.24247 743 0 0.00000 - 31 3 14 30 p1 58 644 801 1.24379 801 0 0.00000 - 32 3 15 31 p1 58 690 859 1.24493 859 0 0.00000 - 33 3 16 32 p1 58 736 917 1.24592 917 0 0.00000 - 34 3 17 33 p1 58 782 975 1.24680 975 0 0.00000 - 35 3 18 34 p1 58 828 1033 1.24758 1033 0 0.00000 - 36 3 19 35 p1 58 874 1091 1.24828 1091 0 0.00000 - 37 3 20 36 p1 58 920 1149 1.24891 1149 0 0.00000 - 38 3 21 37 p1 58 966 1207 1.24948 1207 0 0.00000 - 39 3 22 38 p1 58 1012 1265 1.25000 1265 0 0.00000 - 40 3 23 39 p1 58 1058 1323 1.25047 1323 0 0.00000 - 41 3 24 40 p1 58 1104 1381 1.25091 1381 0 0.00000 - 42 3 25 41 p1 58 1150 1439 1.25130 1439 0 0.00000 - 43 3 26 42 p1 58 1196 1497 1.25167 1497 0 0.00000 - 44 3 27 43 p1 58 1242 1555 1.25201 1555 0 0.00000 - 45 3 28 44 p1 58 1288 1613 1.25233 1613 0 0.00000 - 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 - 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 - 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 - 49 1 7 5 p1 58 316 389 1.23101 2857 2468 6.34447 - 50 1 8 49 p1 58 362 447 1.23481 2915 2468 5.52125 - 51 2 13 17 p1 58 594 739 1.24411 2642 1903 2.57510 - 52 2 14 51 p1 58 640 797 1.24531 2700 1903 2.38770 + 0 1 1 -1 base 47 46 47 1.02174 47 0 0.00000 + 1 1 2 0 p1 58 92 105 1.14130 105 0 0.00000 + 2 1 3 1 p1 58 138 163 1.18116 163 0 0.00000 + 3 1 4 2 p1 58 184 221 1.20109 221 0 0.00000 + 4 1 5 3 p1 58 230 279 1.21304 279 0 0.00000 + 5 1 6 4 p1 58 276 337 1.22101 337 0 0.00000 + 6 1 7 5 p1 58 322 395 1.22671 395 0 0.00000 + 7 1 8 6 p1 58 368 453 1.23098 453 0 0.00000 + 8 1 9 7 p1 58 414 511 1.23430 511 0 0.00000 + 9 1 10 8 p1 58 460 569 1.23696 569 0 0.00000 + 10 1 11 9 p1 58 506 627 1.23913 627 0 0.00000 + 11 1 12 10 p1 58 552 685 1.24094 685 0 0.00000 + 12 1 13 11 p1 58 598 743 1.24247 743 0 0.00000 + 13 1 14 12 p1 58 644 801 1.24379 801 0 0.00000 + 14 1 15 13 p1 58 690 859 1.24493 859 0 0.00000 + 15 1 16 14 p1 58 736 917 1.24592 917 0 0.00000 + 16 1 17 15 p1 58 782 975 1.24680 975 0 0.00000 + 17 1 18 16 p1 58 828 1033 1.24758 1033 0 0.00000 + 18 1 19 17 p1 58 874 1091 1.24828 1091 0 0.00000 + 19 1 20 18 p1 58 920 1149 1.24891 1149 0 0.00000 + 20 1 21 19 p1 58 966 1207 1.24948 1207 0 0.00000 + 21 1 22 20 p1 58 1012 1265 1.25000 1265 0 0.00000 + 22 1 23 21 p1 58 1058 1323 1.25047 1323 0 0.00000 + 23 1 24 22 p1 58 1104 1381 1.25091 1381 0 0.00000 + 24 1 25 23 p1 58 1150 1439 1.25130 1439 0 0.00000 + 25 1 26 24 p1 58 1196 1497 1.25167 1497 0 0.00000 + 26 1 27 25 p1 58 1242 1555 1.25201 1555 0 0.00000 + 27 1 28 26 p1 58 1288 1613 1.25233 1613 0 0.00000 + 28 1 29 27 p1 58 1334 1671 1.25262 1671 0 0.00000 + 29 1 30 28 p1 58 1380 1729 1.25290 1729 0 0.00000 + 30 1 31 29 p1 58 1426 1787 1.25316 1787 0 0.00000 + 31 2 1 -1 base 46 45 46 1.02222 46 0 0.00000 + 32 2 2 31 p1 57 90 103 1.14444 103 0 0.00000 + 33 2 3 32 p1 57 135 160 1.18519 160 0 0.00000 + 34 2 4 33 p1 57 180 217 1.20556 217 0 0.00000 + 35 2 5 34 p1 57 225 274 1.21778 274 0 0.00000 + 36 2 6 35 p1 57 270 331 1.22593 331 0 0.00000 + 37 2 7 36 p1 58 316 389 1.23101 389 0 0.00000 + 38 2 8 37 p1 58 362 447 1.23481 447 0 0.00000 + 39 3 1 -1 base 46 45 46 1.02222 46 0 0.00000 + 40 3 2 39 p1 57 90 103 1.14444 103 0 0.00000 + 41 3 3 40 p1 57 135 160 1.18519 160 0 0.00000 + 42 3 4 41 p1 57 180 217 1.20556 217 0 0.00000 + 43 3 5 42 p1 58 226 275 1.21681 275 0 0.00000 + 44 3 6 43 p1 58 272 333 1.22426 333 0 0.00000 + 45 3 7 44 p1 58 318 391 1.22956 391 0 0.00000 + 46 3 8 45 p1 58 364 449 1.23352 449 0 0.00000 + 47 3 9 46 p1 58 410 507 1.23659 507 0 0.00000 + 48 3 10 47 p1 58 456 565 1.23904 565 0 0.00000 + 49 3 11 48 p1 58 502 623 1.24104 623 0 0.00000 + 50 3 12 49 p1 58 548 681 1.24270 681 0 0.00000 + 51 3 13 50 p1 58 594 739 1.24411 739 0 0.00000 + 52 3 14 51 p1 58 640 797 1.24531 797 0 0.00000 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000