keuss 1.6.10 → 1.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Pipeline/Queue.js +12 -2
- package/Queue.js +18 -8
- package/TODO +0 -1
- package/backends/bucket-mongo-safe.js +42 -44
- package/backends/bucket-mongo.js +6 -8
- package/examples/snippets/06-random-consumer-producer.js +5 -5
- package/package.json +6 -6
- package/test/backends_bucket-at-least-once.js +43 -35
- package/test/backends_deadletter.js +10 -1
- package/.nyc_output/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +0 -1
- package/.nyc_output/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +0 -1
- package/.nyc_output/processinfo/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +0 -1
- package/.nyc_output/processinfo/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -79
- package/coverage/index.html +0 -162
- package/coverage/keuss/Pipeline/BaseLink.js.html +0 -636
- package/coverage/keuss/Pipeline/Builder.js.html +0 -615
- package/coverage/keuss/Pipeline/ChoiceLink.js.html +0 -294
- package/coverage/keuss/Pipeline/DirectLink.js.html +0 -231
- package/coverage/keuss/Pipeline/Pipeline.js.html +0 -258
- package/coverage/keuss/Pipeline/Queue.js.html +0 -939
- package/coverage/keuss/Pipeline/Sink.js.html +0 -147
- package/coverage/keuss/Pipeline/index.html +0 -175
- package/coverage/keuss/QFactory-MongoDB-defaults.js.html +0 -219
- package/coverage/keuss/QFactory.js.html +0 -459
- package/coverage/keuss/Queue.js.html +0 -2274
- package/coverage/keuss/Signal.js.html +0 -312
- package/coverage/keuss/Stats.js.html +0 -174
- package/coverage/keuss/backends/bucket-mongo-safe.js.html +0 -2952
- package/coverage/keuss/backends/bucket-mongo.js.html +0 -1167
- package/coverage/keuss/backends/index.html +0 -175
- package/coverage/keuss/backends/mongo.js.html +0 -897
- package/coverage/keuss/backends/pl-mongo.js.html +0 -723
- package/coverage/keuss/backends/ps-mongo.js.html +0 -1038
- package/coverage/keuss/backends/redis-list.js.html +0 -513
- package/coverage/keuss/backends/redis-oq.js.html +0 -543
- package/coverage/keuss/bench/all-mongo.js.html +0 -393
- package/coverage/keuss/bench/index.html +0 -149
- package/coverage/keuss/bench/multi-q.js.html +0 -324
- package/coverage/keuss/bench/redis-oq-consumer-producer.js.html +0 -225
- package/coverage/keuss/bench/redis-oq-consumer.js.html +0 -189
- package/coverage/keuss/bench/redis-oq-producer.js.html +0 -198
- package/coverage/keuss/docusaurus/.docusaurus/client-modules.js.html +0 -93
- package/coverage/keuss/docusaurus/.docusaurus/docusaurus.config.js.html +0 -402
- package/coverage/keuss/docusaurus/.docusaurus/index.html +0 -136
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/01a85c17.4e57aa0a.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/09d5ad39.3009117f.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/1.12cf3eb8.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/12559443.a244228c.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/17896441.5efb3558.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/1be78505.f9c04817.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/2.4e2dc02c.js.html +0 -72
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/3.d549a05d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/36.db0e809a.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/37637b3c.28c0900b.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/3d8d21df.2228b429.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/45a5cd1f.951da354.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/52c38f7a.785707bc.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/57ffbe3d.04d3e53e.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/5f7c35e9.2fa77599.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6299bd84.ec197a3e.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6875c492.cdf3e939.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6beec1d2.6873e708.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/7b786ad4.bbce08e6.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/8070e160.400a4e57.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/88c93c54.e868a433.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/8d3e6f9e.aadf6d32.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/9bc74468.516633c5.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/9beb87c2.71e3744d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/a3732fac.b0f98dbf.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/a6aa9e1f.6ac55e6c.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/baf0d4a2.b50efd2d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/c4f5d8e4.e9dfd999.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/ccc49370.1831890b.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/d4942345.7d23b349.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/e2244795.4ea3d168.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/e64fe266.308265e8.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/f78725cc.5f3e115d.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/fa8d8063.2312a332.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/index.html +0 -565
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/main.66f1008c.js.html +0 -72
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/runtime~main.7d73b048.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/styles.b5ee3016.js.html +0 -69
- package/coverage/keuss/docusaurus/.docusaurus/registry.js.html +0 -165
- package/coverage/keuss/docusaurus/.docusaurus/routes.js.html +0 -447
- package/coverage/keuss/docusaurus/build/01a85c17.4e57aa0a.js.html +0 -69
- package/coverage/keuss/docusaurus/build/09d5ad39.3009117f.js.html +0 -69
- package/coverage/keuss/docusaurus/build/1.12cf3eb8.js.html +0 -69
- package/coverage/keuss/docusaurus/build/12559443.a244228c.js.html +0 -69
- package/coverage/keuss/docusaurus/build/17896441.5efb3558.js.html +0 -69
- package/coverage/keuss/docusaurus/build/1be78505.f9c04817.js.html +0 -69
- package/coverage/keuss/docusaurus/build/2.4e2dc02c.js.html +0 -72
- package/coverage/keuss/docusaurus/build/3.d549a05d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/36.db0e809a.js.html +0 -69
- package/coverage/keuss/docusaurus/build/37637b3c.28c0900b.js.html +0 -69
- package/coverage/keuss/docusaurus/build/3d8d21df.2228b429.js.html +0 -69
- package/coverage/keuss/docusaurus/build/45a5cd1f.951da354.js.html +0 -69
- package/coverage/keuss/docusaurus/build/52c38f7a.785707bc.js.html +0 -69
- package/coverage/keuss/docusaurus/build/57ffbe3d.04d3e53e.js.html +0 -69
- package/coverage/keuss/docusaurus/build/5f7c35e9.2fa77599.js.html +0 -69
- package/coverage/keuss/docusaurus/build/6299bd84.ec197a3e.js.html +0 -69
- package/coverage/keuss/docusaurus/build/6875c492.cdf3e939.js.html +0 -69
- package/coverage/keuss/docusaurus/build/6beec1d2.6873e708.js.html +0 -69
- package/coverage/keuss/docusaurus/build/7b786ad4.bbce08e6.js.html +0 -69
- package/coverage/keuss/docusaurus/build/8070e160.400a4e57.js.html +0 -69
- package/coverage/keuss/docusaurus/build/88c93c54.e868a433.js.html +0 -69
- package/coverage/keuss/docusaurus/build/8d3e6f9e.aadf6d32.js.html +0 -69
- package/coverage/keuss/docusaurus/build/9bc74468.516633c5.js.html +0 -69
- package/coverage/keuss/docusaurus/build/9beb87c2.71e3744d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/a3732fac.b0f98dbf.js.html +0 -69
- package/coverage/keuss/docusaurus/build/a6aa9e1f.6ac55e6c.js.html +0 -69
- package/coverage/keuss/docusaurus/build/baf0d4a2.b50efd2d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/c4f5d8e4.e9dfd999.js.html +0 -69
- package/coverage/keuss/docusaurus/build/ccc49370.1831890b.js.html +0 -69
- package/coverage/keuss/docusaurus/build/d4942345.7d23b349.js.html +0 -69
- package/coverage/keuss/docusaurus/build/e2244795.4ea3d168.js.html +0 -69
- package/coverage/keuss/docusaurus/build/e64fe266.308265e8.js.html +0 -69
- package/coverage/keuss/docusaurus/build/f78725cc.5f3e115d.js.html +0 -69
- package/coverage/keuss/docusaurus/build/fa8d8063.2312a332.js.html +0 -69
- package/coverage/keuss/docusaurus/build/index.html +0 -565
- package/coverage/keuss/docusaurus/build/main.66f1008c.js.html +0 -72
- package/coverage/keuss/docusaurus/build/runtime~main.7d73b048.js.html +0 -69
- package/coverage/keuss/docusaurus/build/styles.b5ee3016.js.html +0 -69
- package/coverage/keuss/docusaurus/docusaurus.config.js.html +0 -360
- package/coverage/keuss/docusaurus/index.html +0 -110
- package/coverage/keuss/docusaurus/sidebars.js.html +0 -96
- package/coverage/keuss/docusaurus/src/pages/index.html +0 -97
- package/coverage/keuss/docusaurus/src/pages/index.js.html +0 -450
- package/coverage/keuss/examples/pipelines/builder/index.html +0 -97
- package/coverage/keuss/examples/pipelines/builder/index.js.html +0 -450
- package/coverage/keuss/examples/pipelines/simplest/index.html +0 -97
- package/coverage/keuss/examples/pipelines/simplest/index.js.html +0 -183
- package/coverage/keuss/examples/pipelines/simulation-fork/index.html +0 -97
- package/coverage/keuss/examples/pipelines/simulation-fork/index.js.html +0 -414
- package/coverage/keuss/examples/snippets/01-simplest-pop-push.js.html +0 -195
- package/coverage/keuss/examples/snippets/02-simplest-reserve-rollback-commit.js.html +0 -201
- package/coverage/keuss/examples/snippets/03-simplest-producer-consumer-loops.js.html +0 -300
- package/coverage/keuss/examples/snippets/04-bucket-mongo-safe-insert-reserve-commit.js.html +0 -303
- package/coverage/keuss/examples/snippets/05-insert-reserve-rollback-deadletter.js.html +0 -384
- package/coverage/keuss/examples/snippets/06-random-consumer-producer.js.html +0 -879
- package/coverage/keuss/examples/snippets/index.html +0 -188
- package/coverage/keuss/examples/snippets/redislabs-consumer-producer.js.html +0 -201
- package/coverage/keuss/examples/snippets/with-redis-stats-and-signaller-consumer-producer.js.html +0 -222
- package/coverage/keuss/examples/webhooks/app.js.html +0 -279
- package/coverage/keuss/examples/webhooks/consumer.js.html +0 -363
- package/coverage/keuss/examples/webhooks/index.html +0 -123
- package/coverage/keuss/examples/webhooks/index.js.html +0 -234
- package/coverage/keuss/index.html +0 -149
- package/coverage/keuss/playground/index.html +0 -136
- package/coverage/keuss/playground/pl-rollback.js.html +0 -234
- package/coverage/keuss/playground/pl1.js.html +0 -291
- package/coverage/keuss/playground/q1.js.html +0 -168
- package/coverage/keuss/playground/simple-pl.js.html +0 -195
- package/coverage/keuss/signal/index.html +0 -123
- package/coverage/keuss/signal/local.js.html +0 -306
- package/coverage/keuss/signal/mongo-capped.js.html +0 -378
- package/coverage/keuss/signal/redis-pubsub.js.html +0 -399
- package/coverage/keuss/stats/index.html +0 -123
- package/coverage/keuss/stats/mem.js.html +0 -519
- package/coverage/keuss/stats/mongo.js.html +0 -930
- package/coverage/keuss/stats/redis.js.html +0 -894
- package/coverage/keuss/utils/RedisConn.js.html +0 -150
- package/coverage/keuss/utils/RedisOrderedQueue.js.html +0 -864
- package/coverage/keuss/utils/index.html +0 -110
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -170
- package/docusaurus/README.md +0 -33
- package/docusaurus/babel.config.js +0 -3
- package/docusaurus/blog/2020-08-04-welcome.md +0 -10
- package/docusaurus/docs/about.md +0 -14
- package/docusaurus/docs/api/factory.md +0 -102
- package/docusaurus/docs/api/queue.md +0 -247
- package/docusaurus/docs/api/signal.md +0 -38
- package/docusaurus/docs/api/stats.md +0 -37
- package/docusaurus/docs/changelog.md +0 -51
- package/docusaurus/docs/concepts.md +0 -116
- package/docusaurus/docs/examples.md +0 -10
- package/docusaurus/docs/quickstart.md +0 -195
- package/docusaurus/docs/style-guide.md +0 -202
- package/docusaurus/docs/usage/buckets.md +0 -43
- package/docusaurus/docs/usage/no-signaller.md +0 -16
- package/docusaurus/docs/usage/pipelines/about.md +0 -128
- package/docusaurus/docs/usage/pipelines/building.md +0 -158
- package/docusaurus/docs/usage/pipelines/examples.md +0 -10
- package/docusaurus/docs/usage/pipelines/processors.md +0 -187
- package/docusaurus/docs/usage/putting-all-together.md +0 -153
- package/docusaurus/docs/usage/redis-conns.md +0 -70
- package/docusaurus/docs/usage/shutdown.md +0 -11
- package/docusaurus/docusaurus.config.js +0 -96
- package/docusaurus/package.json +0 -33
- package/docusaurus/sidebars.js +0 -44
- package/docusaurus/src/css/custom.css +0 -25
- package/docusaurus/src/pages/index.js +0 -127
- package/docusaurus/src/pages/styles.module.css +0 -37
- package/docusaurus/static/.nojekyll +0 -0
- package/docusaurus/static/img/favicon.ico +0 -0
- package/docusaurus/static/img/logo.svg +0 -1
- package/docusaurus/yarn.lock +0 -8384
|
@@ -1,2952 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<title>Code coverage report for keuss/backends/bucket-mongo-safe.js</title>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
7
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
-
<style type='text/css'>
|
|
10
|
-
.coverage-summary .sorter {
|
|
11
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<div class='wrapper'>
|
|
17
|
-
<div class='pad1'>
|
|
18
|
-
<h1>
|
|
19
|
-
<a href="../../index.html">All files</a> / <a href="index.html">keuss/backends</a> bucket-mongo-safe.js
|
|
20
|
-
</h1>
|
|
21
|
-
<div class='clearfix'>
|
|
22
|
-
<div class='fl pad1y space-right2'>
|
|
23
|
-
<span class="strong">86.29% </span>
|
|
24
|
-
<span class="quiet">Statements</span>
|
|
25
|
-
<span class='fraction'>384/445</span>
|
|
26
|
-
</div>
|
|
27
|
-
<div class='fl pad1y space-right2'>
|
|
28
|
-
<span class="strong">74.42% </span>
|
|
29
|
-
<span class="quiet">Branches</span>
|
|
30
|
-
<span class='fraction'>160/215</span>
|
|
31
|
-
</div>
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">95.05% </span>
|
|
34
|
-
<span class="quiet">Functions</span>
|
|
35
|
-
<span class='fraction'>96/101</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class='fl pad1y space-right2'>
|
|
38
|
-
<span class="strong">91.99% </span>
|
|
39
|
-
<span class="quiet">Lines</span>
|
|
40
|
-
<span class='fraction'>356/387</span>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
<p class="quiet">
|
|
44
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
45
|
-
</p>
|
|
46
|
-
</div>
|
|
47
|
-
<div class='status-line high'></div>
|
|
48
|
-
<pre><table class="coverage">
|
|
49
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
50
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
51
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
52
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
53
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
54
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
55
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
56
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
57
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
58
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
59
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
60
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
61
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
62
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
63
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
64
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
65
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
66
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
67
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
68
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
69
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
70
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
71
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
72
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
73
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
74
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
75
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
76
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
77
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
78
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
79
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
80
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
81
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
82
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
83
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
84
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
85
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
86
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
87
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
88
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
89
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
90
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
91
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
92
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
93
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
94
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
95
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
96
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
97
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
98
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
99
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
100
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
101
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
102
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
103
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
104
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
105
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
106
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
107
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
108
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
109
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
110
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
111
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
112
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
113
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
114
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
115
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
116
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
117
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
118
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
119
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
120
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
121
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
122
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
123
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
124
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
125
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
126
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
127
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
128
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
129
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
130
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
131
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
132
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
133
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
134
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
135
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
136
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
137
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
138
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
139
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
140
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
141
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
142
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
143
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
144
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
145
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
146
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
147
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
148
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
149
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
150
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
151
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
152
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
153
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
154
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
155
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
156
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
157
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
158
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
159
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
160
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
161
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
162
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
163
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
164
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
165
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
166
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
167
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
168
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
169
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
170
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
171
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
172
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
173
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
174
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
175
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
176
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
177
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
178
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
179
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
180
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
181
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
182
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
183
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
184
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
185
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
186
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
187
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
188
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
189
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
190
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
191
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
192
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
193
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
194
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
195
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
196
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
197
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
198
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
199
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
200
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
201
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
202
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
203
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
204
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
205
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
206
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
207
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
208
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
209
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
210
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
211
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
212
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
213
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
214
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
215
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
216
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
217
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
218
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
219
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
220
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
221
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
222
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
223
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
224
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
225
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
226
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
227
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
228
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
229
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
230
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
231
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
232
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
233
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
234
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
235
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
236
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
237
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
238
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
239
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
240
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
241
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
242
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
243
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
244
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
245
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
246
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
247
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
248
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
249
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
250
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
251
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
252
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
253
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
254
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
255
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
256
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
257
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
258
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
259
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
260
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
261
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
262
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
263
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
264
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
265
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
266
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
267
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
268
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
269
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
270
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
271
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
272
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
273
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
274
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
275
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
276
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
277
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
278
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
279
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
280
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
281
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
282
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
283
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
284
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
285
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
286
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
287
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
288
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
289
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
290
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
291
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
292
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
293
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
294
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
295
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
296
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
297
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
298
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
299
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
300
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
301
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
302
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
303
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
304
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
305
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
306
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
307
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
308
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
309
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
310
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
311
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
312
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
313
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
314
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
315
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
316
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
317
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
318
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
319
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
320
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
321
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
322
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
323
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
324
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
325
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
326
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
327
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
328
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
329
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
330
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
331
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
332
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
333
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
334
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
335
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
336
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
337
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
338
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
339
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
340
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
341
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
342
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
343
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
344
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
345
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
346
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
347
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
348
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
349
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
350
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
351
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
352
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
353
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
354
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
355
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
356
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
357
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
358
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
359
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
360
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
361
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
362
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
363
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
364
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
365
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
366
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
367
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
368
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
369
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
370
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
371
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
372
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
373
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
374
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
375
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
376
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
377
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
378
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
379
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
380
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
381
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
382
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
383
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
384
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
385
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
386
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
387
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
388
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
389
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
390
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
391
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
392
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
393
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
394
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
395
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
396
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
397
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
398
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
399
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
400
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
401
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
402
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
403
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
404
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
405
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
406
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
407
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
408
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
409
|
-
<a name='L361'></a><a href='#L361'>361</a>
|
|
410
|
-
<a name='L362'></a><a href='#L362'>362</a>
|
|
411
|
-
<a name='L363'></a><a href='#L363'>363</a>
|
|
412
|
-
<a name='L364'></a><a href='#L364'>364</a>
|
|
413
|
-
<a name='L365'></a><a href='#L365'>365</a>
|
|
414
|
-
<a name='L366'></a><a href='#L366'>366</a>
|
|
415
|
-
<a name='L367'></a><a href='#L367'>367</a>
|
|
416
|
-
<a name='L368'></a><a href='#L368'>368</a>
|
|
417
|
-
<a name='L369'></a><a href='#L369'>369</a>
|
|
418
|
-
<a name='L370'></a><a href='#L370'>370</a>
|
|
419
|
-
<a name='L371'></a><a href='#L371'>371</a>
|
|
420
|
-
<a name='L372'></a><a href='#L372'>372</a>
|
|
421
|
-
<a name='L373'></a><a href='#L373'>373</a>
|
|
422
|
-
<a name='L374'></a><a href='#L374'>374</a>
|
|
423
|
-
<a name='L375'></a><a href='#L375'>375</a>
|
|
424
|
-
<a name='L376'></a><a href='#L376'>376</a>
|
|
425
|
-
<a name='L377'></a><a href='#L377'>377</a>
|
|
426
|
-
<a name='L378'></a><a href='#L378'>378</a>
|
|
427
|
-
<a name='L379'></a><a href='#L379'>379</a>
|
|
428
|
-
<a name='L380'></a><a href='#L380'>380</a>
|
|
429
|
-
<a name='L381'></a><a href='#L381'>381</a>
|
|
430
|
-
<a name='L382'></a><a href='#L382'>382</a>
|
|
431
|
-
<a name='L383'></a><a href='#L383'>383</a>
|
|
432
|
-
<a name='L384'></a><a href='#L384'>384</a>
|
|
433
|
-
<a name='L385'></a><a href='#L385'>385</a>
|
|
434
|
-
<a name='L386'></a><a href='#L386'>386</a>
|
|
435
|
-
<a name='L387'></a><a href='#L387'>387</a>
|
|
436
|
-
<a name='L388'></a><a href='#L388'>388</a>
|
|
437
|
-
<a name='L389'></a><a href='#L389'>389</a>
|
|
438
|
-
<a name='L390'></a><a href='#L390'>390</a>
|
|
439
|
-
<a name='L391'></a><a href='#L391'>391</a>
|
|
440
|
-
<a name='L392'></a><a href='#L392'>392</a>
|
|
441
|
-
<a name='L393'></a><a href='#L393'>393</a>
|
|
442
|
-
<a name='L394'></a><a href='#L394'>394</a>
|
|
443
|
-
<a name='L395'></a><a href='#L395'>395</a>
|
|
444
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
445
|
-
<a name='L397'></a><a href='#L397'>397</a>
|
|
446
|
-
<a name='L398'></a><a href='#L398'>398</a>
|
|
447
|
-
<a name='L399'></a><a href='#L399'>399</a>
|
|
448
|
-
<a name='L400'></a><a href='#L400'>400</a>
|
|
449
|
-
<a name='L401'></a><a href='#L401'>401</a>
|
|
450
|
-
<a name='L402'></a><a href='#L402'>402</a>
|
|
451
|
-
<a name='L403'></a><a href='#L403'>403</a>
|
|
452
|
-
<a name='L404'></a><a href='#L404'>404</a>
|
|
453
|
-
<a name='L405'></a><a href='#L405'>405</a>
|
|
454
|
-
<a name='L406'></a><a href='#L406'>406</a>
|
|
455
|
-
<a name='L407'></a><a href='#L407'>407</a>
|
|
456
|
-
<a name='L408'></a><a href='#L408'>408</a>
|
|
457
|
-
<a name='L409'></a><a href='#L409'>409</a>
|
|
458
|
-
<a name='L410'></a><a href='#L410'>410</a>
|
|
459
|
-
<a name='L411'></a><a href='#L411'>411</a>
|
|
460
|
-
<a name='L412'></a><a href='#L412'>412</a>
|
|
461
|
-
<a name='L413'></a><a href='#L413'>413</a>
|
|
462
|
-
<a name='L414'></a><a href='#L414'>414</a>
|
|
463
|
-
<a name='L415'></a><a href='#L415'>415</a>
|
|
464
|
-
<a name='L416'></a><a href='#L416'>416</a>
|
|
465
|
-
<a name='L417'></a><a href='#L417'>417</a>
|
|
466
|
-
<a name='L418'></a><a href='#L418'>418</a>
|
|
467
|
-
<a name='L419'></a><a href='#L419'>419</a>
|
|
468
|
-
<a name='L420'></a><a href='#L420'>420</a>
|
|
469
|
-
<a name='L421'></a><a href='#L421'>421</a>
|
|
470
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
471
|
-
<a name='L423'></a><a href='#L423'>423</a>
|
|
472
|
-
<a name='L424'></a><a href='#L424'>424</a>
|
|
473
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
474
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
475
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
476
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
477
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
478
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
479
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
480
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
481
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
482
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
483
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
484
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
485
|
-
<a name='L437'></a><a href='#L437'>437</a>
|
|
486
|
-
<a name='L438'></a><a href='#L438'>438</a>
|
|
487
|
-
<a name='L439'></a><a href='#L439'>439</a>
|
|
488
|
-
<a name='L440'></a><a href='#L440'>440</a>
|
|
489
|
-
<a name='L441'></a><a href='#L441'>441</a>
|
|
490
|
-
<a name='L442'></a><a href='#L442'>442</a>
|
|
491
|
-
<a name='L443'></a><a href='#L443'>443</a>
|
|
492
|
-
<a name='L444'></a><a href='#L444'>444</a>
|
|
493
|
-
<a name='L445'></a><a href='#L445'>445</a>
|
|
494
|
-
<a name='L446'></a><a href='#L446'>446</a>
|
|
495
|
-
<a name='L447'></a><a href='#L447'>447</a>
|
|
496
|
-
<a name='L448'></a><a href='#L448'>448</a>
|
|
497
|
-
<a name='L449'></a><a href='#L449'>449</a>
|
|
498
|
-
<a name='L450'></a><a href='#L450'>450</a>
|
|
499
|
-
<a name='L451'></a><a href='#L451'>451</a>
|
|
500
|
-
<a name='L452'></a><a href='#L452'>452</a>
|
|
501
|
-
<a name='L453'></a><a href='#L453'>453</a>
|
|
502
|
-
<a name='L454'></a><a href='#L454'>454</a>
|
|
503
|
-
<a name='L455'></a><a href='#L455'>455</a>
|
|
504
|
-
<a name='L456'></a><a href='#L456'>456</a>
|
|
505
|
-
<a name='L457'></a><a href='#L457'>457</a>
|
|
506
|
-
<a name='L458'></a><a href='#L458'>458</a>
|
|
507
|
-
<a name='L459'></a><a href='#L459'>459</a>
|
|
508
|
-
<a name='L460'></a><a href='#L460'>460</a>
|
|
509
|
-
<a name='L461'></a><a href='#L461'>461</a>
|
|
510
|
-
<a name='L462'></a><a href='#L462'>462</a>
|
|
511
|
-
<a name='L463'></a><a href='#L463'>463</a>
|
|
512
|
-
<a name='L464'></a><a href='#L464'>464</a>
|
|
513
|
-
<a name='L465'></a><a href='#L465'>465</a>
|
|
514
|
-
<a name='L466'></a><a href='#L466'>466</a>
|
|
515
|
-
<a name='L467'></a><a href='#L467'>467</a>
|
|
516
|
-
<a name='L468'></a><a href='#L468'>468</a>
|
|
517
|
-
<a name='L469'></a><a href='#L469'>469</a>
|
|
518
|
-
<a name='L470'></a><a href='#L470'>470</a>
|
|
519
|
-
<a name='L471'></a><a href='#L471'>471</a>
|
|
520
|
-
<a name='L472'></a><a href='#L472'>472</a>
|
|
521
|
-
<a name='L473'></a><a href='#L473'>473</a>
|
|
522
|
-
<a name='L474'></a><a href='#L474'>474</a>
|
|
523
|
-
<a name='L475'></a><a href='#L475'>475</a>
|
|
524
|
-
<a name='L476'></a><a href='#L476'>476</a>
|
|
525
|
-
<a name='L477'></a><a href='#L477'>477</a>
|
|
526
|
-
<a name='L478'></a><a href='#L478'>478</a>
|
|
527
|
-
<a name='L479'></a><a href='#L479'>479</a>
|
|
528
|
-
<a name='L480'></a><a href='#L480'>480</a>
|
|
529
|
-
<a name='L481'></a><a href='#L481'>481</a>
|
|
530
|
-
<a name='L482'></a><a href='#L482'>482</a>
|
|
531
|
-
<a name='L483'></a><a href='#L483'>483</a>
|
|
532
|
-
<a name='L484'></a><a href='#L484'>484</a>
|
|
533
|
-
<a name='L485'></a><a href='#L485'>485</a>
|
|
534
|
-
<a name='L486'></a><a href='#L486'>486</a>
|
|
535
|
-
<a name='L487'></a><a href='#L487'>487</a>
|
|
536
|
-
<a name='L488'></a><a href='#L488'>488</a>
|
|
537
|
-
<a name='L489'></a><a href='#L489'>489</a>
|
|
538
|
-
<a name='L490'></a><a href='#L490'>490</a>
|
|
539
|
-
<a name='L491'></a><a href='#L491'>491</a>
|
|
540
|
-
<a name='L492'></a><a href='#L492'>492</a>
|
|
541
|
-
<a name='L493'></a><a href='#L493'>493</a>
|
|
542
|
-
<a name='L494'></a><a href='#L494'>494</a>
|
|
543
|
-
<a name='L495'></a><a href='#L495'>495</a>
|
|
544
|
-
<a name='L496'></a><a href='#L496'>496</a>
|
|
545
|
-
<a name='L497'></a><a href='#L497'>497</a>
|
|
546
|
-
<a name='L498'></a><a href='#L498'>498</a>
|
|
547
|
-
<a name='L499'></a><a href='#L499'>499</a>
|
|
548
|
-
<a name='L500'></a><a href='#L500'>500</a>
|
|
549
|
-
<a name='L501'></a><a href='#L501'>501</a>
|
|
550
|
-
<a name='L502'></a><a href='#L502'>502</a>
|
|
551
|
-
<a name='L503'></a><a href='#L503'>503</a>
|
|
552
|
-
<a name='L504'></a><a href='#L504'>504</a>
|
|
553
|
-
<a name='L505'></a><a href='#L505'>505</a>
|
|
554
|
-
<a name='L506'></a><a href='#L506'>506</a>
|
|
555
|
-
<a name='L507'></a><a href='#L507'>507</a>
|
|
556
|
-
<a name='L508'></a><a href='#L508'>508</a>
|
|
557
|
-
<a name='L509'></a><a href='#L509'>509</a>
|
|
558
|
-
<a name='L510'></a><a href='#L510'>510</a>
|
|
559
|
-
<a name='L511'></a><a href='#L511'>511</a>
|
|
560
|
-
<a name='L512'></a><a href='#L512'>512</a>
|
|
561
|
-
<a name='L513'></a><a href='#L513'>513</a>
|
|
562
|
-
<a name='L514'></a><a href='#L514'>514</a>
|
|
563
|
-
<a name='L515'></a><a href='#L515'>515</a>
|
|
564
|
-
<a name='L516'></a><a href='#L516'>516</a>
|
|
565
|
-
<a name='L517'></a><a href='#L517'>517</a>
|
|
566
|
-
<a name='L518'></a><a href='#L518'>518</a>
|
|
567
|
-
<a name='L519'></a><a href='#L519'>519</a>
|
|
568
|
-
<a name='L520'></a><a href='#L520'>520</a>
|
|
569
|
-
<a name='L521'></a><a href='#L521'>521</a>
|
|
570
|
-
<a name='L522'></a><a href='#L522'>522</a>
|
|
571
|
-
<a name='L523'></a><a href='#L523'>523</a>
|
|
572
|
-
<a name='L524'></a><a href='#L524'>524</a>
|
|
573
|
-
<a name='L525'></a><a href='#L525'>525</a>
|
|
574
|
-
<a name='L526'></a><a href='#L526'>526</a>
|
|
575
|
-
<a name='L527'></a><a href='#L527'>527</a>
|
|
576
|
-
<a name='L528'></a><a href='#L528'>528</a>
|
|
577
|
-
<a name='L529'></a><a href='#L529'>529</a>
|
|
578
|
-
<a name='L530'></a><a href='#L530'>530</a>
|
|
579
|
-
<a name='L531'></a><a href='#L531'>531</a>
|
|
580
|
-
<a name='L532'></a><a href='#L532'>532</a>
|
|
581
|
-
<a name='L533'></a><a href='#L533'>533</a>
|
|
582
|
-
<a name='L534'></a><a href='#L534'>534</a>
|
|
583
|
-
<a name='L535'></a><a href='#L535'>535</a>
|
|
584
|
-
<a name='L536'></a><a href='#L536'>536</a>
|
|
585
|
-
<a name='L537'></a><a href='#L537'>537</a>
|
|
586
|
-
<a name='L538'></a><a href='#L538'>538</a>
|
|
587
|
-
<a name='L539'></a><a href='#L539'>539</a>
|
|
588
|
-
<a name='L540'></a><a href='#L540'>540</a>
|
|
589
|
-
<a name='L541'></a><a href='#L541'>541</a>
|
|
590
|
-
<a name='L542'></a><a href='#L542'>542</a>
|
|
591
|
-
<a name='L543'></a><a href='#L543'>543</a>
|
|
592
|
-
<a name='L544'></a><a href='#L544'>544</a>
|
|
593
|
-
<a name='L545'></a><a href='#L545'>545</a>
|
|
594
|
-
<a name='L546'></a><a href='#L546'>546</a>
|
|
595
|
-
<a name='L547'></a><a href='#L547'>547</a>
|
|
596
|
-
<a name='L548'></a><a href='#L548'>548</a>
|
|
597
|
-
<a name='L549'></a><a href='#L549'>549</a>
|
|
598
|
-
<a name='L550'></a><a href='#L550'>550</a>
|
|
599
|
-
<a name='L551'></a><a href='#L551'>551</a>
|
|
600
|
-
<a name='L552'></a><a href='#L552'>552</a>
|
|
601
|
-
<a name='L553'></a><a href='#L553'>553</a>
|
|
602
|
-
<a name='L554'></a><a href='#L554'>554</a>
|
|
603
|
-
<a name='L555'></a><a href='#L555'>555</a>
|
|
604
|
-
<a name='L556'></a><a href='#L556'>556</a>
|
|
605
|
-
<a name='L557'></a><a href='#L557'>557</a>
|
|
606
|
-
<a name='L558'></a><a href='#L558'>558</a>
|
|
607
|
-
<a name='L559'></a><a href='#L559'>559</a>
|
|
608
|
-
<a name='L560'></a><a href='#L560'>560</a>
|
|
609
|
-
<a name='L561'></a><a href='#L561'>561</a>
|
|
610
|
-
<a name='L562'></a><a href='#L562'>562</a>
|
|
611
|
-
<a name='L563'></a><a href='#L563'>563</a>
|
|
612
|
-
<a name='L564'></a><a href='#L564'>564</a>
|
|
613
|
-
<a name='L565'></a><a href='#L565'>565</a>
|
|
614
|
-
<a name='L566'></a><a href='#L566'>566</a>
|
|
615
|
-
<a name='L567'></a><a href='#L567'>567</a>
|
|
616
|
-
<a name='L568'></a><a href='#L568'>568</a>
|
|
617
|
-
<a name='L569'></a><a href='#L569'>569</a>
|
|
618
|
-
<a name='L570'></a><a href='#L570'>570</a>
|
|
619
|
-
<a name='L571'></a><a href='#L571'>571</a>
|
|
620
|
-
<a name='L572'></a><a href='#L572'>572</a>
|
|
621
|
-
<a name='L573'></a><a href='#L573'>573</a>
|
|
622
|
-
<a name='L574'></a><a href='#L574'>574</a>
|
|
623
|
-
<a name='L575'></a><a href='#L575'>575</a>
|
|
624
|
-
<a name='L576'></a><a href='#L576'>576</a>
|
|
625
|
-
<a name='L577'></a><a href='#L577'>577</a>
|
|
626
|
-
<a name='L578'></a><a href='#L578'>578</a>
|
|
627
|
-
<a name='L579'></a><a href='#L579'>579</a>
|
|
628
|
-
<a name='L580'></a><a href='#L580'>580</a>
|
|
629
|
-
<a name='L581'></a><a href='#L581'>581</a>
|
|
630
|
-
<a name='L582'></a><a href='#L582'>582</a>
|
|
631
|
-
<a name='L583'></a><a href='#L583'>583</a>
|
|
632
|
-
<a name='L584'></a><a href='#L584'>584</a>
|
|
633
|
-
<a name='L585'></a><a href='#L585'>585</a>
|
|
634
|
-
<a name='L586'></a><a href='#L586'>586</a>
|
|
635
|
-
<a name='L587'></a><a href='#L587'>587</a>
|
|
636
|
-
<a name='L588'></a><a href='#L588'>588</a>
|
|
637
|
-
<a name='L589'></a><a href='#L589'>589</a>
|
|
638
|
-
<a name='L590'></a><a href='#L590'>590</a>
|
|
639
|
-
<a name='L591'></a><a href='#L591'>591</a>
|
|
640
|
-
<a name='L592'></a><a href='#L592'>592</a>
|
|
641
|
-
<a name='L593'></a><a href='#L593'>593</a>
|
|
642
|
-
<a name='L594'></a><a href='#L594'>594</a>
|
|
643
|
-
<a name='L595'></a><a href='#L595'>595</a>
|
|
644
|
-
<a name='L596'></a><a href='#L596'>596</a>
|
|
645
|
-
<a name='L597'></a><a href='#L597'>597</a>
|
|
646
|
-
<a name='L598'></a><a href='#L598'>598</a>
|
|
647
|
-
<a name='L599'></a><a href='#L599'>599</a>
|
|
648
|
-
<a name='L600'></a><a href='#L600'>600</a>
|
|
649
|
-
<a name='L601'></a><a href='#L601'>601</a>
|
|
650
|
-
<a name='L602'></a><a href='#L602'>602</a>
|
|
651
|
-
<a name='L603'></a><a href='#L603'>603</a>
|
|
652
|
-
<a name='L604'></a><a href='#L604'>604</a>
|
|
653
|
-
<a name='L605'></a><a href='#L605'>605</a>
|
|
654
|
-
<a name='L606'></a><a href='#L606'>606</a>
|
|
655
|
-
<a name='L607'></a><a href='#L607'>607</a>
|
|
656
|
-
<a name='L608'></a><a href='#L608'>608</a>
|
|
657
|
-
<a name='L609'></a><a href='#L609'>609</a>
|
|
658
|
-
<a name='L610'></a><a href='#L610'>610</a>
|
|
659
|
-
<a name='L611'></a><a href='#L611'>611</a>
|
|
660
|
-
<a name='L612'></a><a href='#L612'>612</a>
|
|
661
|
-
<a name='L613'></a><a href='#L613'>613</a>
|
|
662
|
-
<a name='L614'></a><a href='#L614'>614</a>
|
|
663
|
-
<a name='L615'></a><a href='#L615'>615</a>
|
|
664
|
-
<a name='L616'></a><a href='#L616'>616</a>
|
|
665
|
-
<a name='L617'></a><a href='#L617'>617</a>
|
|
666
|
-
<a name='L618'></a><a href='#L618'>618</a>
|
|
667
|
-
<a name='L619'></a><a href='#L619'>619</a>
|
|
668
|
-
<a name='L620'></a><a href='#L620'>620</a>
|
|
669
|
-
<a name='L621'></a><a href='#L621'>621</a>
|
|
670
|
-
<a name='L622'></a><a href='#L622'>622</a>
|
|
671
|
-
<a name='L623'></a><a href='#L623'>623</a>
|
|
672
|
-
<a name='L624'></a><a href='#L624'>624</a>
|
|
673
|
-
<a name='L625'></a><a href='#L625'>625</a>
|
|
674
|
-
<a name='L626'></a><a href='#L626'>626</a>
|
|
675
|
-
<a name='L627'></a><a href='#L627'>627</a>
|
|
676
|
-
<a name='L628'></a><a href='#L628'>628</a>
|
|
677
|
-
<a name='L629'></a><a href='#L629'>629</a>
|
|
678
|
-
<a name='L630'></a><a href='#L630'>630</a>
|
|
679
|
-
<a name='L631'></a><a href='#L631'>631</a>
|
|
680
|
-
<a name='L632'></a><a href='#L632'>632</a>
|
|
681
|
-
<a name='L633'></a><a href='#L633'>633</a>
|
|
682
|
-
<a name='L634'></a><a href='#L634'>634</a>
|
|
683
|
-
<a name='L635'></a><a href='#L635'>635</a>
|
|
684
|
-
<a name='L636'></a><a href='#L636'>636</a>
|
|
685
|
-
<a name='L637'></a><a href='#L637'>637</a>
|
|
686
|
-
<a name='L638'></a><a href='#L638'>638</a>
|
|
687
|
-
<a name='L639'></a><a href='#L639'>639</a>
|
|
688
|
-
<a name='L640'></a><a href='#L640'>640</a>
|
|
689
|
-
<a name='L641'></a><a href='#L641'>641</a>
|
|
690
|
-
<a name='L642'></a><a href='#L642'>642</a>
|
|
691
|
-
<a name='L643'></a><a href='#L643'>643</a>
|
|
692
|
-
<a name='L644'></a><a href='#L644'>644</a>
|
|
693
|
-
<a name='L645'></a><a href='#L645'>645</a>
|
|
694
|
-
<a name='L646'></a><a href='#L646'>646</a>
|
|
695
|
-
<a name='L647'></a><a href='#L647'>647</a>
|
|
696
|
-
<a name='L648'></a><a href='#L648'>648</a>
|
|
697
|
-
<a name='L649'></a><a href='#L649'>649</a>
|
|
698
|
-
<a name='L650'></a><a href='#L650'>650</a>
|
|
699
|
-
<a name='L651'></a><a href='#L651'>651</a>
|
|
700
|
-
<a name='L652'></a><a href='#L652'>652</a>
|
|
701
|
-
<a name='L653'></a><a href='#L653'>653</a>
|
|
702
|
-
<a name='L654'></a><a href='#L654'>654</a>
|
|
703
|
-
<a name='L655'></a><a href='#L655'>655</a>
|
|
704
|
-
<a name='L656'></a><a href='#L656'>656</a>
|
|
705
|
-
<a name='L657'></a><a href='#L657'>657</a>
|
|
706
|
-
<a name='L658'></a><a href='#L658'>658</a>
|
|
707
|
-
<a name='L659'></a><a href='#L659'>659</a>
|
|
708
|
-
<a name='L660'></a><a href='#L660'>660</a>
|
|
709
|
-
<a name='L661'></a><a href='#L661'>661</a>
|
|
710
|
-
<a name='L662'></a><a href='#L662'>662</a>
|
|
711
|
-
<a name='L663'></a><a href='#L663'>663</a>
|
|
712
|
-
<a name='L664'></a><a href='#L664'>664</a>
|
|
713
|
-
<a name='L665'></a><a href='#L665'>665</a>
|
|
714
|
-
<a name='L666'></a><a href='#L666'>666</a>
|
|
715
|
-
<a name='L667'></a><a href='#L667'>667</a>
|
|
716
|
-
<a name='L668'></a><a href='#L668'>668</a>
|
|
717
|
-
<a name='L669'></a><a href='#L669'>669</a>
|
|
718
|
-
<a name='L670'></a><a href='#L670'>670</a>
|
|
719
|
-
<a name='L671'></a><a href='#L671'>671</a>
|
|
720
|
-
<a name='L672'></a><a href='#L672'>672</a>
|
|
721
|
-
<a name='L673'></a><a href='#L673'>673</a>
|
|
722
|
-
<a name='L674'></a><a href='#L674'>674</a>
|
|
723
|
-
<a name='L675'></a><a href='#L675'>675</a>
|
|
724
|
-
<a name='L676'></a><a href='#L676'>676</a>
|
|
725
|
-
<a name='L677'></a><a href='#L677'>677</a>
|
|
726
|
-
<a name='L678'></a><a href='#L678'>678</a>
|
|
727
|
-
<a name='L679'></a><a href='#L679'>679</a>
|
|
728
|
-
<a name='L680'></a><a href='#L680'>680</a>
|
|
729
|
-
<a name='L681'></a><a href='#L681'>681</a>
|
|
730
|
-
<a name='L682'></a><a href='#L682'>682</a>
|
|
731
|
-
<a name='L683'></a><a href='#L683'>683</a>
|
|
732
|
-
<a name='L684'></a><a href='#L684'>684</a>
|
|
733
|
-
<a name='L685'></a><a href='#L685'>685</a>
|
|
734
|
-
<a name='L686'></a><a href='#L686'>686</a>
|
|
735
|
-
<a name='L687'></a><a href='#L687'>687</a>
|
|
736
|
-
<a name='L688'></a><a href='#L688'>688</a>
|
|
737
|
-
<a name='L689'></a><a href='#L689'>689</a>
|
|
738
|
-
<a name='L690'></a><a href='#L690'>690</a>
|
|
739
|
-
<a name='L691'></a><a href='#L691'>691</a>
|
|
740
|
-
<a name='L692'></a><a href='#L692'>692</a>
|
|
741
|
-
<a name='L693'></a><a href='#L693'>693</a>
|
|
742
|
-
<a name='L694'></a><a href='#L694'>694</a>
|
|
743
|
-
<a name='L695'></a><a href='#L695'>695</a>
|
|
744
|
-
<a name='L696'></a><a href='#L696'>696</a>
|
|
745
|
-
<a name='L697'></a><a href='#L697'>697</a>
|
|
746
|
-
<a name='L698'></a><a href='#L698'>698</a>
|
|
747
|
-
<a name='L699'></a><a href='#L699'>699</a>
|
|
748
|
-
<a name='L700'></a><a href='#L700'>700</a>
|
|
749
|
-
<a name='L701'></a><a href='#L701'>701</a>
|
|
750
|
-
<a name='L702'></a><a href='#L702'>702</a>
|
|
751
|
-
<a name='L703'></a><a href='#L703'>703</a>
|
|
752
|
-
<a name='L704'></a><a href='#L704'>704</a>
|
|
753
|
-
<a name='L705'></a><a href='#L705'>705</a>
|
|
754
|
-
<a name='L706'></a><a href='#L706'>706</a>
|
|
755
|
-
<a name='L707'></a><a href='#L707'>707</a>
|
|
756
|
-
<a name='L708'></a><a href='#L708'>708</a>
|
|
757
|
-
<a name='L709'></a><a href='#L709'>709</a>
|
|
758
|
-
<a name='L710'></a><a href='#L710'>710</a>
|
|
759
|
-
<a name='L711'></a><a href='#L711'>711</a>
|
|
760
|
-
<a name='L712'></a><a href='#L712'>712</a>
|
|
761
|
-
<a name='L713'></a><a href='#L713'>713</a>
|
|
762
|
-
<a name='L714'></a><a href='#L714'>714</a>
|
|
763
|
-
<a name='L715'></a><a href='#L715'>715</a>
|
|
764
|
-
<a name='L716'></a><a href='#L716'>716</a>
|
|
765
|
-
<a name='L717'></a><a href='#L717'>717</a>
|
|
766
|
-
<a name='L718'></a><a href='#L718'>718</a>
|
|
767
|
-
<a name='L719'></a><a href='#L719'>719</a>
|
|
768
|
-
<a name='L720'></a><a href='#L720'>720</a>
|
|
769
|
-
<a name='L721'></a><a href='#L721'>721</a>
|
|
770
|
-
<a name='L722'></a><a href='#L722'>722</a>
|
|
771
|
-
<a name='L723'></a><a href='#L723'>723</a>
|
|
772
|
-
<a name='L724'></a><a href='#L724'>724</a>
|
|
773
|
-
<a name='L725'></a><a href='#L725'>725</a>
|
|
774
|
-
<a name='L726'></a><a href='#L726'>726</a>
|
|
775
|
-
<a name='L727'></a><a href='#L727'>727</a>
|
|
776
|
-
<a name='L728'></a><a href='#L728'>728</a>
|
|
777
|
-
<a name='L729'></a><a href='#L729'>729</a>
|
|
778
|
-
<a name='L730'></a><a href='#L730'>730</a>
|
|
779
|
-
<a name='L731'></a><a href='#L731'>731</a>
|
|
780
|
-
<a name='L732'></a><a href='#L732'>732</a>
|
|
781
|
-
<a name='L733'></a><a href='#L733'>733</a>
|
|
782
|
-
<a name='L734'></a><a href='#L734'>734</a>
|
|
783
|
-
<a name='L735'></a><a href='#L735'>735</a>
|
|
784
|
-
<a name='L736'></a><a href='#L736'>736</a>
|
|
785
|
-
<a name='L737'></a><a href='#L737'>737</a>
|
|
786
|
-
<a name='L738'></a><a href='#L738'>738</a>
|
|
787
|
-
<a name='L739'></a><a href='#L739'>739</a>
|
|
788
|
-
<a name='L740'></a><a href='#L740'>740</a>
|
|
789
|
-
<a name='L741'></a><a href='#L741'>741</a>
|
|
790
|
-
<a name='L742'></a><a href='#L742'>742</a>
|
|
791
|
-
<a name='L743'></a><a href='#L743'>743</a>
|
|
792
|
-
<a name='L744'></a><a href='#L744'>744</a>
|
|
793
|
-
<a name='L745'></a><a href='#L745'>745</a>
|
|
794
|
-
<a name='L746'></a><a href='#L746'>746</a>
|
|
795
|
-
<a name='L747'></a><a href='#L747'>747</a>
|
|
796
|
-
<a name='L748'></a><a href='#L748'>748</a>
|
|
797
|
-
<a name='L749'></a><a href='#L749'>749</a>
|
|
798
|
-
<a name='L750'></a><a href='#L750'>750</a>
|
|
799
|
-
<a name='L751'></a><a href='#L751'>751</a>
|
|
800
|
-
<a name='L752'></a><a href='#L752'>752</a>
|
|
801
|
-
<a name='L753'></a><a href='#L753'>753</a>
|
|
802
|
-
<a name='L754'></a><a href='#L754'>754</a>
|
|
803
|
-
<a name='L755'></a><a href='#L755'>755</a>
|
|
804
|
-
<a name='L756'></a><a href='#L756'>756</a>
|
|
805
|
-
<a name='L757'></a><a href='#L757'>757</a>
|
|
806
|
-
<a name='L758'></a><a href='#L758'>758</a>
|
|
807
|
-
<a name='L759'></a><a href='#L759'>759</a>
|
|
808
|
-
<a name='L760'></a><a href='#L760'>760</a>
|
|
809
|
-
<a name='L761'></a><a href='#L761'>761</a>
|
|
810
|
-
<a name='L762'></a><a href='#L762'>762</a>
|
|
811
|
-
<a name='L763'></a><a href='#L763'>763</a>
|
|
812
|
-
<a name='L764'></a><a href='#L764'>764</a>
|
|
813
|
-
<a name='L765'></a><a href='#L765'>765</a>
|
|
814
|
-
<a name='L766'></a><a href='#L766'>766</a>
|
|
815
|
-
<a name='L767'></a><a href='#L767'>767</a>
|
|
816
|
-
<a name='L768'></a><a href='#L768'>768</a>
|
|
817
|
-
<a name='L769'></a><a href='#L769'>769</a>
|
|
818
|
-
<a name='L770'></a><a href='#L770'>770</a>
|
|
819
|
-
<a name='L771'></a><a href='#L771'>771</a>
|
|
820
|
-
<a name='L772'></a><a href='#L772'>772</a>
|
|
821
|
-
<a name='L773'></a><a href='#L773'>773</a>
|
|
822
|
-
<a name='L774'></a><a href='#L774'>774</a>
|
|
823
|
-
<a name='L775'></a><a href='#L775'>775</a>
|
|
824
|
-
<a name='L776'></a><a href='#L776'>776</a>
|
|
825
|
-
<a name='L777'></a><a href='#L777'>777</a>
|
|
826
|
-
<a name='L778'></a><a href='#L778'>778</a>
|
|
827
|
-
<a name='L779'></a><a href='#L779'>779</a>
|
|
828
|
-
<a name='L780'></a><a href='#L780'>780</a>
|
|
829
|
-
<a name='L781'></a><a href='#L781'>781</a>
|
|
830
|
-
<a name='L782'></a><a href='#L782'>782</a>
|
|
831
|
-
<a name='L783'></a><a href='#L783'>783</a>
|
|
832
|
-
<a name='L784'></a><a href='#L784'>784</a>
|
|
833
|
-
<a name='L785'></a><a href='#L785'>785</a>
|
|
834
|
-
<a name='L786'></a><a href='#L786'>786</a>
|
|
835
|
-
<a name='L787'></a><a href='#L787'>787</a>
|
|
836
|
-
<a name='L788'></a><a href='#L788'>788</a>
|
|
837
|
-
<a name='L789'></a><a href='#L789'>789</a>
|
|
838
|
-
<a name='L790'></a><a href='#L790'>790</a>
|
|
839
|
-
<a name='L791'></a><a href='#L791'>791</a>
|
|
840
|
-
<a name='L792'></a><a href='#L792'>792</a>
|
|
841
|
-
<a name='L793'></a><a href='#L793'>793</a>
|
|
842
|
-
<a name='L794'></a><a href='#L794'>794</a>
|
|
843
|
-
<a name='L795'></a><a href='#L795'>795</a>
|
|
844
|
-
<a name='L796'></a><a href='#L796'>796</a>
|
|
845
|
-
<a name='L797'></a><a href='#L797'>797</a>
|
|
846
|
-
<a name='L798'></a><a href='#L798'>798</a>
|
|
847
|
-
<a name='L799'></a><a href='#L799'>799</a>
|
|
848
|
-
<a name='L800'></a><a href='#L800'>800</a>
|
|
849
|
-
<a name='L801'></a><a href='#L801'>801</a>
|
|
850
|
-
<a name='L802'></a><a href='#L802'>802</a>
|
|
851
|
-
<a name='L803'></a><a href='#L803'>803</a>
|
|
852
|
-
<a name='L804'></a><a href='#L804'>804</a>
|
|
853
|
-
<a name='L805'></a><a href='#L805'>805</a>
|
|
854
|
-
<a name='L806'></a><a href='#L806'>806</a>
|
|
855
|
-
<a name='L807'></a><a href='#L807'>807</a>
|
|
856
|
-
<a name='L808'></a><a href='#L808'>808</a>
|
|
857
|
-
<a name='L809'></a><a href='#L809'>809</a>
|
|
858
|
-
<a name='L810'></a><a href='#L810'>810</a>
|
|
859
|
-
<a name='L811'></a><a href='#L811'>811</a>
|
|
860
|
-
<a name='L812'></a><a href='#L812'>812</a>
|
|
861
|
-
<a name='L813'></a><a href='#L813'>813</a>
|
|
862
|
-
<a name='L814'></a><a href='#L814'>814</a>
|
|
863
|
-
<a name='L815'></a><a href='#L815'>815</a>
|
|
864
|
-
<a name='L816'></a><a href='#L816'>816</a>
|
|
865
|
-
<a name='L817'></a><a href='#L817'>817</a>
|
|
866
|
-
<a name='L818'></a><a href='#L818'>818</a>
|
|
867
|
-
<a name='L819'></a><a href='#L819'>819</a>
|
|
868
|
-
<a name='L820'></a><a href='#L820'>820</a>
|
|
869
|
-
<a name='L821'></a><a href='#L821'>821</a>
|
|
870
|
-
<a name='L822'></a><a href='#L822'>822</a>
|
|
871
|
-
<a name='L823'></a><a href='#L823'>823</a>
|
|
872
|
-
<a name='L824'></a><a href='#L824'>824</a>
|
|
873
|
-
<a name='L825'></a><a href='#L825'>825</a>
|
|
874
|
-
<a name='L826'></a><a href='#L826'>826</a>
|
|
875
|
-
<a name='L827'></a><a href='#L827'>827</a>
|
|
876
|
-
<a name='L828'></a><a href='#L828'>828</a>
|
|
877
|
-
<a name='L829'></a><a href='#L829'>829</a>
|
|
878
|
-
<a name='L830'></a><a href='#L830'>830</a>
|
|
879
|
-
<a name='L831'></a><a href='#L831'>831</a>
|
|
880
|
-
<a name='L832'></a><a href='#L832'>832</a>
|
|
881
|
-
<a name='L833'></a><a href='#L833'>833</a>
|
|
882
|
-
<a name='L834'></a><a href='#L834'>834</a>
|
|
883
|
-
<a name='L835'></a><a href='#L835'>835</a>
|
|
884
|
-
<a name='L836'></a><a href='#L836'>836</a>
|
|
885
|
-
<a name='L837'></a><a href='#L837'>837</a>
|
|
886
|
-
<a name='L838'></a><a href='#L838'>838</a>
|
|
887
|
-
<a name='L839'></a><a href='#L839'>839</a>
|
|
888
|
-
<a name='L840'></a><a href='#L840'>840</a>
|
|
889
|
-
<a name='L841'></a><a href='#L841'>841</a>
|
|
890
|
-
<a name='L842'></a><a href='#L842'>842</a>
|
|
891
|
-
<a name='L843'></a><a href='#L843'>843</a>
|
|
892
|
-
<a name='L844'></a><a href='#L844'>844</a>
|
|
893
|
-
<a name='L845'></a><a href='#L845'>845</a>
|
|
894
|
-
<a name='L846'></a><a href='#L846'>846</a>
|
|
895
|
-
<a name='L847'></a><a href='#L847'>847</a>
|
|
896
|
-
<a name='L848'></a><a href='#L848'>848</a>
|
|
897
|
-
<a name='L849'></a><a href='#L849'>849</a>
|
|
898
|
-
<a name='L850'></a><a href='#L850'>850</a>
|
|
899
|
-
<a name='L851'></a><a href='#L851'>851</a>
|
|
900
|
-
<a name='L852'></a><a href='#L852'>852</a>
|
|
901
|
-
<a name='L853'></a><a href='#L853'>853</a>
|
|
902
|
-
<a name='L854'></a><a href='#L854'>854</a>
|
|
903
|
-
<a name='L855'></a><a href='#L855'>855</a>
|
|
904
|
-
<a name='L856'></a><a href='#L856'>856</a>
|
|
905
|
-
<a name='L857'></a><a href='#L857'>857</a>
|
|
906
|
-
<a name='L858'></a><a href='#L858'>858</a>
|
|
907
|
-
<a name='L859'></a><a href='#L859'>859</a>
|
|
908
|
-
<a name='L860'></a><a href='#L860'>860</a>
|
|
909
|
-
<a name='L861'></a><a href='#L861'>861</a>
|
|
910
|
-
<a name='L862'></a><a href='#L862'>862</a>
|
|
911
|
-
<a name='L863'></a><a href='#L863'>863</a>
|
|
912
|
-
<a name='L864'></a><a href='#L864'>864</a>
|
|
913
|
-
<a name='L865'></a><a href='#L865'>865</a>
|
|
914
|
-
<a name='L866'></a><a href='#L866'>866</a>
|
|
915
|
-
<a name='L867'></a><a href='#L867'>867</a>
|
|
916
|
-
<a name='L868'></a><a href='#L868'>868</a>
|
|
917
|
-
<a name='L869'></a><a href='#L869'>869</a>
|
|
918
|
-
<a name='L870'></a><a href='#L870'>870</a>
|
|
919
|
-
<a name='L871'></a><a href='#L871'>871</a>
|
|
920
|
-
<a name='L872'></a><a href='#L872'>872</a>
|
|
921
|
-
<a name='L873'></a><a href='#L873'>873</a>
|
|
922
|
-
<a name='L874'></a><a href='#L874'>874</a>
|
|
923
|
-
<a name='L875'></a><a href='#L875'>875</a>
|
|
924
|
-
<a name='L876'></a><a href='#L876'>876</a>
|
|
925
|
-
<a name='L877'></a><a href='#L877'>877</a>
|
|
926
|
-
<a name='L878'></a><a href='#L878'>878</a>
|
|
927
|
-
<a name='L879'></a><a href='#L879'>879</a>
|
|
928
|
-
<a name='L880'></a><a href='#L880'>880</a>
|
|
929
|
-
<a name='L881'></a><a href='#L881'>881</a>
|
|
930
|
-
<a name='L882'></a><a href='#L882'>882</a>
|
|
931
|
-
<a name='L883'></a><a href='#L883'>883</a>
|
|
932
|
-
<a name='L884'></a><a href='#L884'>884</a>
|
|
933
|
-
<a name='L885'></a><a href='#L885'>885</a>
|
|
934
|
-
<a name='L886'></a><a href='#L886'>886</a>
|
|
935
|
-
<a name='L887'></a><a href='#L887'>887</a>
|
|
936
|
-
<a name='L888'></a><a href='#L888'>888</a>
|
|
937
|
-
<a name='L889'></a><a href='#L889'>889</a>
|
|
938
|
-
<a name='L890'></a><a href='#L890'>890</a>
|
|
939
|
-
<a name='L891'></a><a href='#L891'>891</a>
|
|
940
|
-
<a name='L892'></a><a href='#L892'>892</a>
|
|
941
|
-
<a name='L893'></a><a href='#L893'>893</a>
|
|
942
|
-
<a name='L894'></a><a href='#L894'>894</a>
|
|
943
|
-
<a name='L895'></a><a href='#L895'>895</a>
|
|
944
|
-
<a name='L896'></a><a href='#L896'>896</a>
|
|
945
|
-
<a name='L897'></a><a href='#L897'>897</a>
|
|
946
|
-
<a name='L898'></a><a href='#L898'>898</a>
|
|
947
|
-
<a name='L899'></a><a href='#L899'>899</a>
|
|
948
|
-
<a name='L900'></a><a href='#L900'>900</a>
|
|
949
|
-
<a name='L901'></a><a href='#L901'>901</a>
|
|
950
|
-
<a name='L902'></a><a href='#L902'>902</a>
|
|
951
|
-
<a name='L903'></a><a href='#L903'>903</a>
|
|
952
|
-
<a name='L904'></a><a href='#L904'>904</a>
|
|
953
|
-
<a name='L905'></a><a href='#L905'>905</a>
|
|
954
|
-
<a name='L906'></a><a href='#L906'>906</a>
|
|
955
|
-
<a name='L907'></a><a href='#L907'>907</a>
|
|
956
|
-
<a name='L908'></a><a href='#L908'>908</a>
|
|
957
|
-
<a name='L909'></a><a href='#L909'>909</a>
|
|
958
|
-
<a name='L910'></a><a href='#L910'>910</a>
|
|
959
|
-
<a name='L911'></a><a href='#L911'>911</a>
|
|
960
|
-
<a name='L912'></a><a href='#L912'>912</a>
|
|
961
|
-
<a name='L913'></a><a href='#L913'>913</a>
|
|
962
|
-
<a name='L914'></a><a href='#L914'>914</a>
|
|
963
|
-
<a name='L915'></a><a href='#L915'>915</a>
|
|
964
|
-
<a name='L916'></a><a href='#L916'>916</a>
|
|
965
|
-
<a name='L917'></a><a href='#L917'>917</a>
|
|
966
|
-
<a name='L918'></a><a href='#L918'>918</a>
|
|
967
|
-
<a name='L919'></a><a href='#L919'>919</a>
|
|
968
|
-
<a name='L920'></a><a href='#L920'>920</a>
|
|
969
|
-
<a name='L921'></a><a href='#L921'>921</a>
|
|
970
|
-
<a name='L922'></a><a href='#L922'>922</a>
|
|
971
|
-
<a name='L923'></a><a href='#L923'>923</a>
|
|
972
|
-
<a name='L924'></a><a href='#L924'>924</a>
|
|
973
|
-
<a name='L925'></a><a href='#L925'>925</a>
|
|
974
|
-
<a name='L926'></a><a href='#L926'>926</a>
|
|
975
|
-
<a name='L927'></a><a href='#L927'>927</a>
|
|
976
|
-
<a name='L928'></a><a href='#L928'>928</a>
|
|
977
|
-
<a name='L929'></a><a href='#L929'>929</a>
|
|
978
|
-
<a name='L930'></a><a href='#L930'>930</a>
|
|
979
|
-
<a name='L931'></a><a href='#L931'>931</a>
|
|
980
|
-
<a name='L932'></a><a href='#L932'>932</a>
|
|
981
|
-
<a name='L933'></a><a href='#L933'>933</a>
|
|
982
|
-
<a name='L934'></a><a href='#L934'>934</a>
|
|
983
|
-
<a name='L935'></a><a href='#L935'>935</a>
|
|
984
|
-
<a name='L936'></a><a href='#L936'>936</a>
|
|
985
|
-
<a name='L937'></a><a href='#L937'>937</a>
|
|
986
|
-
<a name='L938'></a><a href='#L938'>938</a>
|
|
987
|
-
<a name='L939'></a><a href='#L939'>939</a>
|
|
988
|
-
<a name='L940'></a><a href='#L940'>940</a>
|
|
989
|
-
<a name='L941'></a><a href='#L941'>941</a>
|
|
990
|
-
<a name='L942'></a><a href='#L942'>942</a>
|
|
991
|
-
<a name='L943'></a><a href='#L943'>943</a>
|
|
992
|
-
<a name='L944'></a><a href='#L944'>944</a>
|
|
993
|
-
<a name='L945'></a><a href='#L945'>945</a>
|
|
994
|
-
<a name='L946'></a><a href='#L946'>946</a>
|
|
995
|
-
<a name='L947'></a><a href='#L947'>947</a>
|
|
996
|
-
<a name='L948'></a><a href='#L948'>948</a>
|
|
997
|
-
<a name='L949'></a><a href='#L949'>949</a>
|
|
998
|
-
<a name='L950'></a><a href='#L950'>950</a>
|
|
999
|
-
<a name='L951'></a><a href='#L951'>951</a>
|
|
1000
|
-
<a name='L952'></a><a href='#L952'>952</a>
|
|
1001
|
-
<a name='L953'></a><a href='#L953'>953</a>
|
|
1002
|
-
<a name='L954'></a><a href='#L954'>954</a>
|
|
1003
|
-
<a name='L955'></a><a href='#L955'>955</a>
|
|
1004
|
-
<a name='L956'></a><a href='#L956'>956</a>
|
|
1005
|
-
<a name='L957'></a><a href='#L957'>957</a>
|
|
1006
|
-
<a name='L958'></a><a href='#L958'>958</a>
|
|
1007
|
-
<a name='L959'></a><a href='#L959'>959</a>
|
|
1008
|
-
<a name='L960'></a><a href='#L960'>960</a>
|
|
1009
|
-
<a name='L961'></a><a href='#L961'>961</a>
|
|
1010
|
-
<a name='L962'></a><a href='#L962'>962</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
1011
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1012
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1015
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1018
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1019
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1020
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1021
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1027
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1030
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1032
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1037
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1038
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1041
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1042
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1043
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1045
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1046
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1047
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1048
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1050
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1052
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1053
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1057
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1059
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1063
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1064
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1065
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1066
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1067
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1069
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1070
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1073
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1074
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-yes">2484x</span>
|
|
1078
|
-
<span class="cline-any cline-yes">232x</span>
|
|
1079
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
-
<span class="cline-any cline-yes">152x</span>
|
|
1085
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1086
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1087
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1089
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1090
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1091
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1092
|
-
<span class="cline-any cline-yes">196x</span>
|
|
1093
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1094
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1095
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1097
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1098
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
-
<span class="cline-any cline-no"> </span>
|
|
1102
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1104
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1105
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1106
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1111
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1112
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1114
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
-
<span class="cline-any cline-yes">113x</span>
|
|
1116
|
-
<span class="cline-any cline-yes">113x</span>
|
|
1117
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1120
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1122
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1123
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1124
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
-
<span class="cline-any cline-no"> </span>
|
|
1129
|
-
<span class="cline-any cline-no"> </span>
|
|
1130
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1132
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1136
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1139
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1146
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1149
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1150
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1151
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1152
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1155
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1158
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1159
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1160
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1161
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1162
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1163
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1164
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1165
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1166
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1167
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1168
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1169
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1170
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1171
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1172
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1173
|
-
<span class="cline-any cline-yes">2073x</span>
|
|
1174
|
-
<span class="cline-any cline-yes">2073x</span>
|
|
1175
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1177
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1178
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1179
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1180
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1181
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1182
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1185
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1186
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1188
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1191
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1193
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1199
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1200
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1201
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1204
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1206
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1207
|
-
<span class="cline-any cline-yes">2073x</span>
|
|
1208
|
-
<span class="cline-any cline-yes">2073x</span>
|
|
1209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1212
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1213
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1215
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1216
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1217
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1219
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1222
|
-
<span class="cline-any cline-yes">2085x</span>
|
|
1223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1226
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1228
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1231
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1236
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1237
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1238
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1239
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1245
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1249
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1250
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
-
<span class="cline-any cline-yes">2199x</span>
|
|
1258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
-
<span class="cline-any cline-yes">67x</span>
|
|
1264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
-
<span class="cline-any cline-yes">2132x</span>
|
|
1267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1277
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1278
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1280
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1281
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1284
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1285
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1291
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1303
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1305
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1310
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1311
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1313
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1316
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1317
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1318
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1319
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1320
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1321
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1322
|
-
<span class="cline-any cline-no"> </span>
|
|
1323
|
-
<span class="cline-any cline-no"> </span>
|
|
1324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1325
|
-
<span class="cline-any cline-no"> </span>
|
|
1326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1329
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
-
<span class="cline-any cline-yes">48x</span>
|
|
1334
|
-
<span class="cline-any cline-yes">48x</span>
|
|
1335
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1345
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1346
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1347
|
-
<span class="cline-any cline-yes">72x</span>
|
|
1348
|
-
<span class="cline-any cline-yes">72x</span>
|
|
1349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1352
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1353
|
-
<span class="cline-any cline-no"> </span>
|
|
1354
|
-
<span class="cline-any cline-no"> </span>
|
|
1355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1357
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1358
|
-
<span class="cline-any cline-yes">48x</span>
|
|
1359
|
-
<span class="cline-any cline-yes">48x</span>
|
|
1360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1363
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1366
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1369
|
-
<span class="cline-any cline-yes">80x</span>
|
|
1370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1379
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1380
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1381
|
-
<span class="cline-any cline-no"> </span>
|
|
1382
|
-
<span class="cline-any cline-no"> </span>
|
|
1383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
-
<span class="cline-any cline-yes">200x</span>
|
|
1386
|
-
<span class="cline-any cline-yes">48x</span>
|
|
1387
|
-
<span class="cline-any cline-yes">48x</span>
|
|
1388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1390
|
-
<span class="cline-any cline-yes">152x</span>
|
|
1391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1392
|
-
<span class="cline-any cline-yes">152x</span>
|
|
1393
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1394
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1395
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1399
|
-
<span class="cline-any cline-yes">138x</span>
|
|
1400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1407
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1413
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1420
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1421
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1423
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1424
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1425
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1427
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1428
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1429
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1431
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1432
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1439
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1440
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1442
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1443
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1444
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1446
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1447
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1448
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1450
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1451
|
-
<span class="cline-any cline-no"> </span>
|
|
1452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1454
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1460
|
-
<span class="cline-any cline-yes">2197x</span>
|
|
1461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
-
<span class="cline-any cline-yes">2197x</span>
|
|
1463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
-
<span class="cline-any cline-yes">2197x</span>
|
|
1465
|
-
<span class="cline-any cline-yes">2197x</span>
|
|
1466
|
-
<span class="cline-any cline-yes">2199x</span>
|
|
1467
|
-
<span class="cline-any cline-yes">2199x</span>
|
|
1468
|
-
<span class="cline-any cline-yes">2199x</span>
|
|
1469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1472
|
-
<span class="cline-any cline-yes">2197x</span>
|
|
1473
|
-
<span class="cline-any cline-yes">2197x</span>
|
|
1474
|
-
<span class="cline-any cline-yes">2073x</span>
|
|
1475
|
-
<span class="cline-any cline-yes">2073x</span>
|
|
1476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-yes">124x</span>
|
|
1479
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1480
|
-
<span class="cline-any cline-yes">79x</span>
|
|
1481
|
-
<span class="cline-any cline-yes">79x</span>
|
|
1482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1483
|
-
<span class="cline-any cline-yes">79x</span>
|
|
1484
|
-
<span class="cline-any cline-yes">65x</span>
|
|
1485
|
-
<span class="cline-any cline-yes">65x</span>
|
|
1486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1490
|
-
<span class="cline-any cline-yes">124x</span>
|
|
1491
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1492
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1493
|
-
<span class="cline-any cline-yes">77x</span>
|
|
1494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1499
|
-
<span class="cline-any cline-no"> </span>
|
|
1500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
-
<span class="cline-any cline-yes">2200x</span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-yes">2198x</span>
|
|
1509
|
-
<span class="cline-any cline-yes">2192x</span>
|
|
1510
|
-
<span class="cline-any cline-yes">2192x</span>
|
|
1511
|
-
<span class="cline-any cline-yes">2120x</span>
|
|
1512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
-
<span class="cline-any cline-yes">2198x</span>
|
|
1516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
-
<span class="cline-any cline-yes">82x</span>
|
|
1522
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1523
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1524
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1526
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1528
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1529
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1532
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1538
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1541
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1551
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1552
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1554
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1556
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1559
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1561
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1562
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1570
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
-
<span class="cline-any cline-no"> </span>
|
|
1572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1577
|
-
<span class="cline-any cline-no"> </span>
|
|
1578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1585
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1586
|
-
<span class="cline-any cline-yes">58x</span>
|
|
1587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1588
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1593
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1594
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1595
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1596
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1597
|
-
<span class="cline-any cline-no"> </span>
|
|
1598
|
-
<span class="cline-any cline-no"> </span>
|
|
1599
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1600
|
-
<span class="cline-any cline-no"> </span>
|
|
1601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1602
|
-
<span class="cline-any cline-no"> </span>
|
|
1603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1605
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1606
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1607
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
-
<span class="cline-any cline-yes">128x</span>
|
|
1611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1618
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1619
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1620
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1621
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1622
|
-
<span class="cline-any cline-yes">139x</span>
|
|
1623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1629
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1630
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1631
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1632
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1633
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1634
|
-
<span class="cline-any cline-yes">47x</span>
|
|
1635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1639
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1640
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1642
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1643
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1644
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1648
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1652
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1653
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1654
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1655
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1668
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1669
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1670
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1671
|
-
<span class="cline-any cline-yes">15x</span>
|
|
1672
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1673
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1674
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1675
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1676
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1680
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1681
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1684
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1685
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1687
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1688
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1689
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1690
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1692
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1693
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1694
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1695
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1696
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1697
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1699
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1702
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1704
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1705
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1706
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1708
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1709
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1710
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1711
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1712
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1713
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1714
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1715
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1716
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1719
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1720
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1721
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1722
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1725
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1726
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1727
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1730
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1731
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1732
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1733
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1734
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1738
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1739
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1740
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1741
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1742
|
-
<span class="cline-any cline-yes">53x</span>
|
|
1743
|
-
<span class="cline-any cline-yes">53x</span>
|
|
1744
|
-
<span class="cline-any cline-yes">53x</span>
|
|
1745
|
-
<span class="cline-any cline-yes">53x</span>
|
|
1746
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1747
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1748
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1749
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1750
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1751
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1753
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1754
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1755
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1756
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1757
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1759
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1760
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1762
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1763
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1764
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1765
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1767
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1768
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1769
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1770
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1771
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1772
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1775
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1776
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1778
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1779
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1780
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1781
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1782
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1783
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1784
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1785
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1786
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1787
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1789
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1790
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1791
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1792
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1795
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1796
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1797
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1798
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1799
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1800
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1801
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1802
|
-
<span class="cline-any cline-no"> </span>
|
|
1803
|
-
<span class="cline-any cline-no"> </span>
|
|
1804
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1805
|
-
<span class="cline-any cline-no"> </span>
|
|
1806
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1807
|
-
<span class="cline-any cline-no"> </span>
|
|
1808
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1810
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1811
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1812
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1814
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1815
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1817
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1818
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1819
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1820
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1821
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1822
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1823
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1825
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1826
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1827
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1828
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1829
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1830
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1831
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1832
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1833
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1835
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1836
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1837
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1838
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1840
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1842
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1843
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1844
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1845
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1846
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1848
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1849
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1850
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1851
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1852
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1853
|
-
<span class="cline-any cline-no"> </span>
|
|
1854
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1855
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1856
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1857
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1859
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1860
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1861
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1862
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1863
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1864
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1866
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1867
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1868
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1869
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1870
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1871
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1872
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1873
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1875
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1876
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1877
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1878
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1879
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1880
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1881
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1882
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1883
|
-
<span class="cline-any cline-yes">70x</span>
|
|
1884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1885
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1886
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1887
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1890
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1891
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1892
|
-
<span class="cline-any cline-no"> </span>
|
|
1893
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1894
|
-
<span class="cline-any cline-no"> </span>
|
|
1895
|
-
<span class="cline-any cline-no"> </span>
|
|
1896
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1897
|
-
<span class="cline-any cline-no"> </span>
|
|
1898
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1899
|
-
<span class="cline-any cline-no"> </span>
|
|
1900
|
-
<span class="cline-any cline-no"> </span>
|
|
1901
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1902
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1903
|
-
<span class="cline-any cline-no"> </span>
|
|
1904
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1905
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1906
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1907
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1908
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1909
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1911
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1912
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1913
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1915
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1916
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1917
|
-
<span class="cline-any cline-yes">82x</span>
|
|
1918
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1919
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1920
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1921
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1924
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1925
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1926
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1927
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1928
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1929
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1930
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1931
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1932
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1933
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1936
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1937
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1938
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1939
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1941
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1942
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1943
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1944
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1945
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1946
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1947
|
-
<span class="cline-any cline-no"> </span>
|
|
1948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1949
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1950
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1951
|
-
<span class="cline-any cline-yes">76x</span>
|
|
1952
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1953
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1954
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1955
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1956
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1957
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1958
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1959
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1960
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1961
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1962
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1963
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1964
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1965
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1966
|
-
<span class="cline-any cline-yes">19x</span>
|
|
1967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1968
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1969
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1970
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1971
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">var async = require ('async');
|
|
1972
|
-
var _ = require ('lodash');
|
|
1973
|
-
var AsyncLock = require ('async-lock');
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
var debug = require('debug')('keuss:backend:BucketMongoSafe');
|
|
1977
|
-
|
|
1978
|
-
var MongoClient = require ('mongodb').MongoClient;
|
|
1979
|
-
var mongo = require ('mongodb');
|
|
1980
|
-
|
|
1981
|
-
var Queue = require ('../Queue');
|
|
1982
|
-
var QFactory_MongoDB_defaults = require ('../QFactory-MongoDB-defaults');
|
|
1983
|
-
|
|
1984
|
-
var State = {
|
|
1985
|
-
Available: 1,
|
|
1986
|
-
Reserved: 2,
|
|
1987
|
-
Committed: 3,
|
|
1988
|
-
Rejected: 4,
|
|
1989
|
-
Deleted: 5
|
|
1990
|
-
};
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
1994
|
-
class Bucket {
|
|
1995
|
-
////////////////////////////////////////
|
|
1996
|
-
constructor (bucket_in_db, col, q, opts) {
|
|
1997
|
-
this._col = col;
|
|
1998
|
-
this._q = q;
|
|
1999
|
-
this._opts = opts;
|
|
2000
|
-
|
|
2001
|
-
this._reject_delta_base = opts.reject_delta_base || 10000;
|
|
2002
|
-
this._reject_delta_factor = opts.reject_delta_factor || (opts.reserve_delay * 1000) || 30000;
|
|
2003
|
-
this._reject_timeout_grace = opts.reject_timeout_grace || (opts.reserve_delay * 200) || 6000;
|
|
2004
|
-
|
|
2005
|
-
this._id = bucket_in_db._id;
|
|
2006
|
-
this._b = bucket_in_db.b;
|
|
2007
|
-
this._mature = bucket_in_db.mature;
|
|
2008
|
-
this._tries = bucket_in_db.tries;
|
|
2009
|
-
|
|
2010
|
-
this._mature_t = this._mature.getTime();
|
|
2011
|
-
|
|
2012
|
-
this._b_states = [];
|
|
2013
|
-
this._b_counts = {
|
|
2014
|
-
Available: 0,
|
|
2015
|
-
Reserved: 0,
|
|
2016
|
-
Committed: 0,
|
|
2017
|
-
Rejected: 0,
|
|
2018
|
-
Deleted: 0
|
|
2019
|
-
};
|
|
2020
|
-
|
|
2021
|
-
this._last_b_idx = 0;
|
|
2022
|
-
|
|
2023
|
-
_.each (this._b, (e) => {
|
|
2024
|
-
if (e) {
|
|
2025
|
-
this._b_states.push (State.Available);
|
|
2026
|
-
this._b_counts.Available++;
|
|
2027
|
-
}
|
|
2028
|
-
else {
|
|
2029
|
-
this._b_states.push (State.Deleted);
|
|
2030
|
-
this._b_counts.Deleted++;
|
|
2031
|
-
}
|
|
2032
|
-
});
|
|
2033
|
-
|
|
2034
|
-
debug ('initialized Bucket, %O', this._b_counts);
|
|
2035
|
-
debug ('initialized Bucket, from %O', bucket_in_db);
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
id () {return this._id.toString();}
|
|
2039
|
-
exhausted () {return this._b_counts.Available == 0;}
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
////////////////////////////////////
|
|
2043
|
-
get_element (is_reserve) {
|
|
2044
|
-
// return null if Available count is 0
|
|
2045
|
-
if (this.exhausted ()) {
|
|
2046
|
-
debug ('Bucket:got_element: got no available elem (exhausted) -> %o', this._b_states);
|
|
2047
|
-
return null;
|
|
2048
|
-
}
|
|
2049
|
-
|
|
2050
|
-
debug ('Bucket:got_element: look for next available elem starting at pos %d', this._last_b_idx);
|
|
2051
|
-
|
|
2052
|
-
for (var i = this._last_b_idx; i < this._b_states.length; i++) {
|
|
2053
|
-
if (this._b_states[i] == State.Available) {
|
|
2054
|
-
var elem = {};
|
|
2055
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (this._b[i].__p) {
|
|
2056
|
-
// add-headers: array contains both payload and headers, breaks backwards compat
|
|
2057
|
-
elem.payload = this._b[i].__p;
|
|
2058
|
-
elem.hdrs = this._b[i].__h;
|
|
2059
|
-
}
|
|
2060
|
-
else {
|
|
2061
|
-
// backwards compat, pre-headers: array contains whole payloads
|
|
2062
|
-
<span class="cstat-no" title="statement not covered" > elem.payload = this._b[i];</span>
|
|
2063
|
-
}
|
|
2064
|
-
|
|
2065
|
-
elem.tries = this._tries;
|
|
2066
|
-
elem.mature = this._mature;
|
|
2067
|
-
elem._id = this.id () + ':' + i;
|
|
2068
|
-
|
|
2069
|
-
// TODO optimization: set this._b[i] = null
|
|
2070
|
-
|
|
2071
|
-
if (is_reserve) {
|
|
2072
|
-
this._b_states[i] = State.Reserved;
|
|
2073
|
-
this._b_counts.Reserved++;
|
|
2074
|
-
}
|
|
2075
|
-
else {
|
|
2076
|
-
this._b_states[i] = State.Committed;
|
|
2077
|
-
this._b_counts.Committed++;
|
|
2078
|
-
}
|
|
2079
|
-
|
|
2080
|
-
this._b_counts.Available--;
|
|
2081
|
-
|
|
2082
|
-
debug ('Bucket:got_element: got an available elem at pos %d, states are %o (%o)', i, this._b_states, this._b_counts);
|
|
2083
|
-
this._last_b_idx = i;
|
|
2084
|
-
return elem;
|
|
2085
|
-
}
|
|
2086
|
-
}
|
|
2087
|
-
|
|
2088
|
-
// this should be unreachable
|
|
2089
|
-
<span class="cstat-no" title="statement not covered" > debug ('Bucket:got_element: (WARNING, UNREACHABLE) got no available elem after iterating %d states -> %o', i, this._b_states);</span>
|
|
2090
|
-
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
2091
|
-
}
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
/////////////////////////////////////////
|
|
2095
|
-
_flush_delete_bucket (cb) {
|
|
2096
|
-
var q = {_id: this._id};
|
|
2097
|
-
debug ('Bucket: deleting whole bucket %o', q);
|
|
2098
|
-
|
|
2099
|
-
this._col.deleteOne (q, (err, res) => {
|
|
2100
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb({</span>
|
|
2101
|
-
err: 'Bucket flush: mongodb error',
|
|
2102
|
-
e: err,
|
|
2103
|
-
q: q
|
|
2104
|
-
});
|
|
2105
|
-
|
|
2106
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if ((res && res.result && res.result.n) != 1) <span class="cstat-no" title="statement not covered" >return cb({</span>
|
|
2107
|
-
err: 'Bucket flush: exactly one must be deleted',
|
|
2108
|
-
e: err,
|
|
2109
|
-
q: q
|
|
2110
|
-
});
|
|
2111
|
-
|
|
2112
|
-
debug ('Bucket: deleted whole bucket %o', q);
|
|
2113
|
-
cb (null, null);
|
|
2114
|
-
});
|
|
2115
|
-
}
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
/////////////////////////////////////////
|
|
2119
|
-
_flush_bucket (cb) {
|
|
2120
|
-
var upd = {
|
|
2121
|
-
$set: {}
|
|
2122
|
-
};
|
|
2123
|
-
|
|
2124
|
-
var has_update = false;
|
|
2125
|
-
var committed_pos = [];
|
|
2126
|
-
var mature = null;
|
|
2127
|
-
var timed_out = false;
|
|
2128
|
-
var is_reject = false;
|
|
2129
|
-
|
|
2130
|
-
var time_left = this._mature_t - new Date().getTime();
|
|
2131
|
-
debug ('time left is %d, grace is %d', time_left, this._reject_timeout_grace);
|
|
2132
|
-
|
|
2133
|
-
if (time_left < this._reject_timeout_grace) {
|
|
2134
|
-
debug ('bucket timed out, rejecting');
|
|
2135
|
-
timed_out = true;
|
|
2136
|
-
}
|
|
2137
|
-
|
|
2138
|
-
if (this._b_counts.Committed) {
|
|
2139
|
-
_.each (this._b_states, (v, k) => {
|
|
2140
|
-
if (v == State.Committed) {
|
|
2141
|
-
committed_pos.push (k);
|
|
2142
|
-
upd.$set['b.' + k] = null;
|
|
2143
|
-
}
|
|
2144
|
-
});
|
|
2145
|
-
|
|
2146
|
-
upd.$inc = {n: -(committed_pos.length)};
|
|
2147
|
-
has_update = true;
|
|
2148
|
-
|
|
2149
|
-
debug ('Bucket: flushing %d committed entries', committed_pos.length);
|
|
2150
|
-
}
|
|
2151
|
-
|
|
2152
|
-
if (
|
|
2153
|
-
timed_out ||
|
|
2154
|
-
(
|
|
2155
|
-
(this._b_counts.Available == 0) &&
|
|
2156
|
-
(this._b_counts.Reserved == 0) &&
|
|
2157
|
-
(this._b_counts.Rejected != 0)
|
|
2158
|
-
)
|
|
2159
|
-
) {
|
|
2160
|
-
debug ('Bucket: flushing entire bucket for retry (%o)', this._b_counts);
|
|
2161
|
-
is_reject = true;
|
|
2162
|
-
var tries = this._tries || <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
|
|
2163
|
-
|
|
2164
|
-
if (this._rollback_next_t) {
|
|
2165
|
-
mature = new Date (this._rollback_next_t);
|
|
2166
|
-
}
|
|
2167
|
-
else {
|
|
2168
|
-
var delta = this._reject_delta_factor * tries + this._reject_delta_base;
|
|
2169
|
-
mature = new Date (new Date().getTime () + delta)
|
|
2170
|
-
}
|
|
2171
|
-
|
|
2172
|
-
upd.$set.mature = mature;
|
|
2173
|
-
upd.$unset = {reserved: 1};
|
|
2174
|
-
has_update = true;
|
|
2175
|
-
}
|
|
2176
|
-
|
|
2177
|
-
if (has_update) {
|
|
2178
|
-
var q = {_id: this._id};
|
|
2179
|
-
|
|
2180
|
-
debug ('update on bucket: q is %o, upd is %o', q, upd);
|
|
2181
|
-
|
|
2182
|
-
this._col.updateOne (q, upd, (err, res) => {
|
|
2183
|
-
if (err) return cb({
|
|
2184
|
-
err: 'Bucket flush: mongodb error',
|
|
2185
|
-
e: err,
|
|
2186
|
-
q: q
|
|
2187
|
-
});
|
|
2188
|
-
|
|
2189
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if ((res && res.result && res.result.nModified) != 1) <span class="cstat-no" title="statement not covered" >return cb({</span>
|
|
2190
|
-
err: 'Bucket flush: exactly one must be updated',
|
|
2191
|
-
e: err,
|
|
2192
|
-
q: q,
|
|
2193
|
-
upd: upd
|
|
2194
|
-
});
|
|
2195
|
-
|
|
2196
|
-
_.each (committed_pos, (v) => {
|
|
2197
|
-
this._b_states[v] = State.Deleted;
|
|
2198
|
-
this._b[v] = null;
|
|
2199
|
-
this._b_counts.Committed--;
|
|
2200
|
-
this._b_counts.Deleted++;
|
|
2201
|
-
});
|
|
2202
|
-
|
|
2203
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (mature) this._q._signal_insertion_own (mature);
|
|
2204
|
-
|
|
2205
|
-
debug ('Bucket: flushed ok, states are %o (%o)', this._b_states, this._b_counts);
|
|
2206
|
-
cb (null, is_reject ? null : <span class="branch-1 cbranch-no" title="branch not covered" >this._b_counts)</span>;
|
|
2207
|
-
});
|
|
2208
|
-
}
|
|
2209
|
-
else {
|
|
2210
|
-
debug ('Bucket: nothing to flush');
|
|
2211
|
-
setImmediate (() => cb (null, this._b_counts));
|
|
2212
|
-
}
|
|
2213
|
-
}
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
/////////////////////////////////////////
|
|
2217
|
-
flush (cb) {
|
|
2218
|
-
if (
|
|
2219
|
-
(this._b_counts.Available == 0) &&
|
|
2220
|
-
(this._b_counts.Reserved == 0) &&
|
|
2221
|
-
(this._b_counts.Rejected == 0)
|
|
2222
|
-
) {
|
|
2223
|
-
// delete entry
|
|
2224
|
-
this._flush_delete_bucket (cb);
|
|
2225
|
-
}
|
|
2226
|
-
else {
|
|
2227
|
-
this._flush_bucket (cb);
|
|
2228
|
-
}
|
|
2229
|
-
}
|
|
2230
|
-
}
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
2234
|
-
class BucketSet {
|
|
2235
|
-
/////////////////////////////////
|
|
2236
|
-
constructor (col, q, opts) {
|
|
2237
|
-
this._opts = opts;
|
|
2238
|
-
this._q = q;
|
|
2239
|
-
this._col = col;
|
|
2240
|
-
|
|
2241
|
-
this._reserve_delay = this._opts.reserve_delay || 30;
|
|
2242
|
-
this._flush_state_changes_period = this._opts.state_flush_period || 500;
|
|
2243
|
-
|
|
2244
|
-
this._buckets = {};
|
|
2245
|
-
this._active_bucket = null;
|
|
2246
|
-
this._lock = new AsyncLock ();
|
|
2247
|
-
}
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
///////////////////////////////
|
|
2251
|
-
_read_bucket (cb) {
|
|
2252
|
-
var query = {
|
|
2253
|
-
mature: {$lte: Queue.now ()}
|
|
2254
|
-
};
|
|
2255
|
-
|
|
2256
|
-
var update = {
|
|
2257
|
-
$set: {
|
|
2258
|
-
mature: Queue.nowPlusSecs (this._reserve_delay),
|
|
2259
|
-
reserved: new Date ()
|
|
2260
|
-
},
|
|
2261
|
-
$inc: {tries: 1}
|
|
2262
|
-
};
|
|
2263
|
-
|
|
2264
|
-
var opts = {
|
|
2265
|
-
sort: {mature : 1},
|
|
2266
|
-
returnDocument: 'after'
|
|
2267
|
-
};
|
|
2268
|
-
|
|
2269
|
-
debug ('reading a new bucket');
|
|
2270
|
-
|
|
2271
|
-
this._col.findOneAndUpdate (query, update, opts, (err, result) => {
|
|
2272
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb (err);</span>
|
|
2273
|
-
|
|
2274
|
-
var val = result && result.value;
|
|
2275
|
-
|
|
2276
|
-
if (val) {
|
|
2277
|
-
debug ('read a bucket %s with %d elems', val._id.toString(), val.n);
|
|
2278
|
-
var bcket = new Bucket (val, this._col, this._q, this._opts);
|
|
2279
|
-
this._buckets[bcket.id()] = bcket;
|
|
2280
|
-
|
|
2281
|
-
// is already exhausted?
|
|
2282
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (bcket.exhausted ()) {
|
|
2283
|
-
<span class="cstat-no" title="statement not covered" > debug ('bucket %s already exhausted, read another', bcket.id());</span>
|
|
2284
|
-
<span class="cstat-no" title="statement not covered" > this._active_bucket = null;</span>
|
|
2285
|
-
// TODO loop internally!!!!!
|
|
2286
|
-
<span class="cstat-no" title="statement not covered" > cb ();</span>
|
|
2287
|
-
}
|
|
2288
|
-
else {
|
|
2289
|
-
this._active_bucket = bcket;
|
|
2290
|
-
cb (null, this._active_bucket);
|
|
2291
|
-
}
|
|
2292
|
-
}
|
|
2293
|
-
else {
|
|
2294
|
-
debug ('no buckets, coll empty');
|
|
2295
|
-
cb ();
|
|
2296
|
-
}
|
|
2297
|
-
});
|
|
2298
|
-
}
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
/////////////////////////////
|
|
2302
|
-
_ensure_bucket (cb) {
|
|
2303
|
-
debug ('BucketSet:_ensure_bucket: acquire lock');
|
|
2304
|
-
|
|
2305
|
-
this._lock.acquire ('ensure-bucket', done => {
|
|
2306
|
-
debug ('BucketSet:_ensure_bucket: lock acquired');
|
|
2307
|
-
if (this._active_bucket) {
|
|
2308
|
-
debug ('BucketSet:_ensure_bucket: end (already present)');
|
|
2309
|
-
return done ();
|
|
2310
|
-
}
|
|
2311
|
-
|
|
2312
|
-
this._read_bucket ((err, active_bucket) => {
|
|
2313
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2314
|
-
<span class="cstat-no" title="statement not covered" > debug ('BucketSet:_ensure_bucket: end (error) %o', err);</span>
|
|
2315
|
-
<span class="cstat-no" title="statement not covered" > return done (err);</span>
|
|
2316
|
-
}
|
|
2317
|
-
|
|
2318
|
-
if (!active_bucket) {
|
|
2319
|
-
debug ('BucketSet:_ensure_bucket: end (no bucket)');
|
|
2320
|
-
return done ();
|
|
2321
|
-
}
|
|
2322
|
-
|
|
2323
|
-
// we got a bucket
|
|
2324
|
-
done (null, active_bucket);
|
|
2325
|
-
});
|
|
2326
|
-
}, (err, ret) => {
|
|
2327
|
-
debug ('BucketSet:_ensure_bucket: lock released');
|
|
2328
|
-
|
|
2329
|
-
if (ret) {
|
|
2330
|
-
this._ensure_flush_state_changes ();
|
|
2331
|
-
}
|
|
2332
|
-
|
|
2333
|
-
cb (err, ret);
|
|
2334
|
-
});
|
|
2335
|
-
}
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
/////////////////////////////
|
|
2339
|
-
_obtain_element (is_reserve, cb) {
|
|
2340
|
-
this._ensure_bucket (err => {
|
|
2341
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2342
|
-
<span class="cstat-no" title="statement not covered" > debug ('BucketSet:_obtain_element: error %o', err);</span>
|
|
2343
|
-
<span class="cstat-no" title="statement not covered" > return cb (err);</span>
|
|
2344
|
-
}
|
|
2345
|
-
|
|
2346
|
-
if (!this._active_bucket) {
|
|
2347
|
-
debug ('BucketSet:_obtain_element: no active bucket', err);
|
|
2348
|
-
return cb (); // coll empty or not mature
|
|
2349
|
-
}
|
|
2350
|
-
|
|
2351
|
-
var elem = this._active_bucket.get_element (is_reserve);
|
|
2352
|
-
|
|
2353
|
-
if (!elem) {
|
|
2354
|
-
debug ('BucketSet:getElement: active bucket exhausted, get another');
|
|
2355
|
-
this._active_bucket = null;
|
|
2356
|
-
setImmediate (() => this._obtain_element (is_reserve, cb));
|
|
2357
|
-
}
|
|
2358
|
-
else {
|
|
2359
|
-
debug ('BucketSet:getElement: returning element %o', elem);
|
|
2360
|
-
setImmediate (() => cb (null, elem));
|
|
2361
|
-
}
|
|
2362
|
-
});
|
|
2363
|
-
}
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
/////////////////////////////
|
|
2367
|
-
get_element (cb) {
|
|
2368
|
-
this._obtain_element (false, cb);
|
|
2369
|
-
}
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
/////////////////////////////
|
|
2373
|
-
reserve_element (cb) {
|
|
2374
|
-
this._obtain_element (true, cb);
|
|
2375
|
-
}
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
/////////////////////////////
|
|
2379
|
-
commit_element (id, cb) {
|
|
2380
|
-
var aid = id.split (':');
|
|
2381
|
-
var bucket_id = aid[0];
|
|
2382
|
-
var bucket_idx = parseInt(aid[1]);
|
|
2383
|
-
|
|
2384
|
-
var bucket = this._buckets[bucket_id];
|
|
2385
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!bucket) <span class="cstat-no" title="statement not covered" >return cb (null, false);</span>
|
|
2386
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (bucket._b_states[bucket_idx] != State.Reserved) <span class="cstat-no" title="statement not covered" >return cb (null, false);</span>
|
|
2387
|
-
|
|
2388
|
-
bucket._b_states[bucket_idx] = State.Committed;
|
|
2389
|
-
bucket._b_counts.Reserved--;
|
|
2390
|
-
bucket._b_counts.Committed++;
|
|
2391
|
-
|
|
2392
|
-
debug ('Bucket:commit_element: committed elem at pos %d, states are %o (%o)', bucket_idx, bucket._b_states, bucket._b_counts);
|
|
2393
|
-
setImmediate (() => cb (null, true));
|
|
2394
|
-
}
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
/////////////////////////////
|
|
2398
|
-
rollback_element (id, next_t, cb) {
|
|
2399
|
-
var aid = id.split (':');
|
|
2400
|
-
var bucket_id = aid[0];
|
|
2401
|
-
var bucket_idx = parseInt(aid[1]);
|
|
2402
|
-
|
|
2403
|
-
var bucket = this._buckets[bucket_id];
|
|
2404
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!bucket) <span class="cstat-no" title="statement not covered" >return cb (null, false);</span>
|
|
2405
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (bucket._b_states[bucket_idx] != State.Reserved) <span class="cstat-no" title="statement not covered" >return cb (null, false);</span>
|
|
2406
|
-
|
|
2407
|
-
bucket._b_states[bucket_idx] = State.Rejected;
|
|
2408
|
-
bucket._b_counts.Reserved--;
|
|
2409
|
-
bucket._b_counts.Rejected++;
|
|
2410
|
-
|
|
2411
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!bucket._rollback_next_t) bucket._rollback_next_t = next_t;
|
|
2412
|
-
else <span class="cstat-no" title="statement not covered" >if (bucket._rollback_next_t < next_t)<span class="cstat-no" title="statement not covered" >bucket._rollback_next_t = next_t;</span></span>
|
|
2413
|
-
|
|
2414
|
-
debug ('Bucket:rollback_element: rolled-back elem at pos %d, states are %o (%o)', bucket_idx, bucket._b_states, bucket._b_counts);
|
|
2415
|
-
setImmediate (() => cb (null, true));
|
|
2416
|
-
}
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
/////////////////////////////
|
|
2420
|
-
_flush_state_changes (cb) {
|
|
2421
|
-
this._flush_state_changes_timer = null;
|
|
2422
|
-
|
|
2423
|
-
debug ('BucketSet:_flush_state_changes: tick');
|
|
2424
|
-
|
|
2425
|
-
var tasks = {};
|
|
2426
|
-
_.each (this._buckets, (bucket, id) => {
|
|
2427
|
-
tasks[id] = (cb) => {
|
|
2428
|
-
debug ('BucketSet:_flush_state_changes: flushing bucket %s', bucket.id());
|
|
2429
|
-
bucket.flush (cb);
|
|
2430
|
-
};
|
|
2431
|
-
});
|
|
2432
|
-
|
|
2433
|
-
async.parallel (tasks, (err, res) => {
|
|
2434
|
-
if (err) {
|
|
2435
|
-
debug ('BucketSet: error in flush-states: %o', err);
|
|
2436
|
-
return cb (err);
|
|
2437
|
-
}
|
|
2438
|
-
|
|
2439
|
-
_.each (res, (v, k) => {
|
|
2440
|
-
if (_.isNull (v)) {
|
|
2441
|
-
delete this._buckets[k];
|
|
2442
|
-
debug ('BucketSet: removed finished bucket %s', k);
|
|
2443
|
-
|
|
2444
|
-
if ((this._active_bucket) && (this._active_bucket.id() == k)) {
|
|
2445
|
-
this._active_bucket = null;
|
|
2446
|
-
debug ('BucketSet: removed finished ACTIVE bucket %s', k);
|
|
2447
|
-
}
|
|
2448
|
-
}
|
|
2449
|
-
});
|
|
2450
|
-
|
|
2451
|
-
if (_.size (this._buckets) == 0) {
|
|
2452
|
-
debug ('BucketSet: empty, no buckets. stop flush');
|
|
2453
|
-
this._cancel_flush_state_changes ();
|
|
2454
|
-
return cb (null, true);
|
|
2455
|
-
}
|
|
2456
|
-
else {
|
|
2457
|
-
return cb ();
|
|
2458
|
-
}
|
|
2459
|
-
|
|
2460
|
-
<span class="cstat-no" title="statement not covered" > cb (err);</span>
|
|
2461
|
-
});
|
|
2462
|
-
}
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
/////////////////////////////
|
|
2466
|
-
_ensure_flush_state_changes () {
|
|
2467
|
-
if (this._flush_state_changes_timer) return;
|
|
2468
|
-
|
|
2469
|
-
this._flush_state_changes_timer = setTimeout (() => {
|
|
2470
|
-
this._flush_state_changes ((err, stop) => {
|
|
2471
|
-
if (stop) return;
|
|
2472
|
-
this._ensure_flush_state_changes ();
|
|
2473
|
-
})
|
|
2474
|
-
}, this._flush_state_changes_period);
|
|
2475
|
-
|
|
2476
|
-
debug ('BucketSet:_flush_state_changes: arm');
|
|
2477
|
-
}
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
/////////////////////////////
|
|
2481
|
-
_cancel_flush_state_changes () {
|
|
2482
|
-
if (this._flush_state_changes_timer) {
|
|
2483
|
-
clearTimeout (this._flush_state_changes_timer);
|
|
2484
|
-
debug ('BucketSet:_flush_state_changes: stopped');
|
|
2485
|
-
this._flush_state_changes_timer = null;
|
|
2486
|
-
}
|
|
2487
|
-
}
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
2493
|
-
class BucketMongoSafeQueue extends Queue {
|
|
2494
|
-
|
|
2495
|
-
/*
|
|
2496
|
-
|
|
2497
|
-
options:
|
|
2498
|
-
bucket_max_size || 1024;
|
|
2499
|
-
bucket_max_wait || 500;
|
|
2500
|
-
reserve_delay || 30;
|
|
2501
|
-
state_flush_period || 500;
|
|
2502
|
-
reject_delta_base || 10000;
|
|
2503
|
-
reject_delta_factor || (opts.reserve_delay * 1000) || 30000;
|
|
2504
|
-
reject_timeout_grace || (opts.reserve_delay * 0.8);
|
|
2505
|
-
*/
|
|
2506
|
-
//////////////////////////////////////////////
|
|
2507
|
-
constructor (name, factory, opts, orig_opts) {
|
|
2508
|
-
//////////////////////////////////////////////
|
|
2509
|
-
super (name, factory, opts, orig_opts);
|
|
2510
|
-
|
|
2511
|
-
this._factory = factory;
|
|
2512
|
-
this._col = factory._db.collection (name);
|
|
2513
|
-
this._ensureIndexes (err => {});
|
|
2514
|
-
|
|
2515
|
-
this._insert_bucket = {
|
|
2516
|
-
_id: new mongo.ObjectID (),
|
|
2517
|
-
b: []
|
|
2518
|
-
};
|
|
2519
|
-
|
|
2520
|
-
this._read_bucket = new BucketSet (this._col, this, opts);
|
|
2521
|
-
|
|
2522
|
-
this._bucket_max_size = opts.bucket_max_size || 1024;
|
|
2523
|
-
this._bucket_max_wait = opts.bucket_max_wait || 500;
|
|
2524
|
-
|
|
2525
|
-
debug ('created BucketMongoSafeQueue %s', name);
|
|
2526
|
-
}
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
/////////////////////////////////////////
|
|
2530
|
-
<span class="fstat-no" title="function not covered" > st</span>atic Type () {
|
|
2531
|
-
/////////////////////////////////////////
|
|
2532
|
-
<span class="cstat-no" title="statement not covered" > return 'mongo:bucket-safe';</span>
|
|
2533
|
-
}
|
|
2534
|
-
|
|
2535
|
-
/////////////////////////////////////////
|
|
2536
|
-
<span class="fstat-no" title="function not covered" > ty</span>pe () {
|
|
2537
|
-
/////////////////////////////////////////
|
|
2538
|
-
<span class="cstat-no" title="statement not covered" > return 'mongo:bucket-safe';</span>
|
|
2539
|
-
}
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
/////////////////////////////////////////
|
|
2543
|
-
// add element to queue
|
|
2544
|
-
insert (entry, callback) {
|
|
2545
|
-
/////////////////////////////////////////
|
|
2546
|
-
if (!this._insert_bucket.mature) this._insert_bucket.mature = entry.mature;
|
|
2547
|
-
else if (this._insert_bucket.mature.getTime () < entry.mature.getTime ()) this._insert_bucket.mature = entry.mature;
|
|
2548
|
-
|
|
2549
|
-
this._insert_bucket.b.push ({
|
|
2550
|
-
__p: entry.payload,
|
|
2551
|
-
__h: (entry.hdrs || <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>
|
|
2552
|
-
});
|
|
2553
|
-
|
|
2554
|
-
var id = this._insert_bucket._id.toString () + ':' + (this._insert_bucket.b.length - 1);
|
|
2555
|
-
debug ('added to bucket, %s', id);
|
|
2556
|
-
|
|
2557
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (this._insert_bucket.b.length >= this._bucket_max_size) {
|
|
2558
|
-
<span class="cstat-no" title="statement not covered" > if (this._flush_timer) <span class="cstat-no" title="statement not covered" >clearTimeout (this._flush_timer);</span></span>
|
|
2559
|
-
<span class="cstat-no" title="statement not covered" > this._flush_timer = null;</span>
|
|
2560
|
-
|
|
2561
|
-
<span class="cstat-no" title="statement not covered" > debug ('cancelled periodic_flush');</span>
|
|
2562
|
-
|
|
2563
|
-
<span class="cstat-no" title="statement not covered" > this._flush_bucket (callback);</span>
|
|
2564
|
-
}
|
|
2565
|
-
else {
|
|
2566
|
-
if (this._insert_bucket.b.length == 1) {
|
|
2567
|
-
debug ('first insert of bucket, set periodic_flush');
|
|
2568
|
-
this._set_periodic_flush ();
|
|
2569
|
-
}
|
|
2570
|
-
|
|
2571
|
-
setImmediate (() => callback (null, id));
|
|
2572
|
-
}
|
|
2573
|
-
}
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
/////////////////////////////////////////
|
|
2577
|
-
// get element from queue
|
|
2578
|
-
get (callback) {
|
|
2579
|
-
this._read_bucket.get_element ((err, elem) => {
|
|
2580
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2581
|
-
if (elem && elem.payload._bsontype == 'Binary') elem.payload = elem.payload.buffer;
|
|
2582
|
-
if (elem && elem.tries > 0) elem.tries--;
|
|
2583
|
-
callback (null, elem);
|
|
2584
|
-
});
|
|
2585
|
-
}
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
/////////////////////////////////////////
|
|
2589
|
-
// reserve element from queue
|
|
2590
|
-
reserve (callback) {
|
|
2591
|
-
this._read_bucket.reserve_element ((err, elem) => {
|
|
2592
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2593
|
-
if (elem && elem.payload._bsontype == 'Binary') elem.payload = elem.payload.buffer;
|
|
2594
|
-
if (elem && elem.tries > 0) elem.tries--;
|
|
2595
|
-
callback (null, elem);
|
|
2596
|
-
});
|
|
2597
|
-
}
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
/////////////////////////////////////////
|
|
2601
|
-
// commit a reserved element from queue
|
|
2602
|
-
commit (id, callback) {
|
|
2603
|
-
this._read_bucket.commit_element (id, (err, elem) => {
|
|
2604
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2605
|
-
callback (null, elem);
|
|
2606
|
-
});
|
|
2607
|
-
}
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
/////////////////////////////////////////
|
|
2611
|
-
// rollback a reserved element from queue
|
|
2612
|
-
rollback (id, next_t, callback) {
|
|
2613
|
-
this._read_bucket.rollback_element (id, next_t, (err, elem) => {
|
|
2614
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2615
|
-
callback (null, elem);
|
|
2616
|
-
});
|
|
2617
|
-
}
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
//////////////////////////////////
|
|
2621
|
-
// queue size including non-mature elements
|
|
2622
|
-
totalSize (callback) {
|
|
2623
|
-
this._col.aggregate ([
|
|
2624
|
-
{$group:{_id:'t', v: {$sum: '$n'}}}
|
|
2625
|
-
], (err, cursor) => {
|
|
2626
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2627
|
-
|
|
2628
|
-
cursor.toArray ((err, res) => {
|
|
2629
|
-
debug ('calculating totalSize: aggregation pipeline returns %o', res);
|
|
2630
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2631
|
-
if (res.length == 0) return callback (null, 0);
|
|
2632
|
-
callback (null, res[0].v);
|
|
2633
|
-
});
|
|
2634
|
-
});
|
|
2635
|
-
}
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
//////////////////////////////////
|
|
2639
|
-
// queue size NOT including non-mature elements
|
|
2640
|
-
size (callback) {
|
|
2641
|
-
this._col.aggregate ([
|
|
2642
|
-
{$match: {mature: {$lte: Queue.now ()}}},
|
|
2643
|
-
{$group:{_id:'t', v: {$sum: '$n'}}}
|
|
2644
|
-
], (err, cursor) => {
|
|
2645
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2646
|
-
|
|
2647
|
-
cursor.toArray ((err, res) => {
|
|
2648
|
-
debug ('calculating size: aggregation pipeline returns %o', res);
|
|
2649
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2650
|
-
if (res.length == 0) return callback (null, 0);
|
|
2651
|
-
callback (null, res[0].v);
|
|
2652
|
-
});
|
|
2653
|
-
});
|
|
2654
|
-
}
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
//////////////////////////////////
|
|
2658
|
-
// queue size of non-mature elements only
|
|
2659
|
-
schedSize (callback) {
|
|
2660
|
-
this._col.aggregate ([
|
|
2661
|
-
{$match: {
|
|
2662
|
-
mature: {$gt: Queue.now ()},
|
|
2663
|
-
reserved: {$exists: false}
|
|
2664
|
-
}},
|
|
2665
|
-
{$group:{_id:'t', v: {$sum: '$n'}}}
|
|
2666
|
-
], (err, cursor) => {
|
|
2667
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2668
|
-
|
|
2669
|
-
cursor.toArray ((err, res) => {
|
|
2670
|
-
debug ('calculating schedSize: aggregation pipeline returns %o', res);
|
|
2671
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2672
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (res.length == 0) <span class="cstat-no" title="statement not covered" >return callback (null, 0);</span>
|
|
2673
|
-
callback (null, res[0].v);
|
|
2674
|
-
});
|
|
2675
|
-
});
|
|
2676
|
-
}
|
|
2677
|
-
|
|
2678
|
-
//////////////////////////////////
|
|
2679
|
-
// queue size of non-mature elements only
|
|
2680
|
-
resvSize (callback) {
|
|
2681
|
-
this._col.aggregate ([
|
|
2682
|
-
{$match: {
|
|
2683
|
-
mature: {$gt: Queue.now ()},
|
|
2684
|
-
reserved: {$exists: true}
|
|
2685
|
-
}},
|
|
2686
|
-
{$group:{_id:'t', v: {$sum: '$n'}}}
|
|
2687
|
-
], (err, cursor) => {
|
|
2688
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2689
|
-
|
|
2690
|
-
cursor.toArray ((err, res) => {
|
|
2691
|
-
debug ('calculating resvSize: aggregation pipeline returns %o', res);
|
|
2692
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2693
|
-
if (res.length == 0) return callback (null, 0);
|
|
2694
|
-
callback (null, res[0].v);
|
|
2695
|
-
});
|
|
2696
|
-
});
|
|
2697
|
-
}
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
/////////////////////////////////////////
|
|
2701
|
-
// get element from queue
|
|
2702
|
-
next_t (callback) {
|
|
2703
|
-
this._col.find ({}).limit(1).sort ({mature:1}).project ({mature:1}).next ((err, result) => {
|
|
2704
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2705
|
-
debug ('obtaining next_t: got %o', result && result.mature);
|
|
2706
|
-
callback (null, result && result.mature);
|
|
2707
|
-
});
|
|
2708
|
-
}
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
//////////////////////////////////////////////
|
|
2713
|
-
// remove by id
|
|
2714
|
-
remove (id, callback) {
|
|
2715
|
-
try {
|
|
2716
|
-
var aid = id.split (':');
|
|
2717
|
-
var bucket_id = new mongo.ObjectID (aid[0]);
|
|
2718
|
-
var bucket_idx = parseInt(aid[1]);
|
|
2719
|
-
}
|
|
2720
|
-
catch (e) {
|
|
2721
|
-
return callback ('id [' + id + '] can not be used as remove id: ' + e);
|
|
2722
|
-
}
|
|
2723
|
-
|
|
2724
|
-
var upd = {
|
|
2725
|
-
$set: {},
|
|
2726
|
-
$inc: {n: -1}
|
|
2727
|
-
};
|
|
2728
|
-
|
|
2729
|
-
upd.$set['b.' + bucket_idx] = null;
|
|
2730
|
-
|
|
2731
|
-
var q = {
|
|
2732
|
-
_id: bucket_id,
|
|
2733
|
-
reserved: {$exists: false},
|
|
2734
|
-
};
|
|
2735
|
-
|
|
2736
|
-
q['b.' + bucket_idx] = {$type: 3}; // b.N is an object
|
|
2737
|
-
|
|
2738
|
-
debug ('update on bucket: q is %o, upd is %o', q, upd);
|
|
2739
|
-
this._col.updateOne (q, upd, (err, result) => {
|
|
2740
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2741
|
-
callback (null, result && (result.modifiedCount == 1));
|
|
2742
|
-
});
|
|
2743
|
-
}
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
/////////////////////////////////////////
|
|
2747
|
-
_drain_read (cb) {
|
|
2748
|
-
debug ('drain_read called');
|
|
2749
|
-
|
|
2750
|
-
this._read_bucket._cancel_flush_state_changes ();
|
|
2751
|
-
this._read_bucket._flush_state_changes (err => {
|
|
2752
|
-
debug ('drain_read completed');
|
|
2753
|
-
cb (err);
|
|
2754
|
-
});
|
|
2755
|
-
}
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
/////////////////////////////////////////
|
|
2759
|
-
_drain_insert (cb) {
|
|
2760
|
-
debug ('drain_insert called');
|
|
2761
|
-
|
|
2762
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (this._insert_bucket.b.length) {
|
|
2763
|
-
<span class="cstat-no" title="statement not covered" > if (this._flush_timer) <span class="cstat-no" title="statement not covered" >clearTimeout (this._flush_timer);</span></span>
|
|
2764
|
-
<span class="cstat-no" title="statement not covered" > this._flush_timer = null;</span>
|
|
2765
|
-
|
|
2766
|
-
<span class="cstat-no" title="statement not covered" > debug ('drain_insert flushing _insert_bucket');</span>
|
|
2767
|
-
|
|
2768
|
-
<span class="cstat-no" title="statement not covered" > this._flush_bucket (cb);</span>
|
|
2769
|
-
}
|
|
2770
|
-
else {
|
|
2771
|
-
debug ('drain_insert: nothing pending insertion, completed');
|
|
2772
|
-
cb ();
|
|
2773
|
-
}
|
|
2774
|
-
}
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
/////////////////////////////////////////
|
|
2778
|
-
// empty local buffers
|
|
2779
|
-
drain (callback) {
|
|
2780
|
-
async.series ([
|
|
2781
|
-
cb => {this._in_drain = true; cb ();},
|
|
2782
|
-
cb => async.parallel ([
|
|
2783
|
-
cb => this._drain_read (cb),
|
|
2784
|
-
cb => this._drain_insert (cb),
|
|
2785
|
-
], cb),
|
|
2786
|
-
cb => {debug ('drain stages completed'), cb ()},
|
|
2787
|
-
cb => {this._in_drain = false; this._drained = true; cb ()},
|
|
2788
|
-
cb => {this.cancel (); cb ()},
|
|
2789
|
-
cb => {debug ('drain completed'), cb ()}
|
|
2790
|
-
], callback);
|
|
2791
|
-
}
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
/////////////////////////////////////////
|
|
2795
|
-
_ensureIndexes (cb) {
|
|
2796
|
-
this._col.createIndex ({mature : 1}, err => cb (err));
|
|
2797
|
-
}
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
/////////////////////////////////////////
|
|
2801
|
-
_set_periodic_flush () {
|
|
2802
|
-
/////////////////////////////////////////
|
|
2803
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (this._flush_timer) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
2804
|
-
|
|
2805
|
-
this._flush_timer = setTimeout (() => {
|
|
2806
|
-
this._flush_timer = null;
|
|
2807
|
-
|
|
2808
|
-
debug ('flush_timer went off');
|
|
2809
|
-
|
|
2810
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (this._insert_bucket.b.length) {
|
|
2811
|
-
this._flush_bucket ((err, res) => {
|
|
2812
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
|
|
2813
|
-
// keep retrying
|
|
2814
|
-
<span class="cstat-no" title="statement not covered" > this._set_periodic_flush ();</span>
|
|
2815
|
-
}
|
|
2816
|
-
});
|
|
2817
|
-
}
|
|
2818
|
-
else {
|
|
2819
|
-
// nothing to insert, stop
|
|
2820
|
-
}
|
|
2821
|
-
}, this._bucket_max_wait);
|
|
2822
|
-
|
|
2823
|
-
debug ('_set_periodic_flush set, wait %d msecs', this._bucket_max_wait);
|
|
2824
|
-
}
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
/////////////////////////////////////////
|
|
2828
|
-
_flush_bucket (callback) {
|
|
2829
|
-
/////////////////////////////////////////
|
|
2830
|
-
var bucket = this._insert_bucket;
|
|
2831
|
-
bucket.n = bucket.b.length;
|
|
2832
|
-
|
|
2833
|
-
this._insert_bucket = {
|
|
2834
|
-
_id: new mongo.ObjectID (),
|
|
2835
|
-
b: []
|
|
2836
|
-
};
|
|
2837
|
-
|
|
2838
|
-
debug ('flushing bucket %s with %d elems', bucket._id.toString(), bucket.b.length);
|
|
2839
|
-
|
|
2840
|
-
this._col.insertOne (bucket, {}, (err, result) => {
|
|
2841
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span>
|
|
2842
|
-
|
|
2843
|
-
this._signal_insertion_own (bucket.mature);
|
|
2844
|
-
callback (null, bucket);
|
|
2845
|
-
});
|
|
2846
|
-
}
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
/////////////////////////////////////////
|
|
2850
|
-
// get element from queue
|
|
2851
|
-
<span class="fstat-no" title="function not covered" > _g</span>et_bucket (callback) {
|
|
2852
|
-
/////////////////////////////////////////
|
|
2853
|
-
<span class="cstat-no" title="statement not covered" > debug ('need to read a bucket');</span>
|
|
2854
|
-
|
|
2855
|
-
<span class="cstat-no" title="statement not covered" > this._col.findOneAndDelete ({}, {sort: {_id : 1}}, <span class="fstat-no" title="function not covered" >(e</span>rr, result) => {</span>
|
|
2856
|
-
<span class="cstat-no" title="statement not covered" > if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span></span>
|
|
2857
|
-
|
|
2858
|
-
var val = <span class="cstat-no" title="statement not covered" >result && result.value;</span>
|
|
2859
|
-
|
|
2860
|
-
<span class="cstat-no" title="statement not covered" > if (val) {</span>
|
|
2861
|
-
<span class="cstat-no" title="statement not covered" > debug ('read a bucket %s with %d elems', val._id.toString(), val.n);</span>
|
|
2862
|
-
}
|
|
2863
|
-
|
|
2864
|
-
<span class="cstat-no" title="statement not covered" > callback (null, val);</span>
|
|
2865
|
-
});
|
|
2866
|
-
}
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
////////////////////////////////////////
|
|
2870
|
-
// redefine signalling of insertion:
|
|
2871
|
-
//
|
|
2872
|
-
// inhibit inherited one
|
|
2873
|
-
_signal_insertion (t) {
|
|
2874
|
-
}
|
|
2875
|
-
|
|
2876
|
-
// and define own one
|
|
2877
|
-
_signal_insertion_own (t) {
|
|
2878
|
-
this._signaller.signalInsertion (t);
|
|
2879
|
-
}
|
|
2880
|
-
};
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
class Factory extends QFactory_MongoDB_defaults {
|
|
2884
|
-
constructor (opts, mongo_conn) {
|
|
2885
|
-
super (opts);
|
|
2886
|
-
this._mongo_conn = mongo_conn;
|
|
2887
|
-
this._db = mongo_conn.db();
|
|
2888
|
-
}
|
|
2889
|
-
|
|
2890
|
-
queue (name, opts) {
|
|
2891
|
-
var full_opts = {}
|
|
2892
|
-
_.merge(full_opts, this._opts, opts);
|
|
2893
|
-
return new BucketMongoSafeQueue (name, this, full_opts, opts);
|
|
2894
|
-
}
|
|
2895
|
-
|
|
2896
|
-
close (cb) {
|
|
2897
|
-
super.close (() => {
|
|
2898
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (this._mongo_conn) {
|
|
2899
|
-
this._mongo_conn.close ();
|
|
2900
|
-
this._mongo_conn = null;
|
|
2901
|
-
}
|
|
2902
|
-
|
|
2903
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (cb) return cb ();
|
|
2904
|
-
});
|
|
2905
|
-
}
|
|
2906
|
-
|
|
2907
|
-
<span class="fstat-no" title="function not covered" > ty</span>pe () {
|
|
2908
|
-
<span class="cstat-no" title="statement not covered" > return BucketMongoSafeQueue.Type ();</span>
|
|
2909
|
-
}
|
|
2910
|
-
|
|
2911
|
-
capabilities () {
|
|
2912
|
-
return {
|
|
2913
|
-
sched: false,
|
|
2914
|
-
reserve: true,
|
|
2915
|
-
pipeline: false
|
|
2916
|
-
};
|
|
2917
|
-
}
|
|
2918
|
-
}
|
|
2919
|
-
|
|
2920
|
-
function creator (opts, cb) {
|
|
2921
|
-
var _opts = opts || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
2922
|
-
var m_url = _opts.url || <span class="branch-1 cbranch-no" title="branch not covered" >'mongodb://localhost:27017/keuss';</span>
|
|
2923
|
-
|
|
2924
|
-
MongoClient.connect (m_url, { useNewUrlParser: true }, (err, cl) => {
|
|
2925
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb (err);</span>
|
|
2926
|
-
var F = new Factory (_opts, cl);
|
|
2927
|
-
F.async_init (err => cb (null, F));
|
|
2928
|
-
});
|
|
2929
|
-
}
|
|
2930
|
-
|
|
2931
|
-
module.exports = creator;
|
|
2932
|
-
</pre></td></tr>
|
|
2933
|
-
</table></pre>
|
|
2934
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
2935
|
-
</div><!-- /wrapper -->
|
|
2936
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
2937
|
-
Code coverage
|
|
2938
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
|
|
2939
|
-
</div>
|
|
2940
|
-
</div>
|
|
2941
|
-
<script src="../../prettify.js"></script>
|
|
2942
|
-
<script>
|
|
2943
|
-
window.onload = function () {
|
|
2944
|
-
if (typeof prettyPrint === 'function') {
|
|
2945
|
-
prettyPrint();
|
|
2946
|
-
}
|
|
2947
|
-
};
|
|
2948
|
-
</script>
|
|
2949
|
-
<script src="../../sorter.js"></script>
|
|
2950
|
-
<script src="../../block-navigation.js"></script>
|
|
2951
|
-
</body>
|
|
2952
|
-
</html>
|