Repository 'purge_dups'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/purge_dups

Changeset 3:76d4cbefff85 (2021-06-14)
Previous changeset 2:17b378303f2d (2021-04-27) Next changeset 4:a315c25dc813 (2021-10-12)
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/purge_dups commit 5d56aa02b0f905507e1d98a2d74f0629b7591cd3"
modified:
purge_dups.xml
added:
hist_plot.py
test-data/hist.png
test-data/hist_options.png
test-data/out_hist_options.cov
test-data/out_hist_options.wig
test-data/pbcstats.tabular
test-data/pbcstats2.tabular
test-data/pbcstats_hist_options.tabular
test-data/tx_stats.tabular
b
diff -r 17b378303f2d -r 76d4cbefff85 hist_plot.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hist_plot.py Mon Jun 14 18:01:05 2021 +0000
[
@@ -0,0 +1,129 @@
+#!/usr/bin/env python3
+# read depth histogram plot
+
+# imported from https://github.com/dfguan/purge_dups/blob/master/scripts/hist_plot.py
+
+import argparse
+
+import matplotlib as mpl
+import matplotlib.pyplot as plt
+
+mpl.use("Agg")
+
+
+def col_hist(stat_fn, delim):
+    hists = []
+    # we consider the coverage histogram start with 0
+    with open(stat_fn) as f:
+        for ln in f:
+            lnlist = ln.strip().split(delim)
+            hists.append(int(lnlist[1]))
+    return hists
+
+
+def get_cutoffs(con):
+    if con:
+        lnlst = []
+        with open(con) as f:
+            lnlst = f.readline().strip().split("\t")
+        if len(lnlst):
+            return [int(lnlst[0]), int(lnlst[3]), int(lnlst[5])]
+        else:
+            return []
+    else:
+        return []
+
+
+def mk_plot(hists, cutoffs, ttle, xm, xM, ym, yM, out_fl):
+
+    if ttle is None:
+        ttle = "read depth histogram"
+    if xm is None:
+        xm = 0
+    if xM is None:
+        xM = len(hists) - 2  # ignore the last read depth count
+    if ym is None:
+        ym = 0
+    if yM is None:
+        yM = 1.2 * max(hists)
+    x = [t for t in range(xm, xM)]
+    plt.axis([xm, xM, ym, yM])
+    width = 8
+    height = 6
+    plt.figure(num=None, figsize=(width, height))
+    plt.plot(x, hists[xm:xM], label="l", color="blue")  #
+    plt.xticks([z for z in range(xm, xM, 10)], fontsize=3)
+    # cutoffs
+    colors = ["r", "g", "c"]
+    if len(cutoffs):
+        for i in range(len(cutoffs)):
+            plt.text(cutoffs[i], 0, str(cutoffs[i]), fontsize=5, color=colors[i])
+            plt.axvline(x=cutoffs[i], linewidth=1, color=colors[i])
+
+    plt.title(ttle)
+    plt.gca().xaxis.grid(True, color="black", alpha=0.2)
+
+    # plt.grid(True, color="black", alpha=0.2)
+    # plt.gca().get_legend().remove()
+
+    plt.tight_layout()
+    plt.savefig(out_fl, dpi=300)
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="read depth histogram plot")
+
+    parser.add_argument(
+        "-c",
+        "--cutoffs",
+        type=str,
+        action="store",
+        dest="con",
+        help="read depth cutoffs",
+    )
+    parser.add_argument(
+        "-y", "--ymin", type=int, action="store", dest="ymin", help="set ymin"
+    )
+    parser.add_argument(
+        "-x", "--xmin", type=int, action="store", dest="xmin", help="set xmin"
+    )
+    parser.add_argument(
+        "-Y", "--ymax", type=int, action="store", dest="ymax", help="set ymax"
+    )
+    parser.add_argument(
+        "-X", "--xmax", type=int, action="store", dest="xmax", help="set xmax"
+    )
+    parser.add_argument(
+        "-t",
+        "--title",
+        type=str,
+        action="store",
+        dest="title",
+        help="figure title [NULL]",
+        default="",
+    )
+    parser.add_argument(
+        "-d",
+        "--delim",
+        type=str,
+        action="store",
+        dest="delim",
+        help="delimiter",
+        default="\t",
+    )
+    parser.add_argument("-v", "--version", action="version", version="hist_plot 0.0.0")
+    parser.add_argument("stat_fn", type=str, action="store", help="stat file")
+    parser.add_argument("out_fn", type=str, action="store", help="output file")
+    opts = parser.parse_args()
+    hists = col_hist(opts.stat_fn, opts.delim)
+    cutoffs = get_cutoffs(opts.con)
+    mk_plot(
+        hists,
+        cutoffs,
+        opts.title,
+        opts.xmin,
+        opts.xmax,
+        opts.ymin,
+        opts.ymax,
+        opts.out_fn,
+    )
b
diff -r 17b378303f2d -r 76d4cbefff85 purge_dups.xml
--- a/purge_dups.xml Tue Apr 27 20:48:51 2021 +0000
+++ b/purge_dups.xml Mon Jun 14 18:01:05 2021 +0000
[
b'@@ -2,13 +2,72 @@\n     <description>and haplotigs in an assembly based on read depth (purge_dups)</description>\n     <macros>\n         <token name="@TOOL_VERSION@">1.2.5</token>\n-        <token name="@VERSION_SUFFIX@">2</token>\n+        <token name="@VERSION_SUFFIX@">3</token>\n+        <xml name="trimmers">\n+            <section name="section_hist" title="Histogram plot options" >\n+                <!--<param name="cutoffs_his" type="data" optional="true" format="txt" label="Read depth cutoffs file" />-->\n+                <param argument="--ymin" type="integer" optional="true" min="0" label="Specify a minimum for the Y axis"/>\n+                <param argument="--ymax" type="integer" optional="true" label="Specify a maximum for the Y axis"/>\n+                <param argument="--xmin" type="integer" optional="true" min="0" label="Specify a minimum for the X axis"/>\n+                <param argument="--xmax" type="integer" optional="true" label="Specify a maximum for the X axis"/>\n+                <param argument="--title" type="text" value="Read depth histogram plot" label="Histogram title"/>\n+            </section>\n+        </xml>\n+        <token name="@HIST_PLOT@"><![CDATA[\n+            python \'$__tool_directory__/hist_plot.py\' \n+            --cutoffs cutoffs.tsv\n+            #if $function_select.section_hist.ymin\n+                --ymin $function_select.section_hist.ymin\n+            #end if\n+            #if $function_select.section_hist.ymax\n+                --ymax $function_select.section_hist.ymax\n+            #end if\n+            #if $function_select.section_hist.xmin\n+                --xmin $function_select.section_hist.xmin\n+            #end if\n+            #if $function_select.section_hist.xmax\n+                --xmax $function_select.section_hist.xmax\n+            #end if\n+            #if $function_select.section_hist.title\n+                --title \'${function_select.section_hist.title}\'\n+            #end if\n+            depth.stat hist.png\n+        ]]></token>\n+        <token name="@CALCUTS@"><![CDATA[\n+            calcuts\n+            #if $function_select.section_calcuts.min_depth:\n+                -f $function_select.section_calcuts.min_depth\n+            #end if\n+            #if $function_select.section_calcuts.low_depth:\n+                -l $function_select.section_calcuts.low_depth\n+            #end if\n+            #if $function_select.section_calcuts.transition:\n+                -m $function_select.section_calcuts.transition\n+            #end if\n+            #if $function_select.section_calcuts.upper_depth:\n+                -u $function_select.section_calcuts.upper_depth\n+            #end if\n+            $function_select.section_calcuts.ploidy\n+        ]]></token>\n+        <xml name="calcuts">\n+            <section name="section_calcuts" title="Calcuts options">\n+                <param name="min_depth" type="float" label="Minimum depth count fraction to maximum depth coun" min="0" max="1" argument="-f" optional="true" help="Default = 0.1"/>\n+                <param name="low_depth" label="Lower bound for read depth" type="integer" argument="-l" optional="true"/>\n+                <param name="transition" label="Transition between haploid and diploid" type="integer" argument="-m" optional="true"/>\n+                <param name="upper_depth" label="Upper bound for read depth" type="integer" argument="-u" optional="true"/>\n+                <param name="ploidy" argument="-d" type="select" label="Ploidy">\n+                    <option value="-d 0" selected="true">Diploid [0]</option>\n+                    <option value="-d 1">Haploid [1]</option>\n+                </param>\n+            </section>\n+        </xml>\n     </macros>\n     <requirements>\n         <requirement type="package" version="@TOOL_VERSION@">purge_dups</requirement>\n+        <requirement type="package" version="3.4.2">matplotlib-base</requirement>\n     </requirements>\n     <command detect_errors="exit_code"><![CDATA[\n-        #if $function_select.functions ='..b'ig"/>        \n+            <output name="stat_file" value="pbcstats2.tabular"/>\n+            <output name="pbcstat_wig" value="out2.wig"/>\n         </test>\n         <!-- ngscstat -->\n-        <test expect_num_outputs="2">\n+        <test expect_num_outputs="5">\n             <conditional name="function_select">\n                 <param name="functions" value="ngscstat"/>\n                 <param name="input" value="test.bam"/>\n                 <param name="min_align_qual" value="10"/>\n                 <param name="max_insert" value="100"/>\n+                <section name="section_calcuts">\n+                    <param name="min_depth" value="0.01"/>\n+                    <param name="low_depth" value="1"/>\n+                    <param name="transition" value="1"/>\n+                    <param name="upper_depth" value="100"/>\n+                    <param name="ploidy" value="-d 0"/>\n+                </section>\n             </conditional>\n+            <output name="calcuts_tab" value="calcuts_out.tsv"/>\n             <output name="ngscstat_cov" value="ngsc_out.cov"/>\n+            <output name="stat_file" value="tx_stats.tabular"/> \n+            <output name="hist" value="hist.png" ftype="png" compare="sim_size"/>\n         </test>\n         <!-- Calcuts -->\n         <test expect_num_outputs="2">\n             <conditional name="function_select">\n                 <param name="functions" value="calcuts"/>\n                 <param name="input" value="test.stat"/>\n-                <param name="min_depth" value="0.01"/>\n-                <param name="low_depth" value="1"/>\n-                <param name="transition" value="1"/>\n-                <param name="upper_depth" value="100"/>\n-                <param name="ploidy" value="-d 0"/>\n+                <section name="section_calcuts">\n+                    <param name="min_depth" value="0.01"/>\n+                    <param name="low_depth" value="1"/>\n+                    <param name="transition" value="1"/>\n+                    <param name="upper_depth" value="100"/>\n+                    <param name="ploidy" value="-d 0"/>\n+                </section>\n             </conditional>\n             <output name="calcuts_tab" value="calcuts_out.tsv"/>\n         </test>\n@@ -386,6 +481,35 @@\n             </conditional>\n             <output name="get_seqs_purged" value="purged_out.fa"/>\n         </test>\n+        <!-- pbcstat histogram options-->\n+        <test expect_num_outputs="6">\n+            <conditional name="function_select">\n+                <param name="functions" value="pbcstat"/>\n+                <param name="input" value="test.paf"/>\n+                <param name="max_cov" value="1000"/>\n+                <param name="min_map_ratio" value="0.01"/>\n+                <param name="min_map_qual" value="1"/>\n+                <param name="flank" value="1"/>\n+                <param name="primary_alignments" value="-p"/>\n+                <section name="section_calcuts">\n+                    <param name="min_depth" value="0.01"/>\n+                    <param name="low_depth" value="1"/>\n+                    <param name="transition" value="1"/>\n+                    <param name="upper_depth" value="100"/>\n+                    <param name="ploidy" value="-d 0"/>\n+                </section>\n+                <section name="section_hist">\n+                    <param name="ymax" value="100"/>\n+                    <param name="xmax" value="100"/>\n+                    <param name="cutoffs_his" value="calcuts_out.tsv"/>\n+                </section>\n+            </conditional>\n+            <output name="calcuts_tab" value="calcuts_out.tsv"/>\n+            <output name="pbcstat_cov" value="out_hist_options.cov"/>\n+            <output name="pbcstat_wig" value="out_hist_options.wig"/>\n+            <output name="stat_file" value="pbcstats_hist_options.tabular"/>\n+            <output name="hist" value="hist_options.png" ftype="png" compare="sim_size"/>\n+        </test>\n     </tests>\n     <help><![CDATA[\n         .. class:: infomark\n'
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/hist.png
b
Binary file test-data/hist.png has changed
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/hist_options.png
b
Binary file test-data/hist_options.png has changed
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/out_hist_options.cov
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_hist_options.cov Mon Jun 14 18:01:05 2021 +0000
b
@@ -0,0 +1,14 @@
+>gi|528476637:29857558-29915771 58214
+1 29093 0
+29094 29356 2
+29357 33376 0
+33377 41951 1
+41952 58214 0
+>gi|157734152:29655295-29712160 56866
+1 29214 0
+29215 29477 1
+29478 33498 0
+33499 42073 1
+42074 48471 0
+48472 56865 1
+56866 56866 0
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/out_hist_options.wig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_hist_options.wig Mon Jun 14 18:01:05 2021 +0000
b
@@ -0,0 +1,116 @@
+track type="wiggle_0" name="PB"
+fixedStep chrom=gi|528476637:29857558-29915771 start=1 step=1024 span=1024
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+variableStep chrom=gi|528476637:29857558-29915771 span=1894
+56321 0
+fixedStep chrom=gi|157734152:29655295-29712160 start=1 step=1024 span=1024
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+variableStep chrom=gi|157734152:29655295-29712160 span=1570
+55297 0
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/pbcstats.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/pbcstats.tabular Mon Jun 14 18:01:05 2021 +0000
b
@@ -0,0 +1,1001 @@
+0 89010
+1 25807
+2 263
+3 0
+4 0
+5 0
+6 0
+7 0
+8 0
+9 0
+10 0
+11 0
+12 0
+13 0
+14 0
+15 0
+16 0
+17 0
+18 0
+19 0
+20 0
+21 0
+22 0
+23 0
+24 0
+25 0
+26 0
+27 0
+28 0
+29 0
+30 0
+31 0
+32 0
+33 0
+34 0
+35 0
+36 0
+37 0
+38 0
+39 0
+40 0
+41 0
+42 0
+43 0
+44 0
+45 0
+46 0
+47 0
+48 0
+49 0
+50 0
+51 0
+52 0
+53 0
+54 0
+55 0
+56 0
+57 0
+58 0
+59 0
+60 0
+61 0
+62 0
+63 0
+64 0
+65 0
+66 0
+67 0
+68 0
+69 0
+70 0
+71 0
+72 0
+73 0
+74 0
+75 0
+76 0
+77 0
+78 0
+79 0
+80 0
+81 0
+82 0
+83 0
+84 0
+85 0
+86 0
+87 0
+88 0
+89 0
+90 0
+91 0
+92 0
+93 0
+94 0
+95 0
+96 0
+97 0
+98 0
+99 0
+100 0
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+122 0
+123 0
+124 0
+125 0
+126 0
+127 0
+128 0
+129 0
+130 0
+131 0
+132 0
+133 0
+134 0
+135 0
+136 0
+137 0
+138 0
+139 0
+140 0
+141 0
+142 0
+143 0
+144 0
+145 0
+146 0
+147 0
+148 0
+149 0
+150 0
+151 0
+152 0
+153 0
+154 0
+155 0
+156 0
+157 0
+158 0
+159 0
+160 0
+161 0
+162 0
+163 0
+164 0
+165 0
+166 0
+167 0
+168 0
+169 0
+170 0
+171 0
+172 0
+173 0
+174 0
+175 0
+176 0
+177 0
+178 0
+179 0
+180 0
+181 0
+182 0
+183 0
+184 0
+185 0
+186 0
+187 0
+188 0
+189 0
+190 0
+191 0
+192 0
+193 0
+194 0
+195 0
+196 0
+197 0
+198 0
+199 0
+200 0
+201 0
+202 0
+203 0
+204 0
+205 0
+206 0
+207 0
+208 0
+209 0
+210 0
+211 0
+212 0
+213 0
+214 0
+215 0
+216 0
+217 0
+218 0
+219 0
+220 0
+221 0
+222 0
+223 0
+224 0
+225 0
+226 0
+227 0
+228 0
+229 0
+230 0
+231 0
+232 0
+233 0
+234 0
+235 0
+236 0
+237 0
+238 0
+239 0
+240 0
+241 0
+242 0
+243 0
+244 0
+245 0
+246 0
+247 0
+248 0
+249 0
+250 0
+251 0
+252 0
+253 0
+254 0
+255 0
+256 0
+257 0
+258 0
+259 0
+260 0
+261 0
+262 0
+263 0
+264 0
+265 0
+266 0
+267 0
+268 0
+269 0
+270 0
+271 0
+272 0
+273 0
+274 0
+275 0
+276 0
+277 0
+278 0
+279 0
+280 0
+281 0
+282 0
+283 0
+284 0
+285 0
+286 0
+287 0
+288 0
+289 0
+290 0
+291 0
+292 0
+293 0
+294 0
+295 0
+296 0
+297 0
+298 0
+299 0
+300 0
+301 0
+302 0
+303 0
+304 0
+305 0
+306 0
+307 0
+308 0
+309 0
+310 0
+311 0
+312 0
+313 0
+314 0
+315 0
+316 0
+317 0
+318 0
+319 0
+320 0
+321 0
+322 0
+323 0
+324 0
+325 0
+326 0
+327 0
+328 0
+329 0
+330 0
+331 0
+332 0
+333 0
+334 0
+335 0
+336 0
+337 0
+338 0
+339 0
+340 0
+341 0
+342 0
+343 0
+344 0
+345 0
+346 0
+347 0
+348 0
+349 0
+350 0
+351 0
+352 0
+353 0
+354 0
+355 0
+356 0
+357 0
+358 0
+359 0
+360 0
+361 0
+362 0
+363 0
+364 0
+365 0
+366 0
+367 0
+368 0
+369 0
+370 0
+371 0
+372 0
+373 0
+374 0
+375 0
+376 0
+377 0
+378 0
+379 0
+380 0
+381 0
+382 0
+383 0
+384 0
+385 0
+386 0
+387 0
+388 0
+389 0
+390 0
+391 0
+392 0
+393 0
+394 0
+395 0
+396 0
+397 0
+398 0
+399 0
+400 0
+401 0
+402 0
+403 0
+404 0
+405 0
+406 0
+407 0
+408 0
+409 0
+410 0
+411 0
+412 0
+413 0
+414 0
+415 0
+416 0
+417 0
+418 0
+419 0
+420 0
+421 0
+422 0
+423 0
+424 0
+425 0
+426 0
+427 0
+428 0
+429 0
+430 0
+431 0
+432 0
+433 0
+434 0
+435 0
+436 0
+437 0
+438 0
+439 0
+440 0
+441 0
+442 0
+443 0
+444 0
+445 0
+446 0
+447 0
+448 0
+449 0
+450 0
+451 0
+452 0
+453 0
+454 0
+455 0
+456 0
+457 0
+458 0
+459 0
+460 0
+461 0
+462 0
+463 0
+464 0
+465 0
+466 0
+467 0
+468 0
+469 0
+470 0
+471 0
+472 0
+473 0
+474 0
+475 0
+476 0
+477 0
+478 0
+479 0
+480 0
+481 0
+482 0
+483 0
+484 0
+485 0
+486 0
+487 0
+488 0
+489 0
+490 0
+491 0
+492 0
+493 0
+494 0
+495 0
+496 0
+497 0
+498 0
+499 0
+500 0
+501 0
+502 0
+503 0
+504 0
+505 0
+506 0
+507 0
+508 0
+509 0
+510 0
+511 0
+512 0
+513 0
+514 0
+515 0
+516 0
+517 0
+518 0
+519 0
+520 0
+521 0
+522 0
+523 0
+524 0
+525 0
+526 0
+527 0
+528 0
+529 0
+530 0
+531 0
+532 0
+533 0
+534 0
+535 0
+536 0
+537 0
+538 0
+539 0
+540 0
+541 0
+542 0
+543 0
+544 0
+545 0
+546 0
+547 0
+548 0
+549 0
+550 0
+551 0
+552 0
+553 0
+554 0
+555 0
+556 0
+557 0
+558 0
+559 0
+560 0
+561 0
+562 0
+563 0
+564 0
+565 0
+566 0
+567 0
+568 0
+569 0
+570 0
+571 0
+572 0
+573 0
+574 0
+575 0
+576 0
+577 0
+578 0
+579 0
+580 0
+581 0
+582 0
+583 0
+584 0
+585 0
+586 0
+587 0
+588 0
+589 0
+590 0
+591 0
+592 0
+593 0
+594 0
+595 0
+596 0
+597 0
+598 0
+599 0
+600 0
+601 0
+602 0
+603 0
+604 0
+605 0
+606 0
+607 0
+608 0
+609 0
+610 0
+611 0
+612 0
+613 0
+614 0
+615 0
+616 0
+617 0
+618 0
+619 0
+620 0
+621 0
+622 0
+623 0
+624 0
+625 0
+626 0
+627 0
+628 0
+629 0
+630 0
+631 0
+632 0
+633 0
+634 0
+635 0
+636 0
+637 0
+638 0
+639 0
+640 0
+641 0
+642 0
+643 0
+644 0
+645 0
+646 0
+647 0
+648 0
+649 0
+650 0
+651 0
+652 0
+653 0
+654 0
+655 0
+656 0
+657 0
+658 0
+659 0
+660 0
+661 0
+662 0
+663 0
+664 0
+665 0
+666 0
+667 0
+668 0
+669 0
+670 0
+671 0
+672 0
+673 0
+674 0
+675 0
+676 0
+677 0
+678 0
+679 0
+680 0
+681 0
+682 0
+683 0
+684 0
+685 0
+686 0
+687 0
+688 0
+689 0
+690 0
+691 0
+692 0
+693 0
+694 0
+695 0
+696 0
+697 0
+698 0
+699 0
+700 0
+701 0
+702 0
+703 0
+704 0
+705 0
+706 0
+707 0
+708 0
+709 0
+710 0
+711 0
+712 0
+713 0
+714 0
+715 0
+716 0
+717 0
+718 0
+719 0
+720 0
+721 0
+722 0
+723 0
+724 0
+725 0
+726 0
+727 0
+728 0
+729 0
+730 0
+731 0
+732 0
+733 0
+734 0
+735 0
+736 0
+737 0
+738 0
+739 0
+740 0
+741 0
+742 0
+743 0
+744 0
+745 0
+746 0
+747 0
+748 0
+749 0
+750 0
+751 0
+752 0
+753 0
+754 0
+755 0
+756 0
+757 0
+758 0
+759 0
+760 0
+761 0
+762 0
+763 0
+764 0
+765 0
+766 0
+767 0
+768 0
+769 0
+770 0
+771 0
+772 0
+773 0
+774 0
+775 0
+776 0
+777 0
+778 0
+779 0
+780 0
+781 0
+782 0
+783 0
+784 0
+785 0
+786 0
+787 0
+788 0
+789 0
+790 0
+791 0
+792 0
+793 0
+794 0
+795 0
+796 0
+797 0
+798 0
+799 0
+800 0
+801 0
+802 0
+803 0
+804 0
+805 0
+806 0
+807 0
+808 0
+809 0
+810 0
+811 0
+812 0
+813 0
+814 0
+815 0
+816 0
+817 0
+818 0
+819 0
+820 0
+821 0
+822 0
+823 0
+824 0
+825 0
+826 0
+827 0
+828 0
+829 0
+830 0
+831 0
+832 0
+833 0
+834 0
+835 0
+836 0
+837 0
+838 0
+839 0
+840 0
+841 0
+842 0
+843 0
+844 0
+845 0
+846 0
+847 0
+848 0
+849 0
+850 0
+851 0
+852 0
+853 0
+854 0
+855 0
+856 0
+857 0
+858 0
+859 0
+860 0
+861 0
+862 0
+863 0
+864 0
+865 0
+866 0
+867 0
+868 0
+869 0
+870 0
+871 0
+872 0
+873 0
+874 0
+875 0
+876 0
+877 0
+878 0
+879 0
+880 0
+881 0
+882 0
+883 0
+884 0
+885 0
+886 0
+887 0
+888 0
+889 0
+890 0
+891 0
+892 0
+893 0
+894 0
+895 0
+896 0
+897 0
+898 0
+899 0
+900 0
+901 0
+902 0
+903 0
+904 0
+905 0
+906 0
+907 0
+908 0
+909 0
+910 0
+911 0
+912 0
+913 0
+914 0
+915 0
+916 0
+917 0
+918 0
+919 0
+920 0
+921 0
+922 0
+923 0
+924 0
+925 0
+926 0
+927 0
+928 0
+929 0
+930 0
+931 0
+932 0
+933 0
+934 0
+935 0
+936 0
+937 0
+938 0
+939 0
+940 0
+941 0
+942 0
+943 0
+944 0
+945 0
+946 0
+947 0
+948 0
+949 0
+950 0
+951 0
+952 0
+953 0
+954 0
+955 0
+956 0
+957 0
+958 0
+959 0
+960 0
+961 0
+962 0
+963 0
+964 0
+965 0
+966 0
+967 0
+968 0
+969 0
+970 0
+971 0
+972 0
+973 0
+974 0
+975 0
+976 0
+977 0
+978 0
+979 0
+980 0
+981 0
+982 0
+983 0
+984 0
+985 0
+986 0
+987 0
+988 0
+989 0
+990 0
+991 0
+992 0
+993 0
+994 0
+995 0
+996 0
+997 0
+998 0
+999 0
+1000 0
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/pbcstats2.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/pbcstats2.tabular Mon Jun 14 18:01:05 2021 +0000
b
@@ -0,0 +1,501 @@
+0 89000
+1 25815
+2 265
+3 0
+4 0
+5 0
+6 0
+7 0
+8 0
+9 0
+10 0
+11 0
+12 0
+13 0
+14 0
+15 0
+16 0
+17 0
+18 0
+19 0
+20 0
+21 0
+22 0
+23 0
+24 0
+25 0
+26 0
+27 0
+28 0
+29 0
+30 0
+31 0
+32 0
+33 0
+34 0
+35 0
+36 0
+37 0
+38 0
+39 0
+40 0
+41 0
+42 0
+43 0
+44 0
+45 0
+46 0
+47 0
+48 0
+49 0
+50 0
+51 0
+52 0
+53 0
+54 0
+55 0
+56 0
+57 0
+58 0
+59 0
+60 0
+61 0
+62 0
+63 0
+64 0
+65 0
+66 0
+67 0
+68 0
+69 0
+70 0
+71 0
+72 0
+73 0
+74 0
+75 0
+76 0
+77 0
+78 0
+79 0
+80 0
+81 0
+82 0
+83 0
+84 0
+85 0
+86 0
+87 0
+88 0
+89 0
+90 0
+91 0
+92 0
+93 0
+94 0
+95 0
+96 0
+97 0
+98 0
+99 0
+100 0
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+122 0
+123 0
+124 0
+125 0
+126 0
+127 0
+128 0
+129 0
+130 0
+131 0
+132 0
+133 0
+134 0
+135 0
+136 0
+137 0
+138 0
+139 0
+140 0
+141 0
+142 0
+143 0
+144 0
+145 0
+146 0
+147 0
+148 0
+149 0
+150 0
+151 0
+152 0
+153 0
+154 0
+155 0
+156 0
+157 0
+158 0
+159 0
+160 0
+161 0
+162 0
+163 0
+164 0
+165 0
+166 0
+167 0
+168 0
+169 0
+170 0
+171 0
+172 0
+173 0
+174 0
+175 0
+176 0
+177 0
+178 0
+179 0
+180 0
+181 0
+182 0
+183 0
+184 0
+185 0
+186 0
+187 0
+188 0
+189 0
+190 0
+191 0
+192 0
+193 0
+194 0
+195 0
+196 0
+197 0
+198 0
+199 0
+200 0
+201 0
+202 0
+203 0
+204 0
+205 0
+206 0
+207 0
+208 0
+209 0
+210 0
+211 0
+212 0
+213 0
+214 0
+215 0
+216 0
+217 0
+218 0
+219 0
+220 0
+221 0
+222 0
+223 0
+224 0
+225 0
+226 0
+227 0
+228 0
+229 0
+230 0
+231 0
+232 0
+233 0
+234 0
+235 0
+236 0
+237 0
+238 0
+239 0
+240 0
+241 0
+242 0
+243 0
+244 0
+245 0
+246 0
+247 0
+248 0
+249 0
+250 0
+251 0
+252 0
+253 0
+254 0
+255 0
+256 0
+257 0
+258 0
+259 0
+260 0
+261 0
+262 0
+263 0
+264 0
+265 0
+266 0
+267 0
+268 0
+269 0
+270 0
+271 0
+272 0
+273 0
+274 0
+275 0
+276 0
+277 0
+278 0
+279 0
+280 0
+281 0
+282 0
+283 0
+284 0
+285 0
+286 0
+287 0
+288 0
+289 0
+290 0
+291 0
+292 0
+293 0
+294 0
+295 0
+296 0
+297 0
+298 0
+299 0
+300 0
+301 0
+302 0
+303 0
+304 0
+305 0
+306 0
+307 0
+308 0
+309 0
+310 0
+311 0
+312 0
+313 0
+314 0
+315 0
+316 0
+317 0
+318 0
+319 0
+320 0
+321 0
+322 0
+323 0
+324 0
+325 0
+326 0
+327 0
+328 0
+329 0
+330 0
+331 0
+332 0
+333 0
+334 0
+335 0
+336 0
+337 0
+338 0
+339 0
+340 0
+341 0
+342 0
+343 0
+344 0
+345 0
+346 0
+347 0
+348 0
+349 0
+350 0
+351 0
+352 0
+353 0
+354 0
+355 0
+356 0
+357 0
+358 0
+359 0
+360 0
+361 0
+362 0
+363 0
+364 0
+365 0
+366 0
+367 0
+368 0
+369 0
+370 0
+371 0
+372 0
+373 0
+374 0
+375 0
+376 0
+377 0
+378 0
+379 0
+380 0
+381 0
+382 0
+383 0
+384 0
+385 0
+386 0
+387 0
+388 0
+389 0
+390 0
+391 0
+392 0
+393 0
+394 0
+395 0
+396 0
+397 0
+398 0
+399 0
+400 0
+401 0
+402 0
+403 0
+404 0
+405 0
+406 0
+407 0
+408 0
+409 0
+410 0
+411 0
+412 0
+413 0
+414 0
+415 0
+416 0
+417 0
+418 0
+419 0
+420 0
+421 0
+422 0
+423 0
+424 0
+425 0
+426 0
+427 0
+428 0
+429 0
+430 0
+431 0
+432 0
+433 0
+434 0
+435 0
+436 0
+437 0
+438 0
+439 0
+440 0
+441 0
+442 0
+443 0
+444 0
+445 0
+446 0
+447 0
+448 0
+449 0
+450 0
+451 0
+452 0
+453 0
+454 0
+455 0
+456 0
+457 0
+458 0
+459 0
+460 0
+461 0
+462 0
+463 0
+464 0
+465 0
+466 0
+467 0
+468 0
+469 0
+470 0
+471 0
+472 0
+473 0
+474 0
+475 0
+476 0
+477 0
+478 0
+479 0
+480 0
+481 0
+482 0
+483 0
+484 0
+485 0
+486 0
+487 0
+488 0
+489 0
+490 0
+491 0
+492 0
+493 0
+494 0
+495 0
+496 0
+497 0
+498 0
+499 0
+500 0
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/pbcstats_hist_options.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/pbcstats_hist_options.tabular Mon Jun 14 18:01:05 2021 +0000
b
@@ -0,0 +1,1001 @@
+0 89010
+1 25807
+2 263
+3 0
+4 0
+5 0
+6 0
+7 0
+8 0
+9 0
+10 0
+11 0
+12 0
+13 0
+14 0
+15 0
+16 0
+17 0
+18 0
+19 0
+20 0
+21 0
+22 0
+23 0
+24 0
+25 0
+26 0
+27 0
+28 0
+29 0
+30 0
+31 0
+32 0
+33 0
+34 0
+35 0
+36 0
+37 0
+38 0
+39 0
+40 0
+41 0
+42 0
+43 0
+44 0
+45 0
+46 0
+47 0
+48 0
+49 0
+50 0
+51 0
+52 0
+53 0
+54 0
+55 0
+56 0
+57 0
+58 0
+59 0
+60 0
+61 0
+62 0
+63 0
+64 0
+65 0
+66 0
+67 0
+68 0
+69 0
+70 0
+71 0
+72 0
+73 0
+74 0
+75 0
+76 0
+77 0
+78 0
+79 0
+80 0
+81 0
+82 0
+83 0
+84 0
+85 0
+86 0
+87 0
+88 0
+89 0
+90 0
+91 0
+92 0
+93 0
+94 0
+95 0
+96 0
+97 0
+98 0
+99 0
+100 0
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+122 0
+123 0
+124 0
+125 0
+126 0
+127 0
+128 0
+129 0
+130 0
+131 0
+132 0
+133 0
+134 0
+135 0
+136 0
+137 0
+138 0
+139 0
+140 0
+141 0
+142 0
+143 0
+144 0
+145 0
+146 0
+147 0
+148 0
+149 0
+150 0
+151 0
+152 0
+153 0
+154 0
+155 0
+156 0
+157 0
+158 0
+159 0
+160 0
+161 0
+162 0
+163 0
+164 0
+165 0
+166 0
+167 0
+168 0
+169 0
+170 0
+171 0
+172 0
+173 0
+174 0
+175 0
+176 0
+177 0
+178 0
+179 0
+180 0
+181 0
+182 0
+183 0
+184 0
+185 0
+186 0
+187 0
+188 0
+189 0
+190 0
+191 0
+192 0
+193 0
+194 0
+195 0
+196 0
+197 0
+198 0
+199 0
+200 0
+201 0
+202 0
+203 0
+204 0
+205 0
+206 0
+207 0
+208 0
+209 0
+210 0
+211 0
+212 0
+213 0
+214 0
+215 0
+216 0
+217 0
+218 0
+219 0
+220 0
+221 0
+222 0
+223 0
+224 0
+225 0
+226 0
+227 0
+228 0
+229 0
+230 0
+231 0
+232 0
+233 0
+234 0
+235 0
+236 0
+237 0
+238 0
+239 0
+240 0
+241 0
+242 0
+243 0
+244 0
+245 0
+246 0
+247 0
+248 0
+249 0
+250 0
+251 0
+252 0
+253 0
+254 0
+255 0
+256 0
+257 0
+258 0
+259 0
+260 0
+261 0
+262 0
+263 0
+264 0
+265 0
+266 0
+267 0
+268 0
+269 0
+270 0
+271 0
+272 0
+273 0
+274 0
+275 0
+276 0
+277 0
+278 0
+279 0
+280 0
+281 0
+282 0
+283 0
+284 0
+285 0
+286 0
+287 0
+288 0
+289 0
+290 0
+291 0
+292 0
+293 0
+294 0
+295 0
+296 0
+297 0
+298 0
+299 0
+300 0
+301 0
+302 0
+303 0
+304 0
+305 0
+306 0
+307 0
+308 0
+309 0
+310 0
+311 0
+312 0
+313 0
+314 0
+315 0
+316 0
+317 0
+318 0
+319 0
+320 0
+321 0
+322 0
+323 0
+324 0
+325 0
+326 0
+327 0
+328 0
+329 0
+330 0
+331 0
+332 0
+333 0
+334 0
+335 0
+336 0
+337 0
+338 0
+339 0
+340 0
+341 0
+342 0
+343 0
+344 0
+345 0
+346 0
+347 0
+348 0
+349 0
+350 0
+351 0
+352 0
+353 0
+354 0
+355 0
+356 0
+357 0
+358 0
+359 0
+360 0
+361 0
+362 0
+363 0
+364 0
+365 0
+366 0
+367 0
+368 0
+369 0
+370 0
+371 0
+372 0
+373 0
+374 0
+375 0
+376 0
+377 0
+378 0
+379 0
+380 0
+381 0
+382 0
+383 0
+384 0
+385 0
+386 0
+387 0
+388 0
+389 0
+390 0
+391 0
+392 0
+393 0
+394 0
+395 0
+396 0
+397 0
+398 0
+399 0
+400 0
+401 0
+402 0
+403 0
+404 0
+405 0
+406 0
+407 0
+408 0
+409 0
+410 0
+411 0
+412 0
+413 0
+414 0
+415 0
+416 0
+417 0
+418 0
+419 0
+420 0
+421 0
+422 0
+423 0
+424 0
+425 0
+426 0
+427 0
+428 0
+429 0
+430 0
+431 0
+432 0
+433 0
+434 0
+435 0
+436 0
+437 0
+438 0
+439 0
+440 0
+441 0
+442 0
+443 0
+444 0
+445 0
+446 0
+447 0
+448 0
+449 0
+450 0
+451 0
+452 0
+453 0
+454 0
+455 0
+456 0
+457 0
+458 0
+459 0
+460 0
+461 0
+462 0
+463 0
+464 0
+465 0
+466 0
+467 0
+468 0
+469 0
+470 0
+471 0
+472 0
+473 0
+474 0
+475 0
+476 0
+477 0
+478 0
+479 0
+480 0
+481 0
+482 0
+483 0
+484 0
+485 0
+486 0
+487 0
+488 0
+489 0
+490 0
+491 0
+492 0
+493 0
+494 0
+495 0
+496 0
+497 0
+498 0
+499 0
+500 0
+501 0
+502 0
+503 0
+504 0
+505 0
+506 0
+507 0
+508 0
+509 0
+510 0
+511 0
+512 0
+513 0
+514 0
+515 0
+516 0
+517 0
+518 0
+519 0
+520 0
+521 0
+522 0
+523 0
+524 0
+525 0
+526 0
+527 0
+528 0
+529 0
+530 0
+531 0
+532 0
+533 0
+534 0
+535 0
+536 0
+537 0
+538 0
+539 0
+540 0
+541 0
+542 0
+543 0
+544 0
+545 0
+546 0
+547 0
+548 0
+549 0
+550 0
+551 0
+552 0
+553 0
+554 0
+555 0
+556 0
+557 0
+558 0
+559 0
+560 0
+561 0
+562 0
+563 0
+564 0
+565 0
+566 0
+567 0
+568 0
+569 0
+570 0
+571 0
+572 0
+573 0
+574 0
+575 0
+576 0
+577 0
+578 0
+579 0
+580 0
+581 0
+582 0
+583 0
+584 0
+585 0
+586 0
+587 0
+588 0
+589 0
+590 0
+591 0
+592 0
+593 0
+594 0
+595 0
+596 0
+597 0
+598 0
+599 0
+600 0
+601 0
+602 0
+603 0
+604 0
+605 0
+606 0
+607 0
+608 0
+609 0
+610 0
+611 0
+612 0
+613 0
+614 0
+615 0
+616 0
+617 0
+618 0
+619 0
+620 0
+621 0
+622 0
+623 0
+624 0
+625 0
+626 0
+627 0
+628 0
+629 0
+630 0
+631 0
+632 0
+633 0
+634 0
+635 0
+636 0
+637 0
+638 0
+639 0
+640 0
+641 0
+642 0
+643 0
+644 0
+645 0
+646 0
+647 0
+648 0
+649 0
+650 0
+651 0
+652 0
+653 0
+654 0
+655 0
+656 0
+657 0
+658 0
+659 0
+660 0
+661 0
+662 0
+663 0
+664 0
+665 0
+666 0
+667 0
+668 0
+669 0
+670 0
+671 0
+672 0
+673 0
+674 0
+675 0
+676 0
+677 0
+678 0
+679 0
+680 0
+681 0
+682 0
+683 0
+684 0
+685 0
+686 0
+687 0
+688 0
+689 0
+690 0
+691 0
+692 0
+693 0
+694 0
+695 0
+696 0
+697 0
+698 0
+699 0
+700 0
+701 0
+702 0
+703 0
+704 0
+705 0
+706 0
+707 0
+708 0
+709 0
+710 0
+711 0
+712 0
+713 0
+714 0
+715 0
+716 0
+717 0
+718 0
+719 0
+720 0
+721 0
+722 0
+723 0
+724 0
+725 0
+726 0
+727 0
+728 0
+729 0
+730 0
+731 0
+732 0
+733 0
+734 0
+735 0
+736 0
+737 0
+738 0
+739 0
+740 0
+741 0
+742 0
+743 0
+744 0
+745 0
+746 0
+747 0
+748 0
+749 0
+750 0
+751 0
+752 0
+753 0
+754 0
+755 0
+756 0
+757 0
+758 0
+759 0
+760 0
+761 0
+762 0
+763 0
+764 0
+765 0
+766 0
+767 0
+768 0
+769 0
+770 0
+771 0
+772 0
+773 0
+774 0
+775 0
+776 0
+777 0
+778 0
+779 0
+780 0
+781 0
+782 0
+783 0
+784 0
+785 0
+786 0
+787 0
+788 0
+789 0
+790 0
+791 0
+792 0
+793 0
+794 0
+795 0
+796 0
+797 0
+798 0
+799 0
+800 0
+801 0
+802 0
+803 0
+804 0
+805 0
+806 0
+807 0
+808 0
+809 0
+810 0
+811 0
+812 0
+813 0
+814 0
+815 0
+816 0
+817 0
+818 0
+819 0
+820 0
+821 0
+822 0
+823 0
+824 0
+825 0
+826 0
+827 0
+828 0
+829 0
+830 0
+831 0
+832 0
+833 0
+834 0
+835 0
+836 0
+837 0
+838 0
+839 0
+840 0
+841 0
+842 0
+843 0
+844 0
+845 0
+846 0
+847 0
+848 0
+849 0
+850 0
+851 0
+852 0
+853 0
+854 0
+855 0
+856 0
+857 0
+858 0
+859 0
+860 0
+861 0
+862 0
+863 0
+864 0
+865 0
+866 0
+867 0
+868 0
+869 0
+870 0
+871 0
+872 0
+873 0
+874 0
+875 0
+876 0
+877 0
+878 0
+879 0
+880 0
+881 0
+882 0
+883 0
+884 0
+885 0
+886 0
+887 0
+888 0
+889 0
+890 0
+891 0
+892 0
+893 0
+894 0
+895 0
+896 0
+897 0
+898 0
+899 0
+900 0
+901 0
+902 0
+903 0
+904 0
+905 0
+906 0
+907 0
+908 0
+909 0
+910 0
+911 0
+912 0
+913 0
+914 0
+915 0
+916 0
+917 0
+918 0
+919 0
+920 0
+921 0
+922 0
+923 0
+924 0
+925 0
+926 0
+927 0
+928 0
+929 0
+930 0
+931 0
+932 0
+933 0
+934 0
+935 0
+936 0
+937 0
+938 0
+939 0
+940 0
+941 0
+942 0
+943 0
+944 0
+945 0
+946 0
+947 0
+948 0
+949 0
+950 0
+951 0
+952 0
+953 0
+954 0
+955 0
+956 0
+957 0
+958 0
+959 0
+960 0
+961 0
+962 0
+963 0
+964 0
+965 0
+966 0
+967 0
+968 0
+969 0
+970 0
+971 0
+972 0
+973 0
+974 0
+975 0
+976 0
+977 0
+978 0
+979 0
+980 0
+981 0
+982 0
+983 0
+984 0
+985 0
+986 0
+987 0
+988 0
+989 0
+990 0
+991 0
+992 0
+993 0
+994 0
+995 0
+996 0
+997 0
+998 0
+999 0
+1000 0
b
diff -r 17b378303f2d -r 76d4cbefff85 test-data/tx_stats.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tx_stats.tabular Mon Jun 14 18:01:05 2021 +0000
b
@@ -0,0 +1,501 @@
+0 0
+1 0
+2 0
+3 0
+4 0
+5 0
+6 0
+7 0
+8 0
+9 0
+10 0
+11 0
+12 0
+13 0
+14 0
+15 0
+16 0
+17 0
+18 0
+19 0
+20 0
+21 0
+22 0
+23 0
+24 0
+25 0
+26 0
+27 0
+28 0
+29 0
+30 0
+31 0
+32 0
+33 0
+34 0
+35 0
+36 0
+37 0
+38 0
+39 0
+40 0
+41 0
+42 0
+43 0
+44 0
+45 0
+46 0
+47 0
+48 0
+49 0
+50 0
+51 0
+52 0
+53 0
+54 0
+55 0
+56 0
+57 0
+58 0
+59 0
+60 0
+61 0
+62 0
+63 0
+64 0
+65 0
+66 0
+67 0
+68 0
+69 0
+70 0
+71 0
+72 0
+73 0
+74 0
+75 0
+76 0
+77 0
+78 0
+79 0
+80 0
+81 0
+82 0
+83 0
+84 0
+85 0
+86 0
+87 0
+88 0
+89 0
+90 0
+91 0
+92 0
+93 0
+94 0
+95 0
+96 0
+97 0
+98 0
+99 0
+100 0
+101 0
+102 0
+103 0
+104 0
+105 0
+106 0
+107 0
+108 0
+109 0
+110 0
+111 0
+112 0
+113 0
+114 0
+115 0
+116 0
+117 0
+118 0
+119 0
+120 0
+121 0
+122 0
+123 0
+124 0
+125 0
+126 0
+127 0
+128 0
+129 0
+130 0
+131 0
+132 0
+133 0
+134 0
+135 0
+136 0
+137 0
+138 0
+139 0
+140 0
+141 0
+142 0
+143 0
+144 0
+145 0
+146 0
+147 0
+148 0
+149 0
+150 0
+151 0
+152 0
+153 0
+154 0
+155 0
+156 0
+157 0
+158 0
+159 0
+160 0
+161 0
+162 0
+163 0
+164 0
+165 0
+166 0
+167 0
+168 0
+169 0
+170 0
+171 0
+172 0
+173 0
+174 0
+175 0
+176 0
+177 0
+178 0
+179 0
+180 0
+181 0
+182 0
+183 0
+184 0
+185 0
+186 0
+187 0
+188 0
+189 0
+190 0
+191 0
+192 0
+193 0
+194 0
+195 0
+196 0
+197 0
+198 0
+199 0
+200 0
+201 0
+202 0
+203 0
+204 0
+205 0
+206 0
+207 0
+208 0
+209 0
+210 0
+211 0
+212 0
+213 0
+214 0
+215 0
+216 0
+217 0
+218 0
+219 0
+220 0
+221 0
+222 0
+223 0
+224 0
+225 0
+226 0
+227 0
+228 0
+229 0
+230 0
+231 0
+232 0
+233 0
+234 0
+235 0
+236 0
+237 0
+238 0
+239 0
+240 0
+241 0
+242 0
+243 0
+244 0
+245 0
+246 0
+247 0
+248 0
+249 0
+250 0
+251 0
+252 0
+253 0
+254 0
+255 0
+256 0
+257 0
+258 0
+259 0
+260 0
+261 0
+262 0
+263 0
+264 0
+265 0
+266 0
+267 0
+268 0
+269 0
+270 0
+271 0
+272 0
+273 0
+274 0
+275 0
+276 0
+277 0
+278 0
+279 0
+280 0
+281 0
+282 0
+283 0
+284 0
+285 0
+286 0
+287 0
+288 0
+289 0
+290 0
+291 0
+292 0
+293 0
+294 0
+295 0
+296 0
+297 0
+298 0
+299 0
+300 0
+301 0
+302 0
+303 0
+304 0
+305 0
+306 0
+307 0
+308 0
+309 0
+310 0
+311 0
+312 0
+313 0
+314 0
+315 0
+316 0
+317 0
+318 0
+319 0
+320 0
+321 0
+322 0
+323 0
+324 0
+325 0
+326 0
+327 0
+328 0
+329 0
+330 0
+331 0
+332 0
+333 0
+334 0
+335 0
+336 0
+337 0
+338 0
+339 0
+340 0
+341 0
+342 0
+343 0
+344 0
+345 0
+346 0
+347 0
+348 0
+349 0
+350 0
+351 0
+352 0
+353 0
+354 0
+355 0
+356 0
+357 0
+358 0
+359 0
+360 0
+361 0
+362 0
+363 0
+364 0
+365 0
+366 0
+367 0
+368 0
+369 0
+370 0
+371 0
+372 0
+373 0
+374 0
+375 0
+376 0
+377 0
+378 0
+379 0
+380 0
+381 0
+382 0
+383 0
+384 0
+385 0
+386 0
+387 0
+388 0
+389 0
+390 0
+391 0
+392 0
+393 0
+394 0
+395 0
+396 0
+397 0
+398 0
+399 0
+400 0
+401 0
+402 0
+403 0
+404 0
+405 0
+406 0
+407 0
+408 0
+409 0
+410 0
+411 0
+412 0
+413 0
+414 0
+415 0
+416 0
+417 0
+418 0
+419 0
+420 0
+421 0
+422 0
+423 0
+424 0
+425 0
+426 0
+427 0
+428 0
+429 0
+430 0
+431 0
+432 0
+433 0
+434 0
+435 0
+436 0
+437 0
+438 0
+439 0
+440 0
+441 0
+442 0
+443 0
+444 0
+445 0
+446 0
+447 0
+448 0
+449 0
+450 0
+451 0
+452 0
+453 0
+454 0
+455 0
+456 0
+457 0
+458 0
+459 0
+460 0
+461 0
+462 0
+463 0
+464 0
+465 0
+466 0
+467 0
+468 0
+469 0
+470 0
+471 0
+472 0
+473 0
+474 0
+475 0
+476 0
+477 0
+478 0
+479 0
+480 0
+481 0
+482 0
+483 0
+484 0
+485 0
+486 0
+487 0
+488 0
+489 0
+490 0
+491 0
+492 0
+493 0
+494 0
+495 0
+496 0
+497 0
+498 0
+499 0
+500 0