apostrophe 2.221.0 → 2.221.2
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/CHANGELOG.md +12 -0
- package/lib/modules/apostrophe-caches/index.js +23 -1
- package/lib/modules/apostrophe-soft-redirects/index.js +21 -14
- package/package.json +1 -1
- package/test/caches.js +29 -0
- package/test/soft-redirects.js +16 -3
- package/.nyc_output/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +0 -1
- package/.nyc_output/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +0 -1
- package/.nyc_output/99acae99-becc-463d-ba35-9333f88d2694.json +0 -1
- package/.nyc_output/d071f9e0-3b11-44e6-9817-69f184dd064d.json +0 -1
- package/.nyc_output/ed000bec-7ff7-49bf-a109-d17bfe883433.json +0 -1
- package/.nyc_output/processinfo/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +0 -1
- package/.nyc_output/processinfo/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +0 -1
- package/.nyc_output/processinfo/99acae99-becc-463d-ba35-9333f88d2694.json +0 -1
- package/.nyc_output/processinfo/d071f9e0-3b11-44e6-9817-69f184dd064d.json +0 -1
- package/.nyc_output/processinfo/ed000bec-7ff7-49bf-a109-d17bfe883433.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/coverage/a3/defaults.js.html +0 -253
- package/coverage/a3/index.html +0 -131
- package/coverage/a3/index.js.html +0 -2338
- package/coverage/a3/lib/escape-host.js.html +0 -109
- package/coverage/a3/lib/index.html +0 -176
- package/coverage/a3/lib/mongodb-connect.js.html +0 -250
- package/coverage/a3/lib/moog-require.js.html +0 -790
- package/coverage/a3/lib/moog.js.html +0 -1711
- package/coverage/a3/lib/opentelemetry.js.html +0 -517
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.js.html +0 -931
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.js.html +0 -115
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.js.html +0 -1105
- package/coverage/a3/modules/@apostrophecms/archive-page/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/archive-page/index.js.html +0 -97
- package/coverage/a3/modules/@apostrophecms/area/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/area/index.js.html +0 -2104
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/area.js.html +0 -469
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/widget.js.html +0 -286
- package/coverage/a3/modules/@apostrophecms/asset/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/asset/index.js.html +0 -3982
- package/coverage/a3/modules/@apostrophecms/asset/lib/globalIcons.js.html +0 -346
- package/coverage/a3/modules/@apostrophecms/asset/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.scss.js.html +0 -289
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.vue.js.html +0 -148
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.es5.js.html +0 -184
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.scss.js.html +0 -238
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/utils.js.html +0 -958
- package/coverage/a3/modules/@apostrophecms/attachment/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/attachment/index.js.html +0 -3676
- package/coverage/a3/modules/@apostrophecms/attachment/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/attachment/lib/legacy-migrations.js.html +0 -205
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/rescale.js.html +0 -328
- package/coverage/a3/modules/@apostrophecms/busy/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/busy/index.js.html +0 -145
- package/coverage/a3/modules/@apostrophecms/cache/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/cache/index.js.html +0 -424
- package/coverage/a3/modules/@apostrophecms/db/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/db/index.js.html +0 -640
- package/coverage/a3/modules/@apostrophecms/doc/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/doc/index.js.html +0 -3937
- package/coverage/a3/modules/@apostrophecms/doc/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/doc/lib/legacy-migrations.js.html +0 -622
- package/coverage/a3/modules/@apostrophecms/doc-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/doc-type/index.js.html +0 -8638
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/autocomplete.js.html +0 -319
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/email/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/email/index.js.html +0 -301
- package/coverage/a3/modules/@apostrophecms/error/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/error/index.js.html +0 -202
- package/coverage/a3/modules/@apostrophecms/express/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/express/index.js.html +0 -2116
- package/coverage/a3/modules/@apostrophecms/file/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/file/index.js.html +0 -367
- package/coverage/a3/modules/@apostrophecms/file-tag/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/file-tag/index.js.html +0 -127
- package/coverage/a3/modules/@apostrophecms/global/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/global/index.js.html +0 -535
- package/coverage/a3/modules/@apostrophecms/home-page/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/home-page/index.js.html +0 -94
- package/coverage/a3/modules/@apostrophecms/html-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/html-widget/index.js.html +0 -271
- package/coverage/a3/modules/@apostrophecms/http/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/http/index.js.html +0 -976
- package/coverage/a3/modules/@apostrophecms/i18n/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/i18n/index.js.html +0 -2083
- package/coverage/a3/modules/@apostrophecms/image/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/image/index.js.html +0 -1486
- package/coverage/a3/modules/@apostrophecms/image-tag/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/image-tag/index.js.html +0 -127
- package/coverage/a3/modules/@apostrophecms/image-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/image-widget/index.js.html +0 -145
- package/coverage/a3/modules/@apostrophecms/job/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/job/index.js.html +0 -1321
- package/coverage/a3/modules/@apostrophecms/launder/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/launder/index.js.html +0 -124
- package/coverage/a3/modules/@apostrophecms/lock/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/lock/index.js.html +0 -676
- package/coverage/a3/modules/@apostrophecms/login/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/login/index.js.html +0 -2617
- package/coverage/a3/modules/@apostrophecms/migration/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/migration/index.js.html +0 -970
- package/coverage/a3/modules/@apostrophecms/modal/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/modal/index.js.html +0 -193
- package/coverage/a3/modules/@apostrophecms/module/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/module/index.js.html +0 -2500
- package/coverage/a3/modules/@apostrophecms/module/lib/events.js.html +0 -547
- package/coverage/a3/modules/@apostrophecms/module/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/notification/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/notification/index.js.html +0 -1315
- package/coverage/a3/modules/@apostrophecms/oembed/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/oembed/index.js.html +0 -781
- package/coverage/a3/modules/@apostrophecms/oembed/lib/index.html +0 -161
- package/coverage/a3/modules/@apostrophecms/oembed/lib/infogram.js.html +0 -178
- package/coverage/a3/modules/@apostrophecms/oembed/lib/vimeo.js.html +0 -124
- package/coverage/a3/modules/@apostrophecms/oembed/lib/wufoo.js.html +0 -256
- package/coverage/a3/modules/@apostrophecms/oembed/lib/youtube.js.html +0 -322
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.js.html +0 -268
- package/coverage/a3/modules/@apostrophecms/page/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/page/index.js.html +0 -6955
- package/coverage/a3/modules/@apostrophecms/page/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/page/lib/legacy-migrations.js.html +0 -568
- package/coverage/a3/modules/@apostrophecms/page-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/page-type/index.js.html +0 -1501
- package/coverage/a3/modules/@apostrophecms/pager/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/pager/index.js.html +0 -232
- package/coverage/a3/modules/@apostrophecms/permission/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/permission/index.js.html +0 -1057
- package/coverage/a3/modules/@apostrophecms/permission/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/permission/lib/legacy-migrations.js.html +0 -160
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.js.html +0 -1051
- package/coverage/a3/modules/@apostrophecms/piece-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/piece-type/index.js.html +0 -3103
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.js.html +0 -157
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.js.html +0 -1363
- package/coverage/a3/modules/@apostrophecms/schema/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/schema/index.js.html +0 -4603
- package/coverage/a3/modules/@apostrophecms/schema/lib/addFieldTypes.js.html +0 -3502
- package/coverage/a3/modules/@apostrophecms/schema/lib/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/schema/lib/joinr.js.html +0 -703
- package/coverage/a3/modules/@apostrophecms/search/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/search/index.js.html +0 -1222
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.js.html +0 -343
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.js.html +0 -595
- package/coverage/a3/modules/@apostrophecms/task/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/task/index.js.html +0 -1147
- package/coverage/a3/modules/@apostrophecms/template/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/template/index.js.html +0 -2731
- package/coverage/a3/modules/@apostrophecms/template/lib/bundlesLoader.js.html +0 -559
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/component.js.html +0 -310
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/fragment.js.html +0 -325
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/index.html +0 -146
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/render.js.html +0 -490
- package/coverage/a3/modules/@apostrophecms/template/lib/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/template/lib/nunjucksLoader.js.html +0 -658
- package/coverage/a3/modules/@apostrophecms/ui/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/ui/index.js.html +0 -181
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.js.html +0 -286
- package/coverage/a3/modules/@apostrophecms/url/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/url/index.js.html +0 -733
- package/coverage/a3/modules/@apostrophecms/user/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/user/index.js.html +0 -1684
- package/coverage/a3/modules/@apostrophecms/user/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/user/lib/legacy-migrations.js.html +0 -157
- package/coverage/a3/modules/@apostrophecms/util/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/util/index.js.html +0 -3424
- package/coverage/a3/modules/@apostrophecms/util/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/util/lib/logger.js.html +0 -319
- package/coverage/a3/modules/@apostrophecms/video-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/video-widget/index.js.html +0 -178
- package/coverage/a3/modules/@apostrophecms/widget-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/widget-type/index.js.html +0 -1225
- package/coverage/a3/test-lib/index.html +0 -131
- package/coverage/a3/test-lib/test.js.html +0 -232
- package/coverage/a3/test-lib/util.js.html +0 -373
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -1256
- 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 -196
|
@@ -1,3937 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for a3/modules/@apostrophecms/doc/index.js</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../../index.html">All files</a> / <a href="index.html">a3/modules/@apostrophecms/doc</a> index.js</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">77.16% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>338/438</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">68.72% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>189/275</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">85.22% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>75/88</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">77.24% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>336/435</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
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.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line medium'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
-
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
-
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
-
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
-
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
-
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
-
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
-
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
-
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
-
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
-
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
-
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
-
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
-
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
-
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
-
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
-
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
-
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
-
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
-
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
-
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
-
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
-
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
-
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
-
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
-
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
-
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
-
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
-
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
-
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
-
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
-
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
-
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
-
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
-
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
-
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
-
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
-
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
-
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
-
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
-
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
-
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
-
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
-
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
-
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
-
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
-
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
-
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
-
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
-
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
-
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
-
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
-
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
-
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
-
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
-
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
-
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
-
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
-
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
-
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
-
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
-
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
-
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
-
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
-
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
-
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
-
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
-
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
-
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
-
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
-
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
-
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
-
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
-
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
-
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
-
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
-
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
-
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
-
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
-
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
-
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
-
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
-
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
-
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
-
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
-
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
-
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
-
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
-
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
-
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
-
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
-
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
-
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
-
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
-
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
-
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
-
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
-
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
-
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
-
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
-
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
-
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
-
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
-
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
-
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
-
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
-
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
-
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
-
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
-
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
-
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
-
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
-
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
-
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
-
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
-
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
-
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
-
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
-
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
-
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
-
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
-
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
-
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
-
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
-
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
-
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
-
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
-
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
-
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
-
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
-
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
-
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
-
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
-
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
-
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
-
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
-
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
-
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
-
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
-
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
-
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
-
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
-
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
-
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
-
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
-
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
-
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
-
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
-
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
-
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
-
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
-
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
-
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
-
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
-
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
-
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
-
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
-
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
-
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
-
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
-
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
-
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
-
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
-
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
-
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
-
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
-
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
-
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
-
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
-
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
-
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
-
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
-
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
-
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
-
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
-
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
-
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
-
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
-
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
-
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
-
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
-
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
-
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
-
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
-
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
-
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
-
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
-
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
-
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
-
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
-
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
-
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
-
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
-
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
-
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
-
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
-
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
-
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
-
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
-
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
-
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
-
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
-
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
-
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
-
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
-
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
-
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
-
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
-
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
-
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
-
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
-
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
-
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
-
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
-
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
-
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
-
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
-
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
-
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
-
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
-
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
-
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
-
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
-
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
-
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
-
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
-
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
-
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
-
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
-
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
-
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
-
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
-
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
-
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
-
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
-
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
-
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
-
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
-
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
-
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
-
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
-
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
-
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
-
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
-
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
-
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
-
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
-
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
-
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
-
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
-
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
-
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
-
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
-
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
-
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
-
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
-
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
-
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
-
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
-
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
-
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
-
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
-
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
-
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
-
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
-
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
-
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
-
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
-
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
-
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
-
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
-
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
-
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
-
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
-
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
-
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
-
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
-
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
-
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
-
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
-
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
-
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
-
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
-
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
-
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
-
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
-
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
-
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
-
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
-
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
-
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
-
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
-
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
-
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
-
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
-
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
-
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
-
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
-
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
-
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
-
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
-
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
-
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
-
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
-
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
-
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
-
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
-
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
-
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
-
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
-
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
-
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
-
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
-
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
-
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
-
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
-
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
-
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
-
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
-
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
-
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
-
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
-
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
-
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
-
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
-
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
-
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
-
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
-
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
-
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
-
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
-
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
-
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
-
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
-
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
-
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
-
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
-
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
-
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
-
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
-
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
-
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
-
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
-
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
-
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
-
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
-
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
-
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
-
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
-
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
-
<a name='L724'></a><a href='#L724'>724</a>
|
|
790
|
-
<a name='L725'></a><a href='#L725'>725</a>
|
|
791
|
-
<a name='L726'></a><a href='#L726'>726</a>
|
|
792
|
-
<a name='L727'></a><a href='#L727'>727</a>
|
|
793
|
-
<a name='L728'></a><a href='#L728'>728</a>
|
|
794
|
-
<a name='L729'></a><a href='#L729'>729</a>
|
|
795
|
-
<a name='L730'></a><a href='#L730'>730</a>
|
|
796
|
-
<a name='L731'></a><a href='#L731'>731</a>
|
|
797
|
-
<a name='L732'></a><a href='#L732'>732</a>
|
|
798
|
-
<a name='L733'></a><a href='#L733'>733</a>
|
|
799
|
-
<a name='L734'></a><a href='#L734'>734</a>
|
|
800
|
-
<a name='L735'></a><a href='#L735'>735</a>
|
|
801
|
-
<a name='L736'></a><a href='#L736'>736</a>
|
|
802
|
-
<a name='L737'></a><a href='#L737'>737</a>
|
|
803
|
-
<a name='L738'></a><a href='#L738'>738</a>
|
|
804
|
-
<a name='L739'></a><a href='#L739'>739</a>
|
|
805
|
-
<a name='L740'></a><a href='#L740'>740</a>
|
|
806
|
-
<a name='L741'></a><a href='#L741'>741</a>
|
|
807
|
-
<a name='L742'></a><a href='#L742'>742</a>
|
|
808
|
-
<a name='L743'></a><a href='#L743'>743</a>
|
|
809
|
-
<a name='L744'></a><a href='#L744'>744</a>
|
|
810
|
-
<a name='L745'></a><a href='#L745'>745</a>
|
|
811
|
-
<a name='L746'></a><a href='#L746'>746</a>
|
|
812
|
-
<a name='L747'></a><a href='#L747'>747</a>
|
|
813
|
-
<a name='L748'></a><a href='#L748'>748</a>
|
|
814
|
-
<a name='L749'></a><a href='#L749'>749</a>
|
|
815
|
-
<a name='L750'></a><a href='#L750'>750</a>
|
|
816
|
-
<a name='L751'></a><a href='#L751'>751</a>
|
|
817
|
-
<a name='L752'></a><a href='#L752'>752</a>
|
|
818
|
-
<a name='L753'></a><a href='#L753'>753</a>
|
|
819
|
-
<a name='L754'></a><a href='#L754'>754</a>
|
|
820
|
-
<a name='L755'></a><a href='#L755'>755</a>
|
|
821
|
-
<a name='L756'></a><a href='#L756'>756</a>
|
|
822
|
-
<a name='L757'></a><a href='#L757'>757</a>
|
|
823
|
-
<a name='L758'></a><a href='#L758'>758</a>
|
|
824
|
-
<a name='L759'></a><a href='#L759'>759</a>
|
|
825
|
-
<a name='L760'></a><a href='#L760'>760</a>
|
|
826
|
-
<a name='L761'></a><a href='#L761'>761</a>
|
|
827
|
-
<a name='L762'></a><a href='#L762'>762</a>
|
|
828
|
-
<a name='L763'></a><a href='#L763'>763</a>
|
|
829
|
-
<a name='L764'></a><a href='#L764'>764</a>
|
|
830
|
-
<a name='L765'></a><a href='#L765'>765</a>
|
|
831
|
-
<a name='L766'></a><a href='#L766'>766</a>
|
|
832
|
-
<a name='L767'></a><a href='#L767'>767</a>
|
|
833
|
-
<a name='L768'></a><a href='#L768'>768</a>
|
|
834
|
-
<a name='L769'></a><a href='#L769'>769</a>
|
|
835
|
-
<a name='L770'></a><a href='#L770'>770</a>
|
|
836
|
-
<a name='L771'></a><a href='#L771'>771</a>
|
|
837
|
-
<a name='L772'></a><a href='#L772'>772</a>
|
|
838
|
-
<a name='L773'></a><a href='#L773'>773</a>
|
|
839
|
-
<a name='L774'></a><a href='#L774'>774</a>
|
|
840
|
-
<a name='L775'></a><a href='#L775'>775</a>
|
|
841
|
-
<a name='L776'></a><a href='#L776'>776</a>
|
|
842
|
-
<a name='L777'></a><a href='#L777'>777</a>
|
|
843
|
-
<a name='L778'></a><a href='#L778'>778</a>
|
|
844
|
-
<a name='L779'></a><a href='#L779'>779</a>
|
|
845
|
-
<a name='L780'></a><a href='#L780'>780</a>
|
|
846
|
-
<a name='L781'></a><a href='#L781'>781</a>
|
|
847
|
-
<a name='L782'></a><a href='#L782'>782</a>
|
|
848
|
-
<a name='L783'></a><a href='#L783'>783</a>
|
|
849
|
-
<a name='L784'></a><a href='#L784'>784</a>
|
|
850
|
-
<a name='L785'></a><a href='#L785'>785</a>
|
|
851
|
-
<a name='L786'></a><a href='#L786'>786</a>
|
|
852
|
-
<a name='L787'></a><a href='#L787'>787</a>
|
|
853
|
-
<a name='L788'></a><a href='#L788'>788</a>
|
|
854
|
-
<a name='L789'></a><a href='#L789'>789</a>
|
|
855
|
-
<a name='L790'></a><a href='#L790'>790</a>
|
|
856
|
-
<a name='L791'></a><a href='#L791'>791</a>
|
|
857
|
-
<a name='L792'></a><a href='#L792'>792</a>
|
|
858
|
-
<a name='L793'></a><a href='#L793'>793</a>
|
|
859
|
-
<a name='L794'></a><a href='#L794'>794</a>
|
|
860
|
-
<a name='L795'></a><a href='#L795'>795</a>
|
|
861
|
-
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
|
-
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
|
-
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
-
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
-
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
-
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
-
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
-
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
-
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
-
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
-
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
-
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
-
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
-
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
-
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
-
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
-
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
-
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
-
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
-
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
-
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
-
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
-
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
-
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
-
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
-
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
-
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
-
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
-
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
-
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
-
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
-
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
-
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
-
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
-
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
-
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
-
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
-
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
-
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
-
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
-
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
-
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
-
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
-
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
-
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
-
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
-
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
-
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
-
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
-
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
-
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
-
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
-
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
-
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
-
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
-
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
-
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
-
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
-
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
-
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
-
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
-
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
-
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
-
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
-
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
-
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
-
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
-
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
-
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
-
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
-
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
-
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
-
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
-
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
-
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
-
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
-
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
-
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
-
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
-
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
-
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
-
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
-
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
-
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
-
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
-
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
-
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
-
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
-
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
-
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
-
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
-
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
-
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
-
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
-
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
-
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
-
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
-
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
-
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
-
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
-
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
-
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
-
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
-
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
-
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
-
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
-
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
-
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
-
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
-
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
-
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
-
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
-
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
-
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
-
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
-
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
-
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
-
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
-
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
-
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
-
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
-
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
-
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
-
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
-
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
-
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
-
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
-
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
-
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
-
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
-
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
-
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
-
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
-
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
-
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
-
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
-
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
-
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
-
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
-
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
-
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
-
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
-
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
-
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
-
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
-
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
-
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
-
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
-
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
-
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
-
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
-
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
-
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
-
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
-
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
-
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
-
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
-
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
-
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
-
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
-
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
-
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
-
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
-
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
-
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
-
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
-
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
-
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
-
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
-
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
-
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
-
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
-
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
-
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
-
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
-
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
-
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
-
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
-
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
-
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
-
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
-
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
-
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
-
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
-
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
-
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
-
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
-
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
-
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
-
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
-
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
-
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
-
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
-
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
-
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
-
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
-
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
-
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
-
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
-
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
-
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
-
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
-
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
-
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
-
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
-
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
-
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
-
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
-
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
-
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
-
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
-
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
-
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
-
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
-
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
-
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
-
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
-
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
-
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
-
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
-
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
-
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
-
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
-
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
-
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
-
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
-
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
-
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
-
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
-
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
-
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
-
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
-
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
-
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
-
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
-
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
-
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
-
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
-
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
-
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
-
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
-
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
-
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
-
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
-
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
-
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
-
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
-
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
-
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
-
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
-
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
-
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
-
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
-
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
-
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
-
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
-
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
-
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
-
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
-
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
-
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
-
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
-
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
-
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
-
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
-
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
-
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
-
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
-
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
-
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
-
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
-
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
-
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
-
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
-
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
-
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
-
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
-
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
-
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
-
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
-
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
-
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
-
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
-
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
-
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
-
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
-
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
-
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
-
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
-
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
-
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
-
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
-
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
-
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
-
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
-
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
-
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
-
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
-
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
-
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
-
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
-
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
-
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
-
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
-
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
-
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
-
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
-
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
-
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
-
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
-
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
-
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
-
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
-
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
-
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
-
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
-
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
-
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
-
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
-
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
-
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
-
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
-
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
-
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
-
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
-
<a name='L1121'></a><a href='#L1121'>1121</a>
|
|
1187
|
-
<a name='L1122'></a><a href='#L1122'>1122</a>
|
|
1188
|
-
<a name='L1123'></a><a href='#L1123'>1123</a>
|
|
1189
|
-
<a name='L1124'></a><a href='#L1124'>1124</a>
|
|
1190
|
-
<a name='L1125'></a><a href='#L1125'>1125</a>
|
|
1191
|
-
<a name='L1126'></a><a href='#L1126'>1126</a>
|
|
1192
|
-
<a name='L1127'></a><a href='#L1127'>1127</a>
|
|
1193
|
-
<a name='L1128'></a><a href='#L1128'>1128</a>
|
|
1194
|
-
<a name='L1129'></a><a href='#L1129'>1129</a>
|
|
1195
|
-
<a name='L1130'></a><a href='#L1130'>1130</a>
|
|
1196
|
-
<a name='L1131'></a><a href='#L1131'>1131</a>
|
|
1197
|
-
<a name='L1132'></a><a href='#L1132'>1132</a>
|
|
1198
|
-
<a name='L1133'></a><a href='#L1133'>1133</a>
|
|
1199
|
-
<a name='L1134'></a><a href='#L1134'>1134</a>
|
|
1200
|
-
<a name='L1135'></a><a href='#L1135'>1135</a>
|
|
1201
|
-
<a name='L1136'></a><a href='#L1136'>1136</a>
|
|
1202
|
-
<a name='L1137'></a><a href='#L1137'>1137</a>
|
|
1203
|
-
<a name='L1138'></a><a href='#L1138'>1138</a>
|
|
1204
|
-
<a name='L1139'></a><a href='#L1139'>1139</a>
|
|
1205
|
-
<a name='L1140'></a><a href='#L1140'>1140</a>
|
|
1206
|
-
<a name='L1141'></a><a href='#L1141'>1141</a>
|
|
1207
|
-
<a name='L1142'></a><a href='#L1142'>1142</a>
|
|
1208
|
-
<a name='L1143'></a><a href='#L1143'>1143</a>
|
|
1209
|
-
<a name='L1144'></a><a href='#L1144'>1144</a>
|
|
1210
|
-
<a name='L1145'></a><a href='#L1145'>1145</a>
|
|
1211
|
-
<a name='L1146'></a><a href='#L1146'>1146</a>
|
|
1212
|
-
<a name='L1147'></a><a href='#L1147'>1147</a>
|
|
1213
|
-
<a name='L1148'></a><a href='#L1148'>1148</a>
|
|
1214
|
-
<a name='L1149'></a><a href='#L1149'>1149</a>
|
|
1215
|
-
<a name='L1150'></a><a href='#L1150'>1150</a>
|
|
1216
|
-
<a name='L1151'></a><a href='#L1151'>1151</a>
|
|
1217
|
-
<a name='L1152'></a><a href='#L1152'>1152</a>
|
|
1218
|
-
<a name='L1153'></a><a href='#L1153'>1153</a>
|
|
1219
|
-
<a name='L1154'></a><a href='#L1154'>1154</a>
|
|
1220
|
-
<a name='L1155'></a><a href='#L1155'>1155</a>
|
|
1221
|
-
<a name='L1156'></a><a href='#L1156'>1156</a>
|
|
1222
|
-
<a name='L1157'></a><a href='#L1157'>1157</a>
|
|
1223
|
-
<a name='L1158'></a><a href='#L1158'>1158</a>
|
|
1224
|
-
<a name='L1159'></a><a href='#L1159'>1159</a>
|
|
1225
|
-
<a name='L1160'></a><a href='#L1160'>1160</a>
|
|
1226
|
-
<a name='L1161'></a><a href='#L1161'>1161</a>
|
|
1227
|
-
<a name='L1162'></a><a href='#L1162'>1162</a>
|
|
1228
|
-
<a name='L1163'></a><a href='#L1163'>1163</a>
|
|
1229
|
-
<a name='L1164'></a><a href='#L1164'>1164</a>
|
|
1230
|
-
<a name='L1165'></a><a href='#L1165'>1165</a>
|
|
1231
|
-
<a name='L1166'></a><a href='#L1166'>1166</a>
|
|
1232
|
-
<a name='L1167'></a><a href='#L1167'>1167</a>
|
|
1233
|
-
<a name='L1168'></a><a href='#L1168'>1168</a>
|
|
1234
|
-
<a name='L1169'></a><a href='#L1169'>1169</a>
|
|
1235
|
-
<a name='L1170'></a><a href='#L1170'>1170</a>
|
|
1236
|
-
<a name='L1171'></a><a href='#L1171'>1171</a>
|
|
1237
|
-
<a name='L1172'></a><a href='#L1172'>1172</a>
|
|
1238
|
-
<a name='L1173'></a><a href='#L1173'>1173</a>
|
|
1239
|
-
<a name='L1174'></a><a href='#L1174'>1174</a>
|
|
1240
|
-
<a name='L1175'></a><a href='#L1175'>1175</a>
|
|
1241
|
-
<a name='L1176'></a><a href='#L1176'>1176</a>
|
|
1242
|
-
<a name='L1177'></a><a href='#L1177'>1177</a>
|
|
1243
|
-
<a name='L1178'></a><a href='#L1178'>1178</a>
|
|
1244
|
-
<a name='L1179'></a><a href='#L1179'>1179</a>
|
|
1245
|
-
<a name='L1180'></a><a href='#L1180'>1180</a>
|
|
1246
|
-
<a name='L1181'></a><a href='#L1181'>1181</a>
|
|
1247
|
-
<a name='L1182'></a><a href='#L1182'>1182</a>
|
|
1248
|
-
<a name='L1183'></a><a href='#L1183'>1183</a>
|
|
1249
|
-
<a name='L1184'></a><a href='#L1184'>1184</a>
|
|
1250
|
-
<a name='L1185'></a><a href='#L1185'>1185</a>
|
|
1251
|
-
<a name='L1186'></a><a href='#L1186'>1186</a>
|
|
1252
|
-
<a name='L1187'></a><a href='#L1187'>1187</a>
|
|
1253
|
-
<a name='L1188'></a><a href='#L1188'>1188</a>
|
|
1254
|
-
<a name='L1189'></a><a href='#L1189'>1189</a>
|
|
1255
|
-
<a name='L1190'></a><a href='#L1190'>1190</a>
|
|
1256
|
-
<a name='L1191'></a><a href='#L1191'>1191</a>
|
|
1257
|
-
<a name='L1192'></a><a href='#L1192'>1192</a>
|
|
1258
|
-
<a name='L1193'></a><a href='#L1193'>1193</a>
|
|
1259
|
-
<a name='L1194'></a><a href='#L1194'>1194</a>
|
|
1260
|
-
<a name='L1195'></a><a href='#L1195'>1195</a>
|
|
1261
|
-
<a name='L1196'></a><a href='#L1196'>1196</a>
|
|
1262
|
-
<a name='L1197'></a><a href='#L1197'>1197</a>
|
|
1263
|
-
<a name='L1198'></a><a href='#L1198'>1198</a>
|
|
1264
|
-
<a name='L1199'></a><a href='#L1199'>1199</a>
|
|
1265
|
-
<a name='L1200'></a><a href='#L1200'>1200</a>
|
|
1266
|
-
<a name='L1201'></a><a href='#L1201'>1201</a>
|
|
1267
|
-
<a name='L1202'></a><a href='#L1202'>1202</a>
|
|
1268
|
-
<a name='L1203'></a><a href='#L1203'>1203</a>
|
|
1269
|
-
<a name='L1204'></a><a href='#L1204'>1204</a>
|
|
1270
|
-
<a name='L1205'></a><a href='#L1205'>1205</a>
|
|
1271
|
-
<a name='L1206'></a><a href='#L1206'>1206</a>
|
|
1272
|
-
<a name='L1207'></a><a href='#L1207'>1207</a>
|
|
1273
|
-
<a name='L1208'></a><a href='#L1208'>1208</a>
|
|
1274
|
-
<a name='L1209'></a><a href='#L1209'>1209</a>
|
|
1275
|
-
<a name='L1210'></a><a href='#L1210'>1210</a>
|
|
1276
|
-
<a name='L1211'></a><a href='#L1211'>1211</a>
|
|
1277
|
-
<a name='L1212'></a><a href='#L1212'>1212</a>
|
|
1278
|
-
<a name='L1213'></a><a href='#L1213'>1213</a>
|
|
1279
|
-
<a name='L1214'></a><a href='#L1214'>1214</a>
|
|
1280
|
-
<a name='L1215'></a><a href='#L1215'>1215</a>
|
|
1281
|
-
<a name='L1216'></a><a href='#L1216'>1216</a>
|
|
1282
|
-
<a name='L1217'></a><a href='#L1217'>1217</a>
|
|
1283
|
-
<a name='L1218'></a><a href='#L1218'>1218</a>
|
|
1284
|
-
<a name='L1219'></a><a href='#L1219'>1219</a>
|
|
1285
|
-
<a name='L1220'></a><a href='#L1220'>1220</a>
|
|
1286
|
-
<a name='L1221'></a><a href='#L1221'>1221</a>
|
|
1287
|
-
<a name='L1222'></a><a href='#L1222'>1222</a>
|
|
1288
|
-
<a name='L1223'></a><a href='#L1223'>1223</a>
|
|
1289
|
-
<a name='L1224'></a><a href='#L1224'>1224</a>
|
|
1290
|
-
<a name='L1225'></a><a href='#L1225'>1225</a>
|
|
1291
|
-
<a name='L1226'></a><a href='#L1226'>1226</a>
|
|
1292
|
-
<a name='L1227'></a><a href='#L1227'>1227</a>
|
|
1293
|
-
<a name='L1228'></a><a href='#L1228'>1228</a>
|
|
1294
|
-
<a name='L1229'></a><a href='#L1229'>1229</a>
|
|
1295
|
-
<a name='L1230'></a><a href='#L1230'>1230</a>
|
|
1296
|
-
<a name='L1231'></a><a href='#L1231'>1231</a>
|
|
1297
|
-
<a name='L1232'></a><a href='#L1232'>1232</a>
|
|
1298
|
-
<a name='L1233'></a><a href='#L1233'>1233</a>
|
|
1299
|
-
<a name='L1234'></a><a href='#L1234'>1234</a>
|
|
1300
|
-
<a name='L1235'></a><a href='#L1235'>1235</a>
|
|
1301
|
-
<a name='L1236'></a><a href='#L1236'>1236</a>
|
|
1302
|
-
<a name='L1237'></a><a href='#L1237'>1237</a>
|
|
1303
|
-
<a name='L1238'></a><a href='#L1238'>1238</a>
|
|
1304
|
-
<a name='L1239'></a><a href='#L1239'>1239</a>
|
|
1305
|
-
<a name='L1240'></a><a href='#L1240'>1240</a>
|
|
1306
|
-
<a name='L1241'></a><a href='#L1241'>1241</a>
|
|
1307
|
-
<a name='L1242'></a><a href='#L1242'>1242</a>
|
|
1308
|
-
<a name='L1243'></a><a href='#L1243'>1243</a>
|
|
1309
|
-
<a name='L1244'></a><a href='#L1244'>1244</a>
|
|
1310
|
-
<a name='L1245'></a><a href='#L1245'>1245</a>
|
|
1311
|
-
<a name='L1246'></a><a href='#L1246'>1246</a>
|
|
1312
|
-
<a name='L1247'></a><a href='#L1247'>1247</a>
|
|
1313
|
-
<a name='L1248'></a><a href='#L1248'>1248</a>
|
|
1314
|
-
<a name='L1249'></a><a href='#L1249'>1249</a>
|
|
1315
|
-
<a name='L1250'></a><a href='#L1250'>1250</a>
|
|
1316
|
-
<a name='L1251'></a><a href='#L1251'>1251</a>
|
|
1317
|
-
<a name='L1252'></a><a href='#L1252'>1252</a>
|
|
1318
|
-
<a name='L1253'></a><a href='#L1253'>1253</a>
|
|
1319
|
-
<a name='L1254'></a><a href='#L1254'>1254</a>
|
|
1320
|
-
<a name='L1255'></a><a href='#L1255'>1255</a>
|
|
1321
|
-
<a name='L1256'></a><a href='#L1256'>1256</a>
|
|
1322
|
-
<a name='L1257'></a><a href='#L1257'>1257</a>
|
|
1323
|
-
<a name='L1258'></a><a href='#L1258'>1258</a>
|
|
1324
|
-
<a name='L1259'></a><a href='#L1259'>1259</a>
|
|
1325
|
-
<a name='L1260'></a><a href='#L1260'>1260</a>
|
|
1326
|
-
<a name='L1261'></a><a href='#L1261'>1261</a>
|
|
1327
|
-
<a name='L1262'></a><a href='#L1262'>1262</a>
|
|
1328
|
-
<a name='L1263'></a><a href='#L1263'>1263</a>
|
|
1329
|
-
<a name='L1264'></a><a href='#L1264'>1264</a>
|
|
1330
|
-
<a name='L1265'></a><a href='#L1265'>1265</a>
|
|
1331
|
-
<a name='L1266'></a><a href='#L1266'>1266</a>
|
|
1332
|
-
<a name='L1267'></a><a href='#L1267'>1267</a>
|
|
1333
|
-
<a name='L1268'></a><a href='#L1268'>1268</a>
|
|
1334
|
-
<a name='L1269'></a><a href='#L1269'>1269</a>
|
|
1335
|
-
<a name='L1270'></a><a href='#L1270'>1270</a>
|
|
1336
|
-
<a name='L1271'></a><a href='#L1271'>1271</a>
|
|
1337
|
-
<a name='L1272'></a><a href='#L1272'>1272</a>
|
|
1338
|
-
<a name='L1273'></a><a href='#L1273'>1273</a>
|
|
1339
|
-
<a name='L1274'></a><a href='#L1274'>1274</a>
|
|
1340
|
-
<a name='L1275'></a><a href='#L1275'>1275</a>
|
|
1341
|
-
<a name='L1276'></a><a href='#L1276'>1276</a>
|
|
1342
|
-
<a name='L1277'></a><a href='#L1277'>1277</a>
|
|
1343
|
-
<a name='L1278'></a><a href='#L1278'>1278</a>
|
|
1344
|
-
<a name='L1279'></a><a href='#L1279'>1279</a>
|
|
1345
|
-
<a name='L1280'></a><a href='#L1280'>1280</a>
|
|
1346
|
-
<a name='L1281'></a><a href='#L1281'>1281</a>
|
|
1347
|
-
<a name='L1282'></a><a href='#L1282'>1282</a>
|
|
1348
|
-
<a name='L1283'></a><a href='#L1283'>1283</a>
|
|
1349
|
-
<a name='L1284'></a><a href='#L1284'>1284</a>
|
|
1350
|
-
<a name='L1285'></a><a href='#L1285'>1285</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">90x</span>
|
|
1351
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1352
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1359
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
-
<span class="cline-any cline-yes">90x</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-neutral"> </span>
|
|
1380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1381
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1382
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1383
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1384
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1385
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1386
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1387
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1388
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1400
|
-
<span class="cline-any cline-no"> </span>
|
|
1401
|
-
<span class="cline-any cline-no"> </span>
|
|
1402
|
-
<span class="cline-any cline-no"> </span>
|
|
1403
|
-
<span class="cline-any cline-no"> </span>
|
|
1404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
-
<span class="cline-any cline-no"> </span>
|
|
1406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1413
|
-
<span class="cline-any cline-no"> </span>
|
|
1414
|
-
<span class="cline-any cline-no"> </span>
|
|
1415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
-
<span class="cline-any cline-no"> </span>
|
|
1417
|
-
<span class="cline-any cline-no"> </span>
|
|
1418
|
-
<span class="cline-any cline-no"> </span>
|
|
1419
|
-
<span class="cline-any cline-no"> </span>
|
|
1420
|
-
<span class="cline-any cline-no"> </span>
|
|
1421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-no"> </span>
|
|
1423
|
-
<span class="cline-any cline-no"> </span>
|
|
1424
|
-
<span class="cline-any cline-no"> </span>
|
|
1425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1426
|
-
<span class="cline-any cline-no"> </span>
|
|
1427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1432
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1444
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1445
|
-
<span class="cline-any cline-no"> </span>
|
|
1446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1448
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1449
|
-
<span class="cline-any cline-no"> </span>
|
|
1450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1454
|
-
<span class="cline-any cline-neutral"> </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-yes">2x</span>
|
|
1459
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1466
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1469
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1470
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1471
|
-
<span class="cline-any cline-yes">1782x</span>
|
|
1472
|
-
<span class="cline-any cline-yes">1782x</span>
|
|
1473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1476
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1477
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1478
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1479
|
-
<span class="cline-any cline-yes">927x</span>
|
|
1480
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1481
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1482
|
-
<span class="cline-any cline-no"> </span>
|
|
1483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1484
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1485
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1488
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1489
|
-
<span class="cline-any cline-yes">668x</span>
|
|
1490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1491
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1492
|
-
<span class="cline-any cline-yes">871x</span>
|
|
1493
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1494
|
-
<span class="cline-any cline-no"> </span>
|
|
1495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
-
<span class="cline-any cline-yes">871x</span>
|
|
1498
|
-
<span class="cline-any cline-yes">853x</span>
|
|
1499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1500
|
-
<span class="cline-any cline-yes">18x</span>
|
|
1501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1503
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1504
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1505
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-yes">314x</span>
|
|
1509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
-
<span class="cline-any cline-yes">1798x</span>
|
|
1514
|
-
<span class="cline-any cline-yes">46x</span>
|
|
1515
|
-
<span class="cline-any cline-no"> </span>
|
|
1516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
-
<span class="cline-any cline-yes">46x</span>
|
|
1518
|
-
<span class="cline-any cline-yes">54x</span>
|
|
1519
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1526
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1527
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1528
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1529
|
-
<span class="cline-any cline-no"> </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-yes">49x</span>
|
|
1537
|
-
<span class="cline-any cline-yes">49x</span>
|
|
1538
|
-
<span class="cline-any cline-yes">1x</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-yes">1920x</span>
|
|
1546
|
-
<span class="cline-any cline-yes">1920x</span>
|
|
1547
|
-
<span class="cline-any cline-yes">1920x</span>
|
|
1548
|
-
<span class="cline-any cline-yes">8207x</span>
|
|
1549
|
-
<span class="cline-any cline-yes">1708x</span>
|
|
1550
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
-
<span class="cline-any cline-yes">1920x</span>
|
|
1553
|
-
<span class="cline-any cline-yes">1916x</span>
|
|
1554
|
-
<span class="cline-any cline-yes">1916x</span>
|
|
1555
|
-
<span class="cline-any cline-yes">1916x</span>
|
|
1556
|
-
<span class="cline-any cline-yes">1916x</span>
|
|
1557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1566
|
-
<span class="cline-any cline-yes">1920x</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-yes">1797x</span>
|
|
1572
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1573
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
-
<span class="cline-any cline-yes">1780x</span>
|
|
1576
|
-
<span class="cline-any cline-yes">890x</span>
|
|
1577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1578
|
-
<span class="cline-any cline-yes">890x</span>
|
|
1579
|
-
<span class="cline-any cline-yes">890x</span>
|
|
1580
|
-
<span class="cline-any cline-yes">890x</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-neutral"> </span>
|
|
1586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1587
|
-
<span class="cline-any cline-yes">35x</span>
|
|
1588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1589
|
-
<span class="cline-any cline-yes">855x</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-neutral"> </span>
|
|
1594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1595
|
-
<span class="cline-any cline-yes">855x</span>
|
|
1596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1598
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1599
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1600
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1605
|
-
<span class="cline-any cline-yes">125x</span>
|
|
1606
|
-
<span class="cline-any cline-yes">125x</span>
|
|
1607
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
-
<span class="cline-any cline-neutral"> </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-no"> </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-neutral"> </span>
|
|
1619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1625
|
-
<span class="cline-any cline-no"> </span>
|
|
1626
|
-
<span class="cline-any cline-no"> </span>
|
|
1627
|
-
<span class="cline-any cline-no"> </span>
|
|
1628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1629
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1630
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1633
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1634
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1636
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1637
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1638
|
-
<span class="cline-any cline-yes">8x</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-neutral"> </span>
|
|
1643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1648
|
-
<span class="cline-any cline-yes">90x</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-neutral"> </span>
|
|
1653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1655
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1658
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1659
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1668
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1670
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1671
|
-
<span class="cline-any cline-neutral"> </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-yes">90x</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-yes">90x</span>
|
|
1680
|
-
<span class="cline-any cline-yes">90x</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">90x</span>
|
|
1685
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1688
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1689
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1690
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1692
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1693
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1694
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1695
|
-
<span class="cline-any cline-yes">90x</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">90x</span>
|
|
1700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1702
|
-
<span class="cline-any cline-yes">91x</span>
|
|
1703
|
-
<span class="cline-any cline-yes">91x</span>
|
|
1704
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1705
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1706
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1708
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1709
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1710
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1711
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1712
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1713
|
-
<span class="cline-any cline-no"> </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-yes">92x</span>
|
|
1718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1719
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1720
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1730
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1733
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1734
|
-
<span class="cline-any cline-yes">90x</span>
|
|
1735
|
-
<span class="cline-any cline-yes">90x</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-neutral"> </span>
|
|
1743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1755
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1756
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1757
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1759
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1760
|
-
<span class="cline-any cline-yes">56x</span>
|
|
1761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1762
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1763
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1769
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1770
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1776
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1778
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1779
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1780
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1790
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1791
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1795
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1796
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1797
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1798
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1799
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1800
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1801
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1802
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1803
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1804
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1805
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
1806
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1807
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1808
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1809
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1810
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1811
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1812
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1813
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1814
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1815
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1816
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1817
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1818
|
-
<span class="cline-any cline-no"> </span>
|
|
1819
|
-
<span class="cline-any cline-no"> </span>
|
|
1820
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1821
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1823
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1825
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1826
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1827
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1828
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1829
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1830
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
1831
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1832
|
-
<span class="cline-any cline-yes">7x</span>
|
|
1833
|
-
<span class="cline-any cline-yes">7x</span>
|
|
1834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1835
|
-
<span class="cline-any cline-yes">1804x</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-neutral"> </span>
|
|
1843
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1844
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1845
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1846
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1848
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1849
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1850
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1851
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1852
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1853
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1863
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1864
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1865
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1866
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1867
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1868
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1869
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1871
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1872
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1873
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1874
|
-
<span class="cline-any cline-yes">126x</span>
|
|
1875
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1876
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1877
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1878
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1879
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1880
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1881
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1882
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1883
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1884
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1885
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1886
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1887
|
-
<span class="cline-any cline-no"> </span>
|
|
1888
|
-
<span class="cline-any cline-no"> </span>
|
|
1889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1890
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1891
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1892
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1893
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1894
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1895
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1896
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1897
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1898
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1899
|
-
<span class="cline-any cline-yes">123x</span>
|
|
1900
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1901
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1902
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1903
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1904
|
-
<span class="cline-any cline-yes">126x</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">22x</span>
|
|
1918
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1919
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1920
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1921
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1925
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1926
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1927
|
-
<span class="cline-any cline-no"> </span>
|
|
1928
|
-
<span class="cline-any cline-no"> </span>
|
|
1929
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1930
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1931
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1932
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1933
|
-
<span class="cline-any cline-no"> </span>
|
|
1934
|
-
<span class="cline-any cline-no"> </span>
|
|
1935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1936
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1937
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1938
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1939
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1941
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1942
|
-
<span class="cline-any cline-no"> </span>
|
|
1943
|
-
<span class="cline-any cline-no"> </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-neutral"> </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-neutral"> </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-neutral"> </span>
|
|
1961
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1962
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1964
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1966
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
1971
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1972
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1973
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1974
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1975
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1976
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1977
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1978
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1979
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1982
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1983
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1984
|
-
<span class="cline-any cline-yes">130990x</span>
|
|
1985
|
-
<span class="cline-any cline-yes">115572x</span>
|
|
1986
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1987
|
-
<span class="cline-any cline-yes">15418x</span>
|
|
1988
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1989
|
-
<span class="cline-any cline-yes">130990x</span>
|
|
1990
|
-
<span class="cline-any cline-yes">130990x</span>
|
|
1991
|
-
<span class="cline-any cline-yes">130990x</span>
|
|
1992
|
-
<span class="cline-any cline-yes">449694x</span>
|
|
1993
|
-
<span class="cline-any cline-yes">449694x</span>
|
|
1994
|
-
<span class="cline-any cline-yes">449694x</span>
|
|
1995
|
-
<span class="cline-any cline-no"> </span>
|
|
1996
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1997
|
-
<span class="cline-any cline-yes">449694x</span>
|
|
1998
|
-
<span class="cline-any cline-no"> </span>
|
|
1999
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2000
|
-
<span class="cline-any cline-yes">449694x</span>
|
|
2001
|
-
<span class="cline-any cline-yes">449694x</span>
|
|
2002
|
-
<span class="cline-any cline-yes">115572x</span>
|
|
2003
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2004
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2005
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2006
|
-
<span class="cline-any cline-yes">130990x</span>
|
|
2007
|
-
<span class="cline-any cline-no"> </span>
|
|
2008
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2009
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2010
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2011
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2012
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2014
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2015
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2017
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2018
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2019
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2020
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2023
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2025
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2026
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2027
|
-
<span class="cline-any cline-yes">1932x</span>
|
|
2028
|
-
<span class="cline-any cline-yes">1932x</span>
|
|
2029
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2030
|
-
<span class="cline-any cline-yes">1932x</span>
|
|
2031
|
-
<span class="cline-any cline-yes">1936x</span>
|
|
2032
|
-
<span class="cline-any cline-yes">1936x</span>
|
|
2033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2034
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2035
|
-
<span class="cline-any cline-no"> </span>
|
|
2036
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2037
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2038
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2040
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2041
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2042
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2043
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2044
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2045
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2046
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2047
|
-
<span class="cline-any cline-no"> </span>
|
|
2048
|
-
<span class="cline-any cline-no"> </span>
|
|
2049
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2050
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2051
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2052
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2053
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2056
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2057
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
2058
|
-
<span class="cline-any cline-yes">1804x</span>
|
|
2059
|
-
<span class="cline-any cline-yes">6x</span>
|
|
2060
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2062
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2063
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2064
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2065
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2066
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2067
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2068
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2070
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2071
|
-
<span class="cline-any cline-yes">123x</span>
|
|
2072
|
-
<span class="cline-any cline-yes">123x</span>
|
|
2073
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2074
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2075
|
-
<span class="cline-any cline-yes">112x</span>
|
|
2076
|
-
<span class="cline-any cline-yes">14x</span>
|
|
2077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2078
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2079
|
-
<span class="cline-any cline-yes">123x</span>
|
|
2080
|
-
<span class="cline-any cline-yes">124x</span>
|
|
2081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2082
|
-
<span class="cline-any cline-yes">123x</span>
|
|
2083
|
-
<span class="cline-any cline-yes">112x</span>
|
|
2084
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2085
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2086
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2087
|
-
<span class="cline-any cline-yes">94x</span>
|
|
2088
|
-
<span class="cline-any cline-yes">94x</span>
|
|
2089
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2090
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2091
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2092
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2093
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2094
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2095
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2096
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2097
|
-
<span class="cline-any cline-yes">123x</span>
|
|
2098
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2099
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2101
|
-
<span class="cline-any cline-yes">22x</span>
|
|
2102
|
-
<span class="cline-any cline-no"> </span>
|
|
2103
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2104
|
-
<span class="cline-any cline-yes">22x</span>
|
|
2105
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2106
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2108
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2110
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2111
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2114
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2115
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2117
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2119
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
2120
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
2121
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2122
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2123
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2124
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2125
|
-
<span class="cline-any cline-yes">890x</span>
|
|
2126
|
-
<span class="cline-any cline-yes">35x</span>
|
|
2127
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2128
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2129
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
2130
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2131
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2132
|
-
<span class="cline-any cline-yes">160x</span>
|
|
2133
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2134
|
-
<span class="cline-any cline-yes">1797x</span>
|
|
2135
|
-
<span class="cline-any cline-yes">1800x</span>
|
|
2136
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2139
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2141
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2142
|
-
<span class="cline-any cline-no"> </span>
|
|
2143
|
-
<span class="cline-any cline-no"> </span>
|
|
2144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2145
|
-
<span class="cline-any cline-no"> </span>
|
|
2146
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2149
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2150
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2151
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2152
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2155
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2158
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2159
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2160
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2161
|
-
<span class="cline-any cline-no"> </span>
|
|
2162
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2163
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2165
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2166
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2167
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2168
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2169
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2170
|
-
<span class="cline-any cline-yes">1241x</span>
|
|
2171
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2172
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2173
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2174
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2175
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2177
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2178
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2179
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2180
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2181
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2182
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2186
|
-
<span class="cline-any cline-yes">48304x</span>
|
|
2187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2193
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2198
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2201
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2204
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2206
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2213
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2215
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2216
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2218
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2221
|
-
<span class="cline-any cline-no"> </span>
|
|
2222
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2223
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2224
|
-
<span class="cline-any cline-no"> </span>
|
|
2225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2226
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2227
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2228
|
-
<span class="cline-any cline-no"> </span>
|
|
2229
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2230
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2231
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2232
|
-
<span class="cline-any cline-yes">14x</span>
|
|
2233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2238
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2249
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2250
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2256
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2262
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2267
|
-
<span class="cline-any cline-yes">17x</span>
|
|
2268
|
-
<span class="cline-any cline-yes">5x</span>
|
|
2269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2275
|
-
<span class="cline-any cline-yes">5x</span>
|
|
2276
|
-
<span class="cline-any cline-no"> </span>
|
|
2277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2278
|
-
<span class="cline-any cline-yes">5x</span>
|
|
2279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2281
|
-
<span class="cline-any cline-no"> </span>
|
|
2282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2283
|
-
<span class="cline-any cline-yes">5x</span>
|
|
2284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2286
|
-
<span class="cline-any cline-no"> </span>
|
|
2287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2288
|
-
<span class="cline-any cline-yes">5x</span>
|
|
2289
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2293
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2302
|
-
<span class="cline-any cline-yes">14x</span>
|
|
2303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2305
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2310
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2312
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2315
|
-
<span class="cline-any cline-no"> </span>
|
|
2316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2317
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2318
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2319
|
-
<span class="cline-any cline-no"> </span>
|
|
2320
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2321
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2322
|
-
<span class="cline-any cline-no"> </span>
|
|
2323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2324
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2332
|
-
<span class="cline-any cline-yes">3x</span>
|
|
2333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2335
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2341
|
-
<span class="cline-any cline-yes">28x</span>
|
|
2342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2366
|
-
<span class="cline-any cline-yes">1245x</span>
|
|
2367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2368
|
-
<span class="cline-any cline-yes">1153x</span>
|
|
2369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2376
|
-
<span class="cline-any cline-yes">29x</span>
|
|
2377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2382
|
-
<span class="cline-any cline-no"> </span>
|
|
2383
|
-
<span class="cline-any cline-no"> </span>
|
|
2384
|
-
<span class="cline-any cline-no"> </span>
|
|
2385
|
-
<span class="cline-any cline-no"> </span>
|
|
2386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2387
|
-
<span class="cline-any cline-no"> </span>
|
|
2388
|
-
<span class="cline-any cline-no"> </span>
|
|
2389
|
-
<span class="cline-any cline-no"> </span>
|
|
2390
|
-
<span class="cline-any cline-no"> </span>
|
|
2391
|
-
<span class="cline-any cline-no"> </span>
|
|
2392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2393
|
-
<span class="cline-any cline-no"> </span>
|
|
2394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2396
|
-
<span class="cline-any cline-no"> </span>
|
|
2397
|
-
<span class="cline-any cline-no"> </span>
|
|
2398
|
-
<span class="cline-any cline-no"> </span>
|
|
2399
|
-
<span class="cline-any cline-no"> </span>
|
|
2400
|
-
<span class="cline-any cline-no"> </span>
|
|
2401
|
-
<span class="cline-any cline-no"> </span>
|
|
2402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2404
|
-
<span class="cline-any cline-no"> </span>
|
|
2405
|
-
<span class="cline-any cline-no"> </span>
|
|
2406
|
-
<span class="cline-any cline-no"> </span>
|
|
2407
|
-
<span class="cline-any cline-no"> </span>
|
|
2408
|
-
<span class="cline-any cline-no"> </span>
|
|
2409
|
-
<span class="cline-any cline-no"> </span>
|
|
2410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2412
|
-
<span class="cline-any cline-no"> </span>
|
|
2413
|
-
<span class="cline-any cline-no"> </span>
|
|
2414
|
-
<span class="cline-any cline-no"> </span>
|
|
2415
|
-
<span class="cline-any cline-no"> </span>
|
|
2416
|
-
<span class="cline-any cline-no"> </span>
|
|
2417
|
-
<span class="cline-any cline-no"> </span>
|
|
2418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2419
|
-
<span class="cline-any cline-no"> </span>
|
|
2420
|
-
<span class="cline-any cline-no"> </span>
|
|
2421
|
-
<span class="cline-any cline-no"> </span>
|
|
2422
|
-
<span class="cline-any cline-no"> </span>
|
|
2423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2424
|
-
<span class="cline-any cline-no"> </span>
|
|
2425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2427
|
-
<span class="cline-any cline-no"> </span>
|
|
2428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2431
|
-
<span class="cline-any cline-yes">1780x</span>
|
|
2432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2437
|
-
<span class="cline-any cline-yes">48595x</span>
|
|
2438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2439
|
-
<span class="cline-any cline-no"> </span>
|
|
2440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2441
|
-
<span class="cline-any cline-yes">48595x</span>
|
|
2442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2448
|
-
<span class="cline-any cline-yes">1550x</span>
|
|
2449
|
-
<span class="cline-any cline-yes">50x</span>
|
|
2450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2451
|
-
<span class="cline-any cline-yes">1500x</span>
|
|
2452
|
-
<span class="cline-any cline-yes">1500x</span>
|
|
2453
|
-
<span class="cline-any cline-yes">325x</span>
|
|
2454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2455
|
-
<span class="cline-any cline-yes">1175x</span>
|
|
2456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2468
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2469
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2470
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2472
|
-
<span class="cline-any cline-yes">204x</span>
|
|
2473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2475
|
-
<span class="cline-any cline-yes">204x</span>
|
|
2476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2477
|
-
<span class="cline-any cline-yes">4632x</span>
|
|
2478
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2479
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2484
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2490
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2491
|
-
<span class="cline-any cline-yes">5x</span>
|
|
2492
|
-
<span class="cline-any cline-yes">25x</span>
|
|
2493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2496
|
-
<span class="cline-any cline-yes">66x</span>
|
|
2497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2502
|
-
<span class="cline-any cline-yes">25x</span>
|
|
2503
|
-
<span class="cline-any cline-yes">37x</span>
|
|
2504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2505
|
-
<span class="cline-any cline-yes">25x</span>
|
|
2506
|
-
<span class="cline-any cline-yes">21x</span>
|
|
2507
|
-
<span class="cline-any cline-yes">21x</span>
|
|
2508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2511
|
-
<span class="cline-any cline-yes">21x</span>
|
|
2512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2514
|
-
<span class="cline-any cline-yes">21x</span>
|
|
2515
|
-
<span class="cline-any cline-yes">50x</span>
|
|
2516
|
-
<span class="cline-any cline-yes">29x</span>
|
|
2517
|
-
<span class="cline-any cline-yes">29x</span>
|
|
2518
|
-
<span class="cline-any cline-yes">29x</span>
|
|
2519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2524
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2526
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2528
|
-
<span class="cline-any cline-no"> </span>
|
|
2529
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2531
|
-
<span class="cline-any cline-no"> </span>
|
|
2532
|
-
<span class="cline-any cline-no"> </span>
|
|
2533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2534
|
-
<span class="cline-any cline-no"> </span>
|
|
2535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2538
|
-
<span class="cline-any cline-no"> </span>
|
|
2539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2541
|
-
<span class="cline-any cline-yes">1920x</span>
|
|
2542
|
-
<span class="cline-any cline-yes">1920x</span>
|
|
2543
|
-
<span class="cline-any cline-yes">73x</span>
|
|
2544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2547
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2548
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2549
|
-
<span class="cline-any cline-yes">71x</span>
|
|
2550
|
-
<span class="cline-any cline-yes">92x</span>
|
|
2551
|
-
<span class="cline-any cline-yes">1x</span>
|
|
2552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2553
|
-
<span class="cline-any cline-yes">91x</span>
|
|
2554
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2556
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2562
|
-
<span class="cline-any cline-yes">3958x</span>
|
|
2563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2568
|
-
<span class="cline-any cline-yes">3958x</span>
|
|
2569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2570
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2571
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2573
|
-
<span class="cline-any cline-yes">3958x</span>
|
|
2574
|
-
<span class="cline-any cline-yes">3742x</span>
|
|
2575
|
-
<span class="cline-any cline-yes">3742x</span>
|
|
2576
|
-
<span class="cline-any cline-no"> </span>
|
|
2577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2578
|
-
<span class="cline-any cline-yes">3742x</span>
|
|
2579
|
-
<span class="cline-any cline-yes">216x</span>
|
|
2580
|
-
<span class="cline-any cline-yes">118x</span>
|
|
2581
|
-
<span class="cline-any cline-yes">118x</span>
|
|
2582
|
-
<span class="cline-any cline-no"> </span>
|
|
2583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2584
|
-
<span class="cline-any cline-yes">118x</span>
|
|
2585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2588
|
-
<span class="cline-any cline-yes">3934x</span>
|
|
2589
|
-
<span class="cline-any cline-yes">15862x</span>
|
|
2590
|
-
<span class="cline-any cline-yes">114x</span>
|
|
2591
|
-
<span class="cline-any cline-yes">118x</span>
|
|
2592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2595
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2597
|
-
<span class="cline-any cline-yes">15748x</span>
|
|
2598
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2599
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2600
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2601
|
-
<span class="cline-any cline-yes">4x</span>
|
|
2602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2604
|
-
<span class="cline-any cline-yes">15658x</span>
|
|
2605
|
-
<span class="cline-any cline-yes">70x</span>
|
|
2606
|
-
<span class="cline-any cline-yes">70x</span>
|
|
2607
|
-
<span class="cline-any cline-yes">70x</span>
|
|
2608
|
-
<span class="cline-any cline-yes">70x</span>
|
|
2609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2610
|
-
<span class="cline-any cline-yes">15588x</span>
|
|
2611
|
-
<span class="cline-any cline-yes">396x</span>
|
|
2612
|
-
<span class="cline-any cline-yes">200x</span>
|
|
2613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2621
|
-
<span class="cline-any cline-yes">2x</span>
|
|
2622
|
-
<span class="cline-any cline-yes">104x</span>
|
|
2623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2628
|
-
<span class="cline-any cline-yes">90x</span>
|
|
2629
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2630
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2633
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2634
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const _ = require('lodash');
|
|
2635
|
-
const cuid = require('cuid');
|
|
2636
|
-
const { SemanticAttributes } = require('@opentelemetry/semantic-conventions');
|
|
2637
|
-
|
|
2638
|
-
// This module is responsible for managing all of the documents (apostrophe "docs")
|
|
2639
|
-
// in the `aposDocs` mongodb collection.
|
|
2640
|
-
//
|
|
2641
|
-
// The `getManager` method should be used to obtain a reference to the module
|
|
2642
|
-
// that manages a particular doc type, so that you can benefit from behavior
|
|
2643
|
-
// specific to that module. One method of this module that you may sometimes use directly
|
|
2644
|
-
// is `apos.doc.find()`, which returns a query[query](server-@apostrophecms/query.html) for
|
|
2645
|
-
// fetching documents of all types. This is useful when implementing something
|
|
2646
|
-
// like the [@apostrophecms/search](../@apostrophecms/search/index.html) module.
|
|
2647
|
-
//
|
|
2648
|
-
// ## Options
|
|
2649
|
-
//
|
|
2650
|
-
// ** `advisoryLockTimeout`: Apostrophe locks documents while they are
|
|
2651
|
-
// being edited so that another user, or another tab for the same user,
|
|
2652
|
-
// does not inadvertently interfere. These locks are refreshed frequently
|
|
2653
|
-
// by the browser while they are held. By default, if the browser
|
|
2654
|
-
// is not heard from for 15 seconds, the lock expires. Note that
|
|
2655
|
-
// the browser refreshes the lock every 5 seconds. This timeout should
|
|
2656
|
-
// be quite short as there is no longer any reliable way to force a browser
|
|
2657
|
-
// to unlock the document when leaving the page.
|
|
2658
|
-
|
|
2659
|
-
module.exports = {
|
|
2660
|
-
options: {
|
|
2661
|
-
alias: 'doc',
|
|
2662
|
-
advisoryLockTimeout: 15
|
|
2663
|
-
},
|
|
2664
|
-
async init(self) {
|
|
2665
|
-
self.managers = {};
|
|
2666
|
-
self.contextOperations = [];
|
|
2667
|
-
self.enableBrowserData();
|
|
2668
|
-
await self.enableCollection();
|
|
2669
|
-
self.apos.isNew = await self.detectNew();
|
|
2670
|
-
await self.createIndexes();
|
|
2671
|
-
self.addLegacyMigrations();
|
|
2672
|
-
self.addCacheFieldMigration();
|
|
2673
|
-
},
|
|
2674
|
-
restApiRoutes(self) {
|
|
2675
|
-
return {
|
|
2676
|
-
// GET /api/v1/@apostrophecms/doc/_id supports only the universal query
|
|
2677
|
-
// features, but works for any document type. Simplifies browser-side
|
|
2678
|
-
// logic for redirects to foreign documents. The frontend only has to
|
|
2679
|
-
// know the doc _id.
|
|
2680
|
-
//
|
|
2681
|
-
// Since this API is solely for editing purposes you will receive
|
|
2682
|
-
// a 404 if you request a document you cannot edit.
|
|
2683
|
-
<span class="fstat-no" title="function not covered" > as</span>ync getOne(req, _id) {
|
|
2684
|
-
<span class="cstat-no" title="statement not covered" > _id = self.apos.i18n.inferIdLocaleAndMode(req, _id);</span>
|
|
2685
|
-
const doc = <span class="cstat-no" title="statement not covered" >await self.find(req, { _id }).permission('edit').toObject();</span>
|
|
2686
|
-
<span class="cstat-no" title="statement not covered" > if (!doc) {</span>
|
|
2687
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('notfound');</span>
|
|
2688
|
-
}
|
|
2689
|
-
<span class="cstat-no" title="statement not covered" > return doc;</span>
|
|
2690
|
-
}
|
|
2691
|
-
};
|
|
2692
|
-
},
|
|
2693
|
-
apiRoutes(self) {
|
|
2694
|
-
return {
|
|
2695
|
-
post: {
|
|
2696
|
-
<span class="fstat-no" title="function not covered" > as</span>ync slugTaken(req) {
|
|
2697
|
-
<span class="cstat-no" title="statement not covered" > if (!req.user) {</span>
|
|
2698
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('notfound');</span>
|
|
2699
|
-
}
|
|
2700
|
-
const slug = <span class="cstat-no" title="statement not covered" >self.apos.launder.string(req.body.slug);</span>
|
|
2701
|
-
const _id = <span class="cstat-no" title="statement not covered" >self.apos.launder.id(req.body._id);</span>
|
|
2702
|
-
const criteria = <span class="cstat-no" title="statement not covered" >{ slug: slug };</span>
|
|
2703
|
-
<span class="cstat-no" title="statement not covered" > if (_id) {</span>
|
|
2704
|
-
<span class="cstat-no" title="statement not covered" > criteria._id = { $ne: _id };</span>
|
|
2705
|
-
}
|
|
2706
|
-
const doc = <span class="cstat-no" title="statement not covered" >await self.find(req, criteria).permission(false).archived(null).project({ slug: 1 }).toObject();</span>
|
|
2707
|
-
<span class="cstat-no" title="statement not covered" > if (doc) {</span>
|
|
2708
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('conflict');</span>
|
|
2709
|
-
} else {
|
|
2710
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2711
|
-
available: true
|
|
2712
|
-
};
|
|
2713
|
-
}
|
|
2714
|
-
},
|
|
2715
|
-
// Fast bulk query for doc `ids` that the user is permitted to edit.
|
|
2716
|
-
//
|
|
2717
|
-
// IDs should be sent as an array in the `ids` property of the POST
|
|
2718
|
-
// request.
|
|
2719
|
-
//
|
|
2720
|
-
// The response object contains an `editable` array made up of
|
|
2721
|
-
// the ids of those documents in the original set that the user
|
|
2722
|
-
// is actually permitted to edit. Those the user cannot edit
|
|
2723
|
-
// are not included. The original order is preserved.
|
|
2724
|
-
//
|
|
2725
|
-
// This route is a POST route because large numbers of ids
|
|
2726
|
-
// might not be accepted as a query string.
|
|
2727
|
-
async editable(req) {
|
|
2728
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!req.user) {
|
|
2729
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('notfound');</span>
|
|
2730
|
-
}
|
|
2731
|
-
const ids = self.apos.launder.ids(req.body.ids);
|
|
2732
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!ids.length) {
|
|
2733
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2734
|
-
editable: []
|
|
2735
|
-
};
|
|
2736
|
-
}
|
|
2737
|
-
const found = await self.apos.doc.find(req, {
|
|
2738
|
-
_id: {
|
|
2739
|
-
$in: ids
|
|
2740
|
-
}
|
|
2741
|
-
}).project({ _id: 1 }).permission('edit').toArray();
|
|
2742
|
-
return {
|
|
2743
|
-
editable: self.apos.util.orderById(ids, found).map(doc => doc._id)
|
|
2744
|
-
};
|
|
2745
|
-
}
|
|
2746
|
-
}
|
|
2747
|
-
};
|
|
2748
|
-
},
|
|
2749
|
-
handlers(self) {
|
|
2750
|
-
return {
|
|
2751
|
-
'@apostrophecms/doc-type:beforeInsert': {
|
|
2752
|
-
setLocaleAndMode(req, doc, options) {
|
|
2753
|
-
const manager = self.getManager(doc.type);
|
|
2754
|
-
if (manager.isLocalized()) {
|
|
2755
|
-
doc.aposLocale = doc.aposLocale || `${req.locale}:${req.mode}`;
|
|
2756
|
-
doc.aposMode = req.mode;
|
|
2757
|
-
}
|
|
2758
|
-
},
|
|
2759
|
-
testPermissionsAndAddIdAndCreatedAt(req, doc, options) {
|
|
2760
|
-
self.testInsertPermissions(req, doc, options);
|
|
2761
|
-
const manager = self.getManager(doc.type);
|
|
2762
|
-
if (doc._id && manager.isLocalized()) {
|
|
2763
|
-
if (!doc.aposDocId) {
|
|
2764
|
-
const components = doc._id.split(':');
|
|
2765
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (components.length < 3) {
|
|
2766
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('If you supply your own _id it must end with :locale:mode, like :en:published');</span>
|
|
2767
|
-
}
|
|
2768
|
-
doc.aposDocId = components[0];
|
|
2769
|
-
doc.aposLocale = `${components[1]}:${components[2]}`;
|
|
2770
|
-
}
|
|
2771
|
-
}
|
|
2772
|
-
if (!doc.aposDocId) {
|
|
2773
|
-
doc.aposDocId = self.apos.util.generateId();
|
|
2774
|
-
}
|
|
2775
|
-
if (!doc._id) {
|
|
2776
|
-
if (!doc.aposLocale) {
|
|
2777
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (manager.isLocalized()) {
|
|
2778
|
-
<span class="cstat-no" title="statement not covered" > doc.aposLocale = `${req.locale}:${req.mode}`;</span>
|
|
2779
|
-
}
|
|
2780
|
-
}
|
|
2781
|
-
if (doc.aposLocale) {
|
|
2782
|
-
doc._id = `${doc.aposDocId}:${doc.aposLocale}`;
|
|
2783
|
-
} else {
|
|
2784
|
-
doc._id = doc.aposDocId;
|
|
2785
|
-
}
|
|
2786
|
-
}
|
|
2787
|
-
doc.metaType = 'doc';
|
|
2788
|
-
doc.createdAt = new Date();
|
|
2789
|
-
if (doc.archived == null) {
|
|
2790
|
-
// Not always in the schema, so ensure it's true or false
|
|
2791
|
-
// to simplify queries and indexing
|
|
2792
|
-
doc.archived = false;
|
|
2793
|
-
}
|
|
2794
|
-
},
|
|
2795
|
-
// Makes using our model APIs directly less tedious
|
|
2796
|
-
ensureAreaAndWidgetIds(req, doc, options) {
|
|
2797
|
-
self.apos.area.walk(doc, area => {
|
|
2798
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!area._id) {
|
|
2799
|
-
<span class="cstat-no" title="statement not covered" > area._id = self.apos.util.generateId();</span>
|
|
2800
|
-
}
|
|
2801
|
-
for (const item of (area.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>) {
|
|
2802
|
-
if (!item._id) {
|
|
2803
|
-
item._id = self.apos.util.generateId();
|
|
2804
|
-
}
|
|
2805
|
-
}
|
|
2806
|
-
});
|
|
2807
|
-
}
|
|
2808
|
-
},
|
|
2809
|
-
'@apostrophecms/doc-type:beforeDelete': {
|
|
2810
|
-
testPermissions(req, doc, options) {
|
|
2811
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!(options.permissions === false)) {
|
|
2812
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!self.apos.permission.can(req, 'delete', doc)) {
|
|
2813
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('forbidden');</span>
|
|
2814
|
-
}
|
|
2815
|
-
}
|
|
2816
|
-
}
|
|
2817
|
-
},
|
|
2818
|
-
'@apostrophecms/doc-type:beforePublish': {
|
|
2819
|
-
testPermissions(req, info) {
|
|
2820
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (info.options.permissions !== false) {
|
|
2821
|
-
if (!self.apos.permission.can(req, info.options.autopublishing ? 'edit' : 'publish', info.draft)) {
|
|
2822
|
-
throw self.apos.error('forbidden');
|
|
2823
|
-
}
|
|
2824
|
-
}
|
|
2825
|
-
}
|
|
2826
|
-
},
|
|
2827
|
-
'@apostrophecms/doc-type:beforeSave': {
|
|
2828
|
-
ensureSlugSortifyAndUpdatedAt(req, doc, options) {
|
|
2829
|
-
const manager = self.getManager(doc.type);
|
|
2830
|
-
manager.ensureSlug(doc);
|
|
2831
|
-
_.each(manager.schema, function (field) {
|
|
2832
|
-
if (field.sortify) {
|
|
2833
|
-
doc[field.name + 'Sortified'] = self.apos.util.sortify(doc[field.name] ? doc[field.name] : '');
|
|
2834
|
-
}
|
|
2835
|
-
});
|
|
2836
|
-
if (options.setUpdatedAtAndBy !== false) {
|
|
2837
|
-
const date = new Date();
|
|
2838
|
-
doc.updatedAt = date;
|
|
2839
|
-
doc.cacheInvalidatedAt = date;
|
|
2840
|
-
doc.updatedBy = req.user ? {
|
|
2841
|
-
_id: req.user._id,
|
|
2842
|
-
title: req.user.title || <span class="branch-1 cbranch-no" title="branch not covered" >null,</span>
|
|
2843
|
-
username: req.user.username
|
|
2844
|
-
} : <span class="branch-1 cbranch-no" title="branch not covered" >{</span>
|
|
2845
|
-
username: 'ApostropheCMS'
|
|
2846
|
-
};
|
|
2847
|
-
}
|
|
2848
|
-
},
|
|
2849
|
-
deduplicateWidgetIds(req, doc, options) {
|
|
2850
|
-
this.deduplicateWidgetIds(doc);
|
|
2851
|
-
}
|
|
2852
|
-
},
|
|
2853
|
-
'@apostrophecms/doc-type:afterInsert': {
|
|
2854
|
-
async ensureDraftExists(req, doc, options) {
|
|
2855
|
-
const manager = self.getManager(doc.type);
|
|
2856
|
-
if (!manager.isLocalized()) {
|
|
2857
|
-
return;
|
|
2858
|
-
}
|
|
2859
|
-
if (self.isDraft(doc)) {
|
|
2860
|
-
return;
|
|
2861
|
-
}
|
|
2862
|
-
const draftLocale = doc.aposLocale.replace(':published', ':draft');
|
|
2863
|
-
const draftId = `${doc.aposDocId}:${draftLocale}`;
|
|
2864
|
-
if (await self.db.findOne({
|
|
2865
|
-
_id: draftId
|
|
2866
|
-
}, {
|
|
2867
|
-
projection: {
|
|
2868
|
-
_id: 1
|
|
2869
|
-
}
|
|
2870
|
-
})) {
|
|
2871
|
-
return;
|
|
2872
|
-
}
|
|
2873
|
-
const draft = {
|
|
2874
|
-
...doc,
|
|
2875
|
-
_id: draftId,
|
|
2876
|
-
aposLocale: draftLocale,
|
|
2877
|
-
lastPublishedAt: doc.createdAt || <span class="branch-1 cbranch-no" title="branch not covered" >new Date()</span>
|
|
2878
|
-
};
|
|
2879
|
-
return manager.insertDraftOf(req, doc, draft, options);
|
|
2880
|
-
}
|
|
2881
|
-
},
|
|
2882
|
-
fixUniqueError: {
|
|
2883
|
-
async fixUniqueSlug(req, doc) {
|
|
2884
|
-
doc.slug += Math.floor(Math.random() * 10).toString();
|
|
2885
|
-
}
|
|
2886
|
-
},
|
|
2887
|
-
'@apostrophecms/doc-type:beforeUpdate': {
|
|
2888
|
-
async checkPermissionsBeforeUpdate(req, doc, options) {
|
|
2889
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (options.permissions !== false) {
|
|
2890
|
-
if (!self.apos.permission.can(req, 'edit', doc)) {
|
|
2891
|
-
throw new Error('forbidden');
|
|
2892
|
-
}
|
|
2893
|
-
}
|
|
2894
|
-
}
|
|
2895
|
-
},
|
|
2896
|
-
'@apostrophecms/version:unversionedFields': {
|
|
2897
|
-
<span class="fstat-no" title="function not covered" > ba</span>seUnversionedFields(req, doc, fields) {
|
|
2898
|
-
<span class="cstat-no" title="statement not covered" > fields.push('visibility');</span>
|
|
2899
|
-
}
|
|
2900
|
-
},
|
|
2901
|
-
'@apostrophecms/doc-type:afterDelete': {
|
|
2902
|
-
// Deleting a draft implies deleting the document completely, since
|
|
2903
|
-
// a draft must always exist. Deleting a published doc implies deleting
|
|
2904
|
-
// the "previous" copy, since it only makes sense as a tool to revert
|
|
2905
|
-
// the published doc's content. Note that deleting a draft recursively
|
|
2906
|
-
// deletes both the published and previous docs.
|
|
2907
|
-
async deleteOtherModes(req, doc, options) {
|
|
2908
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (doc.aposLocale && doc.aposLocale.endsWith(':draft')) {
|
|
2909
|
-
<span class="cstat-no" title="statement not covered" > await cleanup('published');</span>
|
|
2910
|
-
<span class="cstat-no" title="statement not covered" > await self.emit('afterAllModesDeleted', req, doc, options);</span>
|
|
2911
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2912
|
-
}
|
|
2913
|
-
if (doc.aposLocale && doc.aposLocale.endsWith(':published')) {
|
|
2914
|
-
return cleanup('previous');
|
|
2915
|
-
}
|
|
2916
|
-
async function cleanup(mode) {
|
|
2917
|
-
const peer = await self.apos.doc.db.findOne({
|
|
2918
|
-
_id: doc._id.replace(/:[\w]+$/, `:${mode}`)
|
|
2919
|
-
});
|
|
2920
|
-
if (peer) {
|
|
2921
|
-
const manager = peer.slug.startsWith('/') ? self.apos.page : <span class="branch-1 cbranch-no" title="branch not covered" >self.getManager(peer.type);</span>
|
|
2922
|
-
await manager.delete(req, peer, options);
|
|
2923
|
-
}
|
|
2924
|
-
}
|
|
2925
|
-
}
|
|
2926
|
-
}
|
|
2927
|
-
};
|
|
2928
|
-
},
|
|
2929
|
-
methods(self) {
|
|
2930
|
-
return {
|
|
2931
|
-
async enableCollection() {
|
|
2932
|
-
self.db = await self.apos.db.collection('aposDocs');
|
|
2933
|
-
},
|
|
2934
|
-
// Detect whether the database is brand new (zero documents).
|
|
2935
|
-
// This can't be done later because after this point init()
|
|
2936
|
-
// functions are permitted to insert documents
|
|
2937
|
-
async detectNew() {
|
|
2938
|
-
const existing = await self.db.countDocuments();
|
|
2939
|
-
return !existing;
|
|
2940
|
-
},
|
|
2941
|
-
async createSlugIndex() {
|
|
2942
|
-
const params = self.getSlugIndexParams();
|
|
2943
|
-
return self.db.createIndex(params, { unique: true });
|
|
2944
|
-
},
|
|
2945
|
-
getSlugIndexParams() {
|
|
2946
|
-
return {
|
|
2947
|
-
slug: 1,
|
|
2948
|
-
aposLocale: 1
|
|
2949
|
-
};
|
|
2950
|
-
},
|
|
2951
|
-
getPathLevelIndexParams() {
|
|
2952
|
-
return {
|
|
2953
|
-
path: 1,
|
|
2954
|
-
level: 1,
|
|
2955
|
-
aposLocale: 1
|
|
2956
|
-
};
|
|
2957
|
-
},
|
|
2958
|
-
async createIndexes() {
|
|
2959
|
-
await self.db.createIndex({
|
|
2960
|
-
type: 1,
|
|
2961
|
-
aposLocale: 1
|
|
2962
|
-
}, {});
|
|
2963
|
-
await self.createSlugIndex();
|
|
2964
|
-
await self.db.createIndex({
|
|
2965
|
-
titleSortified: 1,
|
|
2966
|
-
aposLocale: 1
|
|
2967
|
-
}, {});
|
|
2968
|
-
await self.db.createIndex({
|
|
2969
|
-
updatedAt: -1,
|
|
2970
|
-
aposLocale: 1
|
|
2971
|
-
}, {});
|
|
2972
|
-
await self.db.createIndex({
|
|
2973
|
-
relatedReverseIds: 1,
|
|
2974
|
-
aposLocale: 1
|
|
2975
|
-
}, {});
|
|
2976
|
-
await self.db.createIndex({ 'advisoryLock._id': 1 }, {});
|
|
2977
|
-
await self.createTextIndex();
|
|
2978
|
-
await self.db.createIndex({ parkedId: 1 }, {});
|
|
2979
|
-
await self.db.createIndex({
|
|
2980
|
-
submitted: 1,
|
|
2981
|
-
aposLocale: 1
|
|
2982
|
-
});
|
|
2983
|
-
await self.createPathLevelIndex();
|
|
2984
|
-
},
|
|
2985
|
-
async createTextIndex() {
|
|
2986
|
-
try {
|
|
2987
|
-
return await attempt();
|
|
2988
|
-
} catch (e) {
|
|
2989
|
-
// We are experiencing what may be a mongodb bug in which these indexes
|
|
2990
|
-
// have different weights than expected and the createIndex call fails.
|
|
2991
|
-
// If this happens drop and recreate the text index
|
|
2992
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (e.toString().match(/different options/)) {
|
|
2993
|
-
self.apos.util.warn('Text index has unexpected weights or other misconfiguration, reindexing');
|
|
2994
|
-
await self.db.dropIndex('highSearchText_text_lowSearchText_text_title_text_searchBoost_text');
|
|
2995
|
-
return await attempt();
|
|
2996
|
-
} else {
|
|
2997
|
-
<span class="cstat-no" title="statement not covered" > throw e;</span>
|
|
2998
|
-
}
|
|
2999
|
-
}
|
|
3000
|
-
function attempt() {
|
|
3001
|
-
return self.db.createIndex({
|
|
3002
|
-
highSearchText: 'text',
|
|
3003
|
-
lowSearchText: 'text',
|
|
3004
|
-
title: 'text',
|
|
3005
|
-
searchBoost: 'text'
|
|
3006
|
-
}, {
|
|
3007
|
-
default_language: self.options.searchLanguage || 'none',
|
|
3008
|
-
weights: {
|
|
3009
|
-
title: 100,
|
|
3010
|
-
searchBoost: 150,
|
|
3011
|
-
highSearchText: 10,
|
|
3012
|
-
lowSearchText: 2
|
|
3013
|
-
}
|
|
3014
|
-
});
|
|
3015
|
-
}
|
|
3016
|
-
},
|
|
3017
|
-
async createPathLevelIndex() {
|
|
3018
|
-
const params = self.getPathLevelIndexParams();
|
|
3019
|
-
return self.db.createIndex(params, {});
|
|
3020
|
-
},
|
|
3021
|
-
|
|
3022
|
-
// Returns a query based on the permissions
|
|
3023
|
-
// associated with the given request. You can then
|
|
3024
|
-
// invoke chainable query builders like `.project()`,
|
|
3025
|
-
// `limit()`, etc. to alter the query before ending
|
|
3026
|
-
// the chain with an awaitable method like `toArray()`
|
|
3027
|
-
// to obtain documents.
|
|
3028
|
-
//
|
|
3029
|
-
// `req` determines what documents the user is allowed
|
|
3030
|
-
// to see. `criteria` is a MongoDB criteria object,
|
|
3031
|
-
// see the MongoDB documentation for basics on this.
|
|
3032
|
-
// If an `options` object is present, query builder
|
|
3033
|
-
// methods with the same name as each property are
|
|
3034
|
-
// invoked, with the value of that property. This is
|
|
3035
|
-
// an alternative to chaining methods.
|
|
3036
|
-
//
|
|
3037
|
-
// This method returns a query, not docs! You
|
|
3038
|
-
// need to chain it with toArray() or other
|
|
3039
|
-
// query methods and await the result:
|
|
3040
|
-
//
|
|
3041
|
-
// await apos.doc.find(req, { type: 'foobar' }).toArray()
|
|
3042
|
-
|
|
3043
|
-
find(req, criteria = {}, options = {}) {
|
|
3044
|
-
return self.apos.modules['@apostrophecms/any-doc-type'].find(req, criteria, options);
|
|
3045
|
-
},
|
|
3046
|
-
|
|
3047
|
-
// **Most often you will insert or update docs via the
|
|
3048
|
-
// insert and update methods of the appropriate doc manager.**
|
|
3049
|
-
// This method is for implementation use in those objects,
|
|
3050
|
-
// and for times when you wish to explicitly bypass type-specific
|
|
3051
|
-
// lifecycle events.
|
|
3052
|
-
//
|
|
3053
|
-
// Insert the given document. If the slug is not
|
|
3054
|
-
// unique it is made unique. `beforeInsert`, `beforeSave`, `afterInsert`
|
|
3055
|
-
// and `afterSave` events are emitted via the appropriate doc type manager,
|
|
3056
|
-
// then awaited. They receive `(req, doc, options)`.
|
|
3057
|
-
//
|
|
3058
|
-
// Returns the inserted document.
|
|
3059
|
-
//
|
|
3060
|
-
// If the slug property is not set, the title
|
|
3061
|
-
// property is converted to a slug. If neither
|
|
3062
|
-
// property is set, an error is thrown.
|
|
3063
|
-
//
|
|
3064
|
-
// The `edit-type-name` permission is checked based on
|
|
3065
|
-
// doc.type.
|
|
3066
|
-
//
|
|
3067
|
-
// If a unique key error occurs, the `@apostrophecms/doc:fixUniqueError`
|
|
3068
|
-
// event is emitted and the doc is passed to all handlers.
|
|
3069
|
-
// Modify the document to fix any properties that may need to be
|
|
3070
|
-
// more unique due to a unique index you have added. It is
|
|
3071
|
-
// not possible to know which property was responsible. This method
|
|
3072
|
-
// takes care of the slug property directly.
|
|
3073
|
-
//
|
|
3074
|
-
// The `options` object may be omitted completely.
|
|
3075
|
-
//
|
|
3076
|
-
// If `options.permissions` is set explicitly to
|
|
3077
|
-
// `false`, permissions checks are bypassed.
|
|
3078
|
-
async insert(req, doc, options) {
|
|
3079
|
-
const telemetry = self.apos.telemetry;
|
|
3080
|
-
return telemetry.startActiveSpan(`model:${doc.type}:insert`, async (span) => {
|
|
3081
|
-
span.setAttribute(SemanticAttributes.CODE_FUNCTION, 'insert');
|
|
3082
|
-
span.setAttribute(SemanticAttributes.CODE_NAMESPACE, self.__meta.name);
|
|
3083
|
-
span.setAttribute(telemetry.Attributes.TARGET_NAMESPACE, doc.type);
|
|
3084
|
-
span.setAttribute(telemetry.Attributes.TARGET_FUNCTION, 'insert');
|
|
3085
|
-
|
|
3086
|
-
try {
|
|
3087
|
-
options = options || {};
|
|
3088
|
-
const m = self.getManager(doc.type);
|
|
3089
|
-
await m.emit('beforeInsert', req, doc, options);
|
|
3090
|
-
await m.emit('beforeSave', req, doc, options);
|
|
3091
|
-
|
|
3092
|
-
await telemetry.startActiveSpan(`db:${doc.type}:insert`, async (spanInsert) => {
|
|
3093
|
-
spanInsert.setAttribute(SemanticAttributes.CODE_FUNCTION, 'insertBody');
|
|
3094
|
-
spanInsert.setAttribute(SemanticAttributes.CODE_NAMESPACE, self.__meta.name);
|
|
3095
|
-
spanInsert.setAttribute(telemetry.Attributes.TARGET_NAMESPACE, doc.type);
|
|
3096
|
-
spanInsert.setAttribute(telemetry.Attributes.TARGET_FUNCTION, 'insert');
|
|
3097
|
-
try {
|
|
3098
|
-
const result = await self.insertBody(req, doc, options);
|
|
3099
|
-
spanInsert.setStatus({ code: telemetry.api.SpanStatusCode.OK });
|
|
3100
|
-
return result;
|
|
3101
|
-
} catch (e) {
|
|
3102
|
-
<span class="cstat-no" title="statement not covered" > telemetry.handleError(spanInsert, e);</span>
|
|
3103
|
-
<span class="cstat-no" title="statement not covered" > throw e;</span>
|
|
3104
|
-
} finally {
|
|
3105
|
-
spanInsert.end();
|
|
3106
|
-
}
|
|
3107
|
-
}, span, {});
|
|
3108
|
-
|
|
3109
|
-
await m.emit('afterInsert', req, doc, options);
|
|
3110
|
-
await m.emit('afterSave', req, doc, options);
|
|
3111
|
-
// TODO: Remove `afterLoad` in next major version. Deprecated.
|
|
3112
|
-
await m.emit('afterLoad', req, [ doc ]);
|
|
3113
|
-
span.setStatus({ code: telemetry.api.SpanStatusCode.OK });
|
|
3114
|
-
return doc;
|
|
3115
|
-
} catch (err) {
|
|
3116
|
-
telemetry.handleError(span, err);
|
|
3117
|
-
throw err;
|
|
3118
|
-
} finally {
|
|
3119
|
-
span.end();
|
|
3120
|
-
}
|
|
3121
|
-
});
|
|
3122
|
-
},
|
|
3123
|
-
// Updates the given document. If the slug is not
|
|
3124
|
-
// unique it is made unique. `beforeUpdate`, `beforeSave`,
|
|
3125
|
-
// `afterUpdate` and `afterSave` events are emitted
|
|
3126
|
-
// via the appropriate doc type manager.
|
|
3127
|
-
//
|
|
3128
|
-
// The second argument must be the document itself.
|
|
3129
|
-
// `$set`, `$inc`, etc. are NOT available via
|
|
3130
|
-
// this interface. This simplifies the implementation
|
|
3131
|
-
// of permissions and workflow. If you need to
|
|
3132
|
-
// update an object, find it first and then update it.
|
|
3133
|
-
//
|
|
3134
|
-
// Returns the updated doc.
|
|
3135
|
-
//
|
|
3136
|
-
// If a unique key error occurs, the `@apostrophecms/doc:fixUniqueError`
|
|
3137
|
-
// event is emitted and the doc is passed to all handlers.
|
|
3138
|
-
// Modify the document to fix any properties that may need to be
|
|
3139
|
-
// more unique due to a unique index you have added. It is
|
|
3140
|
-
// not possible to know which property was responsible. This method
|
|
3141
|
-
// takes care of the slug property directly.
|
|
3142
|
-
//
|
|
3143
|
-
// The `options` object may be omitted completely.
|
|
3144
|
-
//
|
|
3145
|
-
// If `options.permissions` is set explicitly to
|
|
3146
|
-
// `false`, permissions checks are bypassed.
|
|
3147
|
-
async update(req, doc, options) {
|
|
3148
|
-
const telemetry = self.apos.telemetry;
|
|
3149
|
-
return telemetry.startActiveSpan(`model:${doc.type}:update`, async (span) => {
|
|
3150
|
-
span.setAttribute(SemanticAttributes.CODE_FUNCTION, 'update');
|
|
3151
|
-
span.setAttribute(SemanticAttributes.CODE_NAMESPACE, self.__meta.name);
|
|
3152
|
-
span.setAttribute(telemetry.Attributes.TARGET_NAMESPACE, doc.type);
|
|
3153
|
-
span.setAttribute(telemetry.Attributes.TARGET_FUNCTION, 'update');
|
|
3154
|
-
|
|
3155
|
-
try {
|
|
3156
|
-
options = options || {};
|
|
3157
|
-
const m = self.getManager(doc.type);
|
|
3158
|
-
await m.emit('beforeUpdate', req, doc, options);
|
|
3159
|
-
await m.emit('beforeSave', req, doc, options);
|
|
3160
|
-
|
|
3161
|
-
await telemetry.startActiveSpan(`db:${doc.type}:update`, async (spanUpdate) => {
|
|
3162
|
-
spanUpdate.setAttribute(SemanticAttributes.CODE_FUNCTION, 'updateBody');
|
|
3163
|
-
spanUpdate.setAttribute(SemanticAttributes.CODE_NAMESPACE, self.__meta.name);
|
|
3164
|
-
spanUpdate.setAttribute(telemetry.Attributes.TARGET_NAMESPACE, doc.type);
|
|
3165
|
-
spanUpdate.setAttribute(telemetry.Attributes.TARGET_FUNCTION, 'update');
|
|
3166
|
-
try {
|
|
3167
|
-
const result = await self.updateBody(req, doc, options);
|
|
3168
|
-
spanUpdate.setStatus({ code: telemetry.api.SpanStatusCode.OK });
|
|
3169
|
-
return result;
|
|
3170
|
-
} catch (e) {
|
|
3171
|
-
<span class="cstat-no" title="statement not covered" > telemetry.handleError(spanUpdate, e);</span>
|
|
3172
|
-
<span class="cstat-no" title="statement not covered" > throw e;</span>
|
|
3173
|
-
} finally {
|
|
3174
|
-
spanUpdate.end();
|
|
3175
|
-
}
|
|
3176
|
-
}, span, {});
|
|
3177
|
-
|
|
3178
|
-
await m.emit('afterUpdate', req, doc, options);
|
|
3179
|
-
await m.emit('afterSave', req, doc, options);
|
|
3180
|
-
// TODO: Remove `afterLoad` in next major version. Deprecated.
|
|
3181
|
-
await m.emit('afterLoad', req, [ doc ]);
|
|
3182
|
-
span.setStatus({ code: telemetry.api.SpanStatusCode.OK });
|
|
3183
|
-
return doc;
|
|
3184
|
-
} catch (err) {
|
|
3185
|
-
telemetry.handleError(span, err);
|
|
3186
|
-
throw err;
|
|
3187
|
-
} finally {
|
|
3188
|
-
span.end();
|
|
3189
|
-
}
|
|
3190
|
-
});
|
|
3191
|
-
},
|
|
3192
|
-
|
|
3193
|
-
// True delete. To place a document in the archive,
|
|
3194
|
-
// update the archived property (for a piece) or move it
|
|
3195
|
-
// to be a child of the archive (for a page). True delete
|
|
3196
|
-
// cannot be undone.
|
|
3197
|
-
//
|
|
3198
|
-
// This operation ignores the locale and mode of `req`
|
|
3199
|
-
// in favor of the actual document's locale and mode.
|
|
3200
|
-
async delete(req, doc, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
3201
|
-
options = options || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
3202
|
-
const m = self.getManager(doc.type);
|
|
3203
|
-
await m.emit('beforeDelete', req, doc, options);
|
|
3204
|
-
await self.deleteBody(req, doc, options);
|
|
3205
|
-
await m.emit('afterDelete', req, doc, options);
|
|
3206
|
-
},
|
|
3207
|
-
|
|
3208
|
-
// Publish the given draft. If `options.permissions` is explicitly
|
|
3209
|
-
// set to `false`, permissions checks are bypassed.
|
|
3210
|
-
<span class="fstat-no" title="function not covered" > as</span>ync publish(req, draft, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
3211
|
-
const m = <span class="cstat-no" title="statement not covered" >self.getManager(draft.type);</span>
|
|
3212
|
-
<span class="cstat-no" title="statement not covered" > return m.publish(req, draft, options);</span>
|
|
3213
|
-
},
|
|
3214
|
-
|
|
3215
|
-
// Unpublish a given document.
|
|
3216
|
-
<span class="fstat-no" title="function not covered" > as</span>ync unpublish(req, doc) {
|
|
3217
|
-
const m = <span class="cstat-no" title="statement not covered" >self.getManager(doc.type);</span>
|
|
3218
|
-
<span class="cstat-no" title="statement not covered" > return m.unpublish(req, doc);</span>
|
|
3219
|
-
},
|
|
3220
|
-
|
|
3221
|
-
// Revert to the previously published content, or if
|
|
3222
|
-
// already equal to the previously published content, to the
|
|
3223
|
-
// publication before that. Returns `false` if the draft
|
|
3224
|
-
// cannot be reverted any further.
|
|
3225
|
-
<span class="fstat-no" title="function not covered" > as</span>ync revert(req, draft) {
|
|
3226
|
-
const m = <span class="cstat-no" title="statement not covered" >self.getManager(draft.type);</span>
|
|
3227
|
-
<span class="cstat-no" title="statement not covered" > return m.revert(req, draft);</span>
|
|
3228
|
-
},
|
|
3229
|
-
|
|
3230
|
-
// Recursively visit every property of a doc,
|
|
3231
|
-
// invoking an iterator function for each one. Optionally
|
|
3232
|
-
// deletes properties.
|
|
3233
|
-
//
|
|
3234
|
-
// The `_originalWidgets` property and its subproperties
|
|
3235
|
-
// are not walked because they are temporary information
|
|
3236
|
-
// present only to preserve widgets during save operations
|
|
3237
|
-
// performed by users without permissions for those widgets.
|
|
3238
|
-
//
|
|
3239
|
-
// The second argument must be a function that takes
|
|
3240
|
-
// an object, a key, a value, a "dot path" and an
|
|
3241
|
-
// array containing the ancestors of this property
|
|
3242
|
-
// (beginning with the original `doc` and including
|
|
3243
|
-
// "object") and explicitly returns `false` if that property
|
|
3244
|
-
// should be discarded. If any other value is returned the
|
|
3245
|
-
// property remains.
|
|
3246
|
-
//
|
|
3247
|
-
// Remember, keys can be numbers; toString() is
|
|
3248
|
-
// your friend.
|
|
3249
|
-
//
|
|
3250
|
-
// If the original object looks like:
|
|
3251
|
-
//
|
|
3252
|
-
// { a: { b: 5 } }
|
|
3253
|
-
//
|
|
3254
|
-
// Then when the iterator is invoked for b, the
|
|
3255
|
-
// object will be { b: 5 }, the key
|
|
3256
|
-
// will be `b`, the value will be `5`, the dotPath
|
|
3257
|
-
// will be the string `a.b`, and ancestors will be
|
|
3258
|
-
// [ { a: { b: 5 } } ].
|
|
3259
|
-
//
|
|
3260
|
-
// You do not need to pass the `_dotPath` and `_ancestors` arguments.
|
|
3261
|
-
// They are used for recursive invocation.
|
|
3262
|
-
walk(doc, iterator, _dotPath, _ancestors) {
|
|
3263
|
-
// We do not use lodash here because of
|
|
3264
|
-
// performance issues.
|
|
3265
|
-
//
|
|
3266
|
-
// Pruning big nested objects is not something we
|
|
3267
|
-
// can afford to do slowly. -Tom
|
|
3268
|
-
if (_dotPath !== undefined) {
|
|
3269
|
-
_dotPath += '.';
|
|
3270
|
-
} else {
|
|
3271
|
-
_dotPath = '';
|
|
3272
|
-
}
|
|
3273
|
-
_ancestors = (_ancestors || []).concat(doc);
|
|
3274
|
-
const remove = [];
|
|
3275
|
-
for (const key in doc) {
|
|
3276
|
-
const __dotPath = _dotPath + key.toString();
|
|
3277
|
-
const ow = '_originalWidgets';
|
|
3278
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (__dotPath === ow || __dotPath.substring(0, ow.length) === ow + '.') {
|
|
3279
|
-
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
3280
|
-
}
|
|
3281
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (iterator(doc, key, doc[key], __dotPath, _ancestors) === false) {
|
|
3282
|
-
<span class="cstat-no" title="statement not covered" > remove.push(key);</span>
|
|
3283
|
-
} else {
|
|
3284
|
-
const val = doc[key];
|
|
3285
|
-
if (typeof val === 'object') {
|
|
3286
|
-
self.walk(val, iterator, __dotPath, _ancestors.concat([ doc ]));
|
|
3287
|
-
}
|
|
3288
|
-
}
|
|
3289
|
-
}
|
|
3290
|
-
for (const key of remove) {
|
|
3291
|
-
<span class="cstat-no" title="statement not covered" > delete doc[key];</span>
|
|
3292
|
-
}
|
|
3293
|
-
},
|
|
3294
|
-
// Retry the given "actor" async function until it
|
|
3295
|
-
// does not yield a MongoDB error related to
|
|
3296
|
-
// unique indexes. The actor is not passed
|
|
3297
|
-
// any arguments and it will be awaited. If
|
|
3298
|
-
// an error related to uniqueness does occur, this module emits the
|
|
3299
|
-
// `fixUniqueError` event with `req, doc` before
|
|
3300
|
-
// the next retry. This is your opportunity to
|
|
3301
|
-
// tweak properties relating to unique indexes
|
|
3302
|
-
// this module does not know about.
|
|
3303
|
-
//
|
|
3304
|
-
// Passes on the return value of `actor`.
|
|
3305
|
-
//
|
|
3306
|
-
// Will make no more than 20 attempts, which statistically eliminates
|
|
3307
|
-
// any chance we just didn't try hard enough while avoiding
|
|
3308
|
-
// an infinite loop if the unique key error is due to a property
|
|
3309
|
-
// there is no handling for.
|
|
3310
|
-
async retryUntilUnique(req, doc, actor) {
|
|
3311
|
-
const maxAttempts = 20;
|
|
3312
|
-
let attempt = 0;
|
|
3313
|
-
let firstError;
|
|
3314
|
-
while (true) {
|
|
3315
|
-
try {
|
|
3316
|
-
return await actor();
|
|
3317
|
-
} catch (err) {
|
|
3318
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!self.isUniqueError(err)) {
|
|
3319
|
-
<span class="cstat-no" title="statement not covered" > throw err;</span>
|
|
3320
|
-
}
|
|
3321
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!firstError) {
|
|
3322
|
-
firstError = err;
|
|
3323
|
-
}
|
|
3324
|
-
attempt++;
|
|
3325
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (attempt === maxAttempts) {
|
|
3326
|
-
// Odds are now 1 in 100000000000000000000 that it is really due
|
|
3327
|
-
// to a duplicate path or slug; a far more likely explanation is
|
|
3328
|
-
// that another docFixUniqueError handler is needed to address
|
|
3329
|
-
// an additional property that has to be unique. Report the
|
|
3330
|
-
// original error to avoid confusion ("ZOMG, what are all these digits!")
|
|
3331
|
-
<span class="cstat-no" title="statement not covered" > firstError.aposAddendum = 'retryUntilUnique failed, most likely you need another docFixUniqueError method to handle another property that has a unique index, reporting original error';</span>
|
|
3332
|
-
<span class="cstat-no" title="statement not covered" > throw firstError;</span>
|
|
3333
|
-
}
|
|
3334
|
-
await self.emit('fixUniqueError', req, doc);
|
|
3335
|
-
}
|
|
3336
|
-
}
|
|
3337
|
-
},
|
|
3338
|
-
// Called by an `@apostrophecms/doc-type:insert` event handler to confirm that the user
|
|
3339
|
-
// has the appropriate permissions for the doc's type and content.
|
|
3340
|
-
testInsertPermissions(req, doc, options) {
|
|
3341
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!(options.permissions === false)) {
|
|
3342
|
-
if (!self.apos.permission.can(req, 'edit', doc)) {
|
|
3343
|
-
throw self.apos.error('forbidden');
|
|
3344
|
-
}
|
|
3345
|
-
}
|
|
3346
|
-
},
|
|
3347
|
-
// Do not call this yourself, it is called
|
|
3348
|
-
// by .update(). You will usually want to call the
|
|
3349
|
-
// update method of the appropriate doc type manager instead:
|
|
3350
|
-
//
|
|
3351
|
-
// self.apos.doc.getManager(doc.type).update(...)
|
|
3352
|
-
//
|
|
3353
|
-
// You may override this method to change the implementation.
|
|
3354
|
-
async updateBody(req, doc, options) {
|
|
3355
|
-
const manager = self.apos.doc.getManager(doc.type);
|
|
3356
|
-
if (manager.isLocalized(doc.type)) {
|
|
3357
|
-
// Performance hit now at write time is better than inaccurate
|
|
3358
|
-
// indicators of which docs are modified later (per Ben)
|
|
3359
|
-
if (doc.aposLocale.endsWith(':draft') && (options.setModified !== false)) {
|
|
3360
|
-
doc.modified = await manager.isModified(req, doc);
|
|
3361
|
-
}
|
|
3362
|
-
}
|
|
3363
|
-
const result = await self.retryUntilUnique(req, doc, async () => {
|
|
3364
|
-
return self.db.replaceOne({ _id: doc._id }, self.apos.util.clonePermanent(doc));
|
|
3365
|
-
});
|
|
3366
|
-
if (manager.isLocalized(doc.type)) {
|
|
3367
|
-
if (doc.aposLocale.endsWith(':published')) {
|
|
3368
|
-
// The reverse can happen too: published changes
|
|
3369
|
-
// (for instance because a move operation gets
|
|
3370
|
-
// repeated on it) and draft is no longer out of sync
|
|
3371
|
-
const modified = await manager.isModified(req, doc);
|
|
3372
|
-
await self.apos.doc.db.updateOne({
|
|
3373
|
-
_id: doc._id.replace(':published', ':draft')
|
|
3374
|
-
}, {
|
|
3375
|
-
$set: {
|
|
3376
|
-
modified
|
|
3377
|
-
}
|
|
3378
|
-
});
|
|
3379
|
-
}
|
|
3380
|
-
}
|
|
3381
|
-
return result;
|
|
3382
|
-
},
|
|
3383
|
-
|
|
3384
|
-
async deleteBody(req, doc, options) {
|
|
3385
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if ((options.permissions !== false) && (!self.apos.permission.can(req, 'delete', doc))) {
|
|
3386
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('forbidden');</span>
|
|
3387
|
-
}
|
|
3388
|
-
return self.db.removeOne({
|
|
3389
|
-
_id: doc._id
|
|
3390
|
-
});
|
|
3391
|
-
},
|
|
3392
|
-
|
|
3393
|
-
// Insert the given document. Called by `.insert()`. You will usually want to
|
|
3394
|
-
// call the insert method of the appropriate doc type manager instead:
|
|
3395
|
-
//
|
|
3396
|
-
// ```javascript
|
|
3397
|
-
// self.apos.doc.getManager(doc.type).insert(...)
|
|
3398
|
-
// ```
|
|
3399
|
-
//
|
|
3400
|
-
// However you can override this method to alter the
|
|
3401
|
-
// implementation.
|
|
3402
|
-
async insertBody(req, doc, options) {
|
|
3403
|
-
const manager = self.apos.doc.getManager(doc.type);
|
|
3404
|
-
if (manager.isLocalized(doc.type) && doc.aposLocale.endsWith(':draft')) {
|
|
3405
|
-
// We are inserting the draft for the first time so it is always
|
|
3406
|
-
// different from the published, which won't exist yet. An exception
|
|
3407
|
-
// is when the published doc is inserted first (like a parked page)
|
|
3408
|
-
// in which case setModified: false will be passed in
|
|
3409
|
-
if (options.setModified !== false) {
|
|
3410
|
-
doc.modified = true;
|
|
3411
|
-
}
|
|
3412
|
-
}
|
|
3413
|
-
if (!doc.visibility) {
|
|
3414
|
-
// If the visibility property has been removed from the schema
|
|
3415
|
-
// (images and files), make sure public queries can still match this type
|
|
3416
|
-
doc.visibility = 'public';
|
|
3417
|
-
}
|
|
3418
|
-
return self.retryUntilUnique(req, doc, async function () {
|
|
3419
|
-
return self.db.insertOne(self.apos.util.clonePermanent(doc));
|
|
3420
|
-
});
|
|
3421
|
-
},
|
|
3422
|
-
|
|
3423
|
-
// Given either an id (as a string) or a criteria
|
|
3424
|
-
// object, return a criteria object.
|
|
3425
|
-
<span class="fstat-no" title="function not covered" > id</span>OrCriteria(idOrCriteria) {
|
|
3426
|
-
<span class="cstat-no" title="statement not covered" > if (typeof idOrCriteria === 'object') {</span>
|
|
3427
|
-
<span class="cstat-no" title="statement not covered" > return idOrCriteria;</span>
|
|
3428
|
-
} else {
|
|
3429
|
-
<span class="cstat-no" title="statement not covered" > return { _id: idOrCriteria };</span>
|
|
3430
|
-
}
|
|
3431
|
-
},
|
|
3432
|
-
// Is this MongoDB error related to uniqueness? Great for retrying on duplicates.
|
|
3433
|
-
// Used heavily by the pages module and no doubt will be by other things.
|
|
3434
|
-
//
|
|
3435
|
-
// There are three error codes for this: 13596 ("cannot change _id of a document")
|
|
3436
|
-
// and 11000 and 11001 which specifically relate to the uniqueness of an index.
|
|
3437
|
-
// 13596 can arise on an upsert operation, especially when the _id is assigned
|
|
3438
|
-
// by the caller rather than by MongoDB.
|
|
3439
|
-
//
|
|
3440
|
-
// IMPORTANT: you are responsible for making sure ALL of your unique indexes
|
|
3441
|
-
// are accounted for before retrying... otherwise an infinite loop will
|
|
3442
|
-
// likely result.
|
|
3443
|
-
isUniqueError(err) {
|
|
3444
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!err) {
|
|
3445
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
3446
|
-
}
|
|
3447
|
-
return err.code === 13596 || err.code === 13596 || err.code === 11000 || <span class="branch-3 cbranch-no" title="branch not covered" >err.code === 11001;</span>
|
|
3448
|
-
},
|
|
3449
|
-
// Set the manager object corresponding
|
|
3450
|
-
// to a given doc type. Typically `manager`
|
|
3451
|
-
// is a module that subclasses `@apostrophecms/doc-type`
|
|
3452
|
-
// (or its subclasses `@apostrophecms/piece-type` and `@apostrophecms/page-type`).
|
|
3453
|
-
setManager(type, manager) {
|
|
3454
|
-
self.managers[type] = manager;
|
|
3455
|
-
},
|
|
3456
|
-
// Returns an array of all of the doc types that have a registered manager.
|
|
3457
|
-
getManaged() {
|
|
3458
|
-
return Object.keys(self.managers);
|
|
3459
|
-
},
|
|
3460
|
-
// Fetch the manager object corresponding to a given
|
|
3461
|
-
// doc type. The manager object provides methods such
|
|
3462
|
-
// as find() specific to that type.
|
|
3463
|
-
//
|
|
3464
|
-
// If no manager has been registered, this method will
|
|
3465
|
-
// return undefined. **All** doc types used in your project must
|
|
3466
|
-
// have a registered manager (hint: all subclasses of
|
|
3467
|
-
// pieces, the `data.global` doc, and page types registered
|
|
3468
|
-
// with `@apostrophecms/page` always have one).
|
|
3469
|
-
getManager(type) {
|
|
3470
|
-
return self.managers[self.normalizeType(type)];
|
|
3471
|
-
},
|
|
3472
|
-
// Lock the given doc to a given `tabId`, such
|
|
3473
|
-
// that other calls to `apos.doc.lock` for that doc id will
|
|
3474
|
-
// fail unless they have the same `tabId`. If
|
|
3475
|
-
// `options.force` is true, any existing lock is
|
|
3476
|
-
// overwritten. The `options` argument may be
|
|
3477
|
-
// omitted entirely.
|
|
3478
|
-
//
|
|
3479
|
-
// You cannot lock a document that has not yet been inserted,
|
|
3480
|
-
// nor do you need to.
|
|
3481
|
-
//
|
|
3482
|
-
// If a lock cannot be obtained due to a conflict
|
|
3483
|
-
// a 'locked' error is thrown, with the `me: true` property if
|
|
3484
|
-
// the lock is held by the same user in another tab, or
|
|
3485
|
-
// `username` and `title` properties if the lock is held
|
|
3486
|
-
// by someone else. Other errors are thrown as appropriate.
|
|
3487
|
-
//
|
|
3488
|
-
// If you need to refresh a lock in order to avoid
|
|
3489
|
-
// expiration, just lock it again. As long as the tabId
|
|
3490
|
-
// is the same as the current lock holder you will receive
|
|
3491
|
-
// another successful response.
|
|
3492
|
-
//
|
|
3493
|
-
// This method will set the `advisoryLock` property of the
|
|
3494
|
-
// document both in the database and in the `doc` object
|
|
3495
|
-
// that you pass to it. This ensures it is present if you
|
|
3496
|
-
// follow this call up with an `update()` of the document.
|
|
3497
|
-
|
|
3498
|
-
async lock(req, doc, tabId, options) {
|
|
3499
|
-
if (!options) {
|
|
3500
|
-
options = {};
|
|
3501
|
-
}
|
|
3502
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!(req && req.res)) {
|
|
3503
|
-
// Use 'error' because this is always a code bug, not a bad
|
|
3504
|
-
// HTTP request, and the message should not be disclosed to the client
|
|
3505
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('error', 'You forgot to pass req as the first argument');</span>
|
|
3506
|
-
}
|
|
3507
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!doc && <span class="branch-1 cbranch-no" title="branch not covered" >doc._id)</span> {
|
|
3508
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('invalid', 'No doc was passed');</span>
|
|
3509
|
-
}
|
|
3510
|
-
const _id = doc._id;
|
|
3511
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!tabId) {
|
|
3512
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('invalid', 'no tabId was passed');</span>
|
|
3513
|
-
}
|
|
3514
|
-
let criteria = { _id };
|
|
3515
|
-
if (!options.force) {
|
|
3516
|
-
criteria.$or = [
|
|
3517
|
-
{
|
|
3518
|
-
advisoryLock: {
|
|
3519
|
-
$exists: 0
|
|
3520
|
-
}
|
|
3521
|
-
},
|
|
3522
|
-
{
|
|
3523
|
-
'advisoryLock.updatedAt': {
|
|
3524
|
-
$lt: self.getAdvisoryLockExpiration()
|
|
3525
|
-
}
|
|
3526
|
-
},
|
|
3527
|
-
{
|
|
3528
|
-
'advisoryLock._id': tabId
|
|
3529
|
-
}
|
|
3530
|
-
];
|
|
3531
|
-
}
|
|
3532
|
-
// Prevent nuisance locking by matching only
|
|
3533
|
-
// documents the user can edit
|
|
3534
|
-
criteria = {
|
|
3535
|
-
$and: [
|
|
3536
|
-
criteria,
|
|
3537
|
-
self.apos.permission.criteria(req, 'edit')
|
|
3538
|
-
]
|
|
3539
|
-
};
|
|
3540
|
-
doc.advisoryLock = {
|
|
3541
|
-
username: req.user && req.user.username,
|
|
3542
|
-
title: req.user && req.user.title,
|
|
3543
|
-
_id: tabId,
|
|
3544
|
-
updatedAt: new Date()
|
|
3545
|
-
};
|
|
3546
|
-
const result = await self.db.updateOne(criteria, {
|
|
3547
|
-
$set: {
|
|
3548
|
-
advisoryLock: doc.advisoryLock
|
|
3549
|
-
}
|
|
3550
|
-
});
|
|
3551
|
-
if (!result.result.nModified) {
|
|
3552
|
-
const info = await self.db.findOne({
|
|
3553
|
-
_id
|
|
3554
|
-
}, {
|
|
3555
|
-
projection: {
|
|
3556
|
-
advisoryLock: 1
|
|
3557
|
-
}
|
|
3558
|
-
});
|
|
3559
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!info) {
|
|
3560
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('notfound');</span>
|
|
3561
|
-
}
|
|
3562
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!info.advisoryLock) {
|
|
3563
|
-
// Nobody else has a lock but you couldn't get one —
|
|
3564
|
-
// must be permissions
|
|
3565
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('forbidden');</span>
|
|
3566
|
-
}
|
|
3567
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!info.advisoryLock) {
|
|
3568
|
-
// Nobody else has a lock but you couldn't get one —
|
|
3569
|
-
// must be permissions
|
|
3570
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('forbidden');</span>
|
|
3571
|
-
}
|
|
3572
|
-
if (info.advisoryLock.username === req.user.username) {
|
|
3573
|
-
throw self.apos.error('locked', {
|
|
3574
|
-
me: true
|
|
3575
|
-
});
|
|
3576
|
-
}
|
|
3577
|
-
throw self.apos.error('locked', {
|
|
3578
|
-
title: info.advisoryLock.title,
|
|
3579
|
-
username: info.advisoryLock.username
|
|
3580
|
-
});
|
|
3581
|
-
}
|
|
3582
|
-
},
|
|
3583
|
-
// Any advisory lock whose `updatedAt` time is older than the Date
|
|
3584
|
-
// object returned by this method should be considered expired
|
|
3585
|
-
getAdvisoryLockExpiration() {
|
|
3586
|
-
return new Date(Date.now() - 1000 * self.options.advisoryLockTimeout);
|
|
3587
|
-
},
|
|
3588
|
-
// Release a document lock set via `lock` for a particular tabId.
|
|
3589
|
-
// If the lock is already gone no error occurs.
|
|
3590
|
-
//
|
|
3591
|
-
// This method will unset the `advisoryLock` property of the
|
|
3592
|
-
// document both in the database and in the `doc` object
|
|
3593
|
-
// that you pass to it. This ensures it is present if you
|
|
3594
|
-
// follow this call up with an `update()` of the document.
|
|
3595
|
-
async unlock(req, doc, tabId) {
|
|
3596
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!(req && req.res)) {
|
|
3597
|
-
// Use 'error' because this is always a code bug, not a bad
|
|
3598
|
-
// HTTP request, and the message should not be disclosed to the client
|
|
3599
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('error', 'You forgot to pass req as the first argument');</span>
|
|
3600
|
-
}
|
|
3601
|
-
const id = doc && doc._id;
|
|
3602
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!id) {
|
|
3603
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('invalid', 'no doc');</span>
|
|
3604
|
-
}
|
|
3605
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!tabId) {
|
|
3606
|
-
<span class="cstat-no" title="statement not covered" > throw self.apos.error('invalid', 'no tabId');</span>
|
|
3607
|
-
}
|
|
3608
|
-
await self.db.updateOne({
|
|
3609
|
-
_id: id,
|
|
3610
|
-
'advisoryLock._id': tabId
|
|
3611
|
-
}, {
|
|
3612
|
-
$unset: {
|
|
3613
|
-
advisoryLock: 1
|
|
3614
|
-
}
|
|
3615
|
-
});
|
|
3616
|
-
delete doc.advisoryLock;
|
|
3617
|
-
},
|
|
3618
|
-
// Returns the field names necessary to build URLs
|
|
3619
|
-
// for typical doc types. If a query specific to a
|
|
3620
|
-
// doc type is used, the `getUrlFields` method of
|
|
3621
|
-
// that module is called instead. This method is
|
|
3622
|
-
// used to implement "projections" for the
|
|
3623
|
-
// `_url` computed property
|
|
3624
|
-
getDefaultUrlFields() {
|
|
3625
|
-
return [
|
|
3626
|
-
'type',
|
|
3627
|
-
'slug'
|
|
3628
|
-
];
|
|
3629
|
-
},
|
|
3630
|
-
// Add context menu operation to be used in AposDocContextMenu.
|
|
3631
|
-
// Expected operation format is:
|
|
3632
|
-
// {
|
|
3633
|
-
// context: 'update',
|
|
3634
|
-
// action: 'someAction',
|
|
3635
|
-
// modal: 'ModalComponent',
|
|
3636
|
-
// label: 'Context Menu Label'
|
|
3637
|
-
// }
|
|
3638
|
-
// All properties are required.
|
|
3639
|
-
// The only supported `context` for now is `update`.
|
|
3640
|
-
// `action` is the operation idefntifier and should be globally unique.
|
|
3641
|
-
// Overriding existing custom actions is possible (the last wins).
|
|
3642
|
-
// `modal` is the name of the modal component to be opened.
|
|
3643
|
-
// `label` is the menu label to be shown when expanding the context menu.
|
|
3644
|
-
// Additional optional `modifiers` property is supported - button modifiers
|
|
3645
|
-
// as supported by `AposContextMenu` (e.g. modifiers: [ 'danger' ]).
|
|
3646
|
-
// An optional `manuallyPublished` boolean property is supported - if true
|
|
3647
|
-
// the menu will be shown only for docs which have `autopublish: false` and
|
|
3648
|
-
// `localized: true` options.
|
|
3649
|
-
addContextOperation(moduleName, operation) {
|
|
3650
|
-
self.contextOperations = [
|
|
3651
|
-
...self.contextOperations
|
|
3652
|
-
.filter(op => op.action !== operation.action),
|
|
3653
|
-
{
|
|
3654
|
-
...operation,
|
|
3655
|
-
moduleName
|
|
3656
|
-
}
|
|
3657
|
-
];
|
|
3658
|
-
},
|
|
3659
|
-
getBrowserData(req) {
|
|
3660
|
-
return {
|
|
3661
|
-
action: self.action,
|
|
3662
|
-
contextOperations: self.contextOperations
|
|
3663
|
-
};
|
|
3664
|
-
},
|
|
3665
|
-
<span class="fstat-no" title="function not covered" > mi</span>grateRelationshipIds(doc) {
|
|
3666
|
-
<span class="cstat-no" title="statement not covered" > if (doc.metaType === 'doc') {</span>
|
|
3667
|
-
const manager = <span class="cstat-no" title="statement not covered" >self.apos.doc.getManager(doc.type);</span>
|
|
3668
|
-
<span class="cstat-no" title="statement not covered" > if (!manager) {</span>
|
|
3669
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
3670
|
-
}
|
|
3671
|
-
<span class="cstat-no" title="statement not covered" > return forSchema(manager.schema, doc);</span>
|
|
3672
|
-
} else <span class="cstat-no" title="statement not covered" >if (doc.metaType === 'widget') {</span>
|
|
3673
|
-
const manager = <span class="cstat-no" title="statement not covered" >self.apos.area.getWidgetManager(doc.type);</span>
|
|
3674
|
-
<span class="cstat-no" title="statement not covered" > if (!manager) {</span>
|
|
3675
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
3676
|
-
}
|
|
3677
|
-
<span class="cstat-no" title="statement not covered" > return forSchema(manager.schema, doc);</span>
|
|
3678
|
-
}
|
|
3679
|
-
function <span class="fstat-no" title="function not covered" >forSchema(</span>schema, doc) {
|
|
3680
|
-
let needed = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
3681
|
-
<span class="cstat-no" title="statement not covered" > for (const field of schema) {</span>
|
|
3682
|
-
<span class="cstat-no" title="statement not covered" > if (field.type === 'area') {</span>
|
|
3683
|
-
<span class="cstat-no" title="statement not covered" > if (doc[field.name] && doc[field.name].items) {</span>
|
|
3684
|
-
<span class="cstat-no" title="statement not covered" > for (const widget of doc[field.name].items) {</span>
|
|
3685
|
-
<span class="cstat-no" title="statement not covered" > self.migrateRelationshipIds(widget);</span>
|
|
3686
|
-
}
|
|
3687
|
-
}
|
|
3688
|
-
} else <span class="cstat-no" title="statement not covered" >if (field.type === 'array') {</span>
|
|
3689
|
-
<span class="cstat-no" title="statement not covered" > if (doc[field.name]) {</span>
|
|
3690
|
-
<span class="cstat-no" title="statement not covered" > doc[field.name].forEach(<span class="fstat-no" title="function not covered" >it</span>em => {</span>
|
|
3691
|
-
<span class="cstat-no" title="statement not covered" > item.metaType = 'arrayItem';</span>
|
|
3692
|
-
<span class="cstat-no" title="statement not covered" > item.scopedArrayName = field.scopedArrayName;</span>
|
|
3693
|
-
<span class="cstat-no" title="statement not covered" > forSchema(field.schema, item);</span>
|
|
3694
|
-
});
|
|
3695
|
-
}
|
|
3696
|
-
} else <span class="cstat-no" title="statement not covered" >if (field.type === 'object') {</span>
|
|
3697
|
-
const value = <span class="cstat-no" title="statement not covered" >doc[field.name];</span>
|
|
3698
|
-
<span class="cstat-no" title="statement not covered" > if (value) {</span>
|
|
3699
|
-
<span class="cstat-no" title="statement not covered" > value.metaType = 'object';</span>
|
|
3700
|
-
<span class="cstat-no" title="statement not covered" > value.scopedObjectName = field.scopedObjectName;</span>
|
|
3701
|
-
<span class="cstat-no" title="statement not covered" > forSchema(field.schema, value);</span>
|
|
3702
|
-
}
|
|
3703
|
-
} else <span class="cstat-no" title="statement not covered" >if (field.type === 'relationship') {</span>
|
|
3704
|
-
<span class="cstat-no" title="statement not covered" > doc[field.idsStorage] = (doc[field.idsStorage] || []).map(self.apos.doc.toAposDocId);</span>
|
|
3705
|
-
<span class="cstat-no" title="statement not covered" > if (field.fieldsStorage) {</span>
|
|
3706
|
-
<span class="cstat-no" title="statement not covered" > doc[field.fieldsStorage] = Object.fromEntries(Object.entries(doc[field.fieldsStorage] || {}).map(<span class="fstat-no" title="function not covered" >([</span> key, value ]) => <span class="cstat-no" title="statement not covered" >[ self.apos.doc.toAposDocId(key), value ])</span>);</span>
|
|
3707
|
-
}
|
|
3708
|
-
<span class="cstat-no" title="statement not covered" > needed = true;</span>
|
|
3709
|
-
}
|
|
3710
|
-
}
|
|
3711
|
-
<span class="cstat-no" title="statement not covered" > return needed;</span>
|
|
3712
|
-
}
|
|
3713
|
-
},
|
|
3714
|
-
isDraft(doc) {
|
|
3715
|
-
return doc.aposLocale.endsWith(':draft');
|
|
3716
|
-
},
|
|
3717
|
-
// Given a type name, normalize for any backwards compatibility
|
|
3718
|
-
// provisions such as accepting @apostrophecms/page for
|
|
3719
|
-
// @apostrophecms/any-page-type
|
|
3720
|
-
normalizeType(type) {
|
|
3721
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (type === '@apostrophecms/page') {
|
|
3722
|
-
// Backwards compatible
|
|
3723
|
-
<span class="cstat-no" title="statement not covered" > type = '@apostrophecms/any-page-type';</span>
|
|
3724
|
-
}
|
|
3725
|
-
return type;
|
|
3726
|
-
},
|
|
3727
|
-
// Given a doc, an _id, or an aposDocId, this method
|
|
3728
|
-
// will return the aposDocId (the _id without the
|
|
3729
|
-
// mode and locale parts). This will work on a doc
|
|
3730
|
-
// even if the projection did not include aposDocId
|
|
3731
|
-
toAposDocId(input) {
|
|
3732
|
-
if (typeof input === 'object') {
|
|
3733
|
-
return input.aposDocId || self.toAposDocId(input._id);
|
|
3734
|
-
}
|
|
3735
|
-
const index = input.indexOf(':');
|
|
3736
|
-
if (index > -1) {
|
|
3737
|
-
return input.substring(0, index);
|
|
3738
|
-
} else {
|
|
3739
|
-
return input;
|
|
3740
|
-
}
|
|
3741
|
-
},
|
|
3742
|
-
// Replicate all documents that should automatically be replicated
|
|
3743
|
-
// across all locales: parked pages, and piece types with the
|
|
3744
|
-
// replicate: true option. The latter currently must be singletons
|
|
3745
|
-
// like the global doc or the palette doc, they cannot be types
|
|
3746
|
-
// with more than one instance per locale. Emits
|
|
3747
|
-
// `@apostrophecms/doc:beforeReplicate` with an array of criteria
|
|
3748
|
-
// to be used to locate docs that require replication, which can
|
|
3749
|
-
// be modified by event handlers. Also emits `@apostrophecms/doc:afterReplicate`
|
|
3750
|
-
// when replication is complete.
|
|
3751
|
-
async replicate() {
|
|
3752
|
-
const localeNames = Object.keys(self.apos.i18n.locales);
|
|
3753
|
-
const criteria = [];
|
|
3754
|
-
self.apos.page.parked.forEach(pushParkedPageAndParkedChildren);
|
|
3755
|
-
function pushParkedPageAndParkedChildren(page) {
|
|
3756
|
-
criteria.push({
|
|
3757
|
-
parkedId: page.parkedId
|
|
3758
|
-
});
|
|
3759
|
-
(page._children || []).forEach(pushParkedPageAndParkedChildren);
|
|
3760
|
-
}
|
|
3761
|
-
const pieceModules = Object.values(self.apos.modules).filter(module => self.apos.instanceOf(module, '@apostrophecms/piece-type') && module.options.replicate);
|
|
3762
|
-
for (const module of pieceModules) {
|
|
3763
|
-
criteria.push({
|
|
3764
|
-
type: module.name
|
|
3765
|
-
});
|
|
3766
|
-
}
|
|
3767
|
-
// Include the criteria array in the event so that more entries can be pushed to it
|
|
3768
|
-
await self.emit('beforeReplicate', criteria);
|
|
3769
|
-
// We can skip the core work of this method if there is only one locale,
|
|
3770
|
-
// but the events should always be emitted as the guarantee is still there
|
|
3771
|
-
// ("this is before replication if any," "this is after replication if any")
|
|
3772
|
-
// and we otherwise complicate modules that mainly care about not missing
|
|
3773
|
-
// out if there *is* replication
|
|
3774
|
-
if (localeNames.length > 1) {
|
|
3775
|
-
for (const criterion of criteria) {
|
|
3776
|
-
const existing = await self.apos.doc.db.find({
|
|
3777
|
-
...criterion,
|
|
3778
|
-
aposLocale: {
|
|
3779
|
-
// Only interested in valid draft locales
|
|
3780
|
-
$in: Object.keys(self.apos.i18n.locales).map(locale => `${locale}:draft`)
|
|
3781
|
-
}
|
|
3782
|
-
}).project({
|
|
3783
|
-
_id: 1,
|
|
3784
|
-
aposLocale: 1
|
|
3785
|
-
}).toArray();
|
|
3786
|
-
for (const info of existing) {
|
|
3787
|
-
info.aposLocale = info.aposLocale.replace(':draft', '');
|
|
3788
|
-
}
|
|
3789
|
-
if ((existing.length > 0) && (existing.length < localeNames.length)) {
|
|
3790
|
-
const sourceInfo = self.apos.util.orderById(localeNames, existing, 'aposLocale')[0];
|
|
3791
|
-
const req = self.apos.task.getReq({
|
|
3792
|
-
locale: sourceInfo.aposLocale,
|
|
3793
|
-
mode: 'draft'
|
|
3794
|
-
});
|
|
3795
|
-
const sourceDoc = await self.apos.doc.find(req, {
|
|
3796
|
-
_id: sourceInfo._id
|
|
3797
|
-
}).archived(null).toObject();
|
|
3798
|
-
for (const locale of localeNames) {
|
|
3799
|
-
if (!existing.find(doc => doc.aposLocale === locale)) {
|
|
3800
|
-
const module = self.getManager(sourceDoc.type);
|
|
3801
|
-
const localized = await module.localize(req, sourceDoc, locale);
|
|
3802
|
-
await module.publish(req.clone({ locale }), localized);
|
|
3803
|
-
}
|
|
3804
|
-
}
|
|
3805
|
-
}
|
|
3806
|
-
}
|
|
3807
|
-
}
|
|
3808
|
-
await self.emit('afterReplicate');
|
|
3809
|
-
},
|
|
3810
|
-
// Determine which locales exist for the given doc _id
|
|
3811
|
-
<span class="fstat-no" title="function not covered" > as</span>ync getLocales(req, _id) {
|
|
3812
|
-
const criteria = <span class="cstat-no" title="statement not covered" >{</span>
|
|
3813
|
-
aposDocId: _id.split(':')[0]
|
|
3814
|
-
};
|
|
3815
|
-
<span class="cstat-no" title="statement not covered" > if (!self.apos.permission.can(req, 'view-draft')) {</span>
|
|
3816
|
-
<span class="cstat-no" title="statement not covered" > criteria.aposMode = 'published';</span>
|
|
3817
|
-
}
|
|
3818
|
-
const existing = <span class="cstat-no" title="statement not covered" >await self.apos.doc.db.find(criteria).project({</span>
|
|
3819
|
-
_id: 1,
|
|
3820
|
-
aposLocale: 1
|
|
3821
|
-
}).toArray();
|
|
3822
|
-
<span class="cstat-no" title="statement not covered" > return existing;</span>
|
|
3823
|
-
},
|
|
3824
|
-
deduplicateWidgetIds(doc) {
|
|
3825
|
-
const seen = new Set();
|
|
3826
|
-
self.apos.area.walk(doc, (area, dotPath) => {
|
|
3827
|
-
if (dotPath.includes('_')) {
|
|
3828
|
-
// Ignore relationships so recursive references from a
|
|
3829
|
-
// doc to itself can't result in random regeneration of
|
|
3830
|
-
// widget ids in the doc proper
|
|
3831
|
-
return;
|
|
3832
|
-
}
|
|
3833
|
-
for (const widget of area.items || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span> {
|
|
3834
|
-
if ((!widget._id) || seen.has(widget._id)) {
|
|
3835
|
-
widget._id = cuid();
|
|
3836
|
-
} else {
|
|
3837
|
-
seen.add(widget._id);
|
|
3838
|
-
}
|
|
3839
|
-
}
|
|
3840
|
-
});
|
|
3841
|
-
},
|
|
3842
|
-
|
|
3843
|
-
// Iterate through the document fields and call the provided handlers
|
|
3844
|
-
// for each item of an array, object and relationship field type.
|
|
3845
|
-
walkByMetaType(doc, handlers) {
|
|
3846
|
-
const defaultHandlers = {
|
|
3847
|
-
arrayItem: () => {},
|
|
3848
|
-
object: () => {},
|
|
3849
|
-
relationship: <span class="fstat-no" title="function not covered" >()</span> => {}
|
|
3850
|
-
};
|
|
3851
|
-
|
|
3852
|
-
handlers = {
|
|
3853
|
-
...defaultHandlers,
|
|
3854
|
-
...handlers
|
|
3855
|
-
};
|
|
3856
|
-
|
|
3857
|
-
if (doc.metaType === 'doc') {
|
|
3858
|
-
const manager = self.getManager(doc.type);
|
|
3859
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!manager) {
|
|
3860
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3861
|
-
}
|
|
3862
|
-
forSchema(manager.schema, doc);
|
|
3863
|
-
} else if (doc.metaType === 'widget') {
|
|
3864
|
-
const manager = self.apos.area.getWidgetManager(doc.type);
|
|
3865
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!manager) {
|
|
3866
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3867
|
-
}
|
|
3868
|
-
forSchema(manager.schema, doc);
|
|
3869
|
-
}
|
|
3870
|
-
|
|
3871
|
-
function forSchema(schema, doc) {
|
|
3872
|
-
for (const field of schema) {
|
|
3873
|
-
if (field.type === 'area' && doc[field.name] && doc[field.name].items) {
|
|
3874
|
-
for (const widget of doc[field.name].items) {
|
|
3875
|
-
self.walkByMetaType(widget, {
|
|
3876
|
-
arrayItem: handlers.arrayItem,
|
|
3877
|
-
object: handlers.object,
|
|
3878
|
-
relationship: handlers.relationship
|
|
3879
|
-
});
|
|
3880
|
-
}
|
|
3881
|
-
} else if (field.type === 'array') {
|
|
3882
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (doc[field.name]) {
|
|
3883
|
-
doc[field.name].forEach(item => {
|
|
3884
|
-
handlers.arrayItem(field, item);
|
|
3885
|
-
forSchema(field.schema, item);
|
|
3886
|
-
});
|
|
3887
|
-
}
|
|
3888
|
-
} else if (field.type === 'object') {
|
|
3889
|
-
const value = doc[field.name];
|
|
3890
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (value) {
|
|
3891
|
-
handlers.object(field, value);
|
|
3892
|
-
forSchema(field.schema, value);
|
|
3893
|
-
}
|
|
3894
|
-
} else if (field.type === 'relationship') {
|
|
3895
|
-
if (Array.isArray(doc[field.name])) {
|
|
3896
|
-
handlers.relationship(field, doc);
|
|
3897
|
-
}
|
|
3898
|
-
}
|
|
3899
|
-
}
|
|
3900
|
-
}
|
|
3901
|
-
},
|
|
3902
|
-
// Add the "cacheInvalidatedAt" field to the documents that do not have it yet,
|
|
3903
|
-
// and set it to equal doc.updatedAt.
|
|
3904
|
-
setCacheField() {
|
|
3905
|
-
return self.apos.migration.eachDoc({ cacheInvalidatedAt: { $exists: 0 } }, 5, async doc => {
|
|
3906
|
-
await self.apos.doc.db.updateOne({ _id: doc._id }, {
|
|
3907
|
-
$set: { cacheInvalidatedAt: doc.updatedAt }
|
|
3908
|
-
});
|
|
3909
|
-
});
|
|
3910
|
-
},
|
|
3911
|
-
addCacheFieldMigration() {
|
|
3912
|
-
self.apos.migration.add('add-cache-invalidated-at-field', self.setCacheField);
|
|
3913
|
-
},
|
|
3914
|
-
...require('./lib/legacy-migrations')(self)
|
|
3915
|
-
};
|
|
3916
|
-
}
|
|
3917
|
-
};
|
|
3918
|
-
</pre></td></tr></table></pre>
|
|
3919
|
-
|
|
3920
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
3921
|
-
</div><!-- /wrapper -->
|
|
3922
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
3923
|
-
Code coverage generated by
|
|
3924
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
3925
|
-
at Wed Jun 08 2022 11:06:49 GMT+0200 (Central European Summer Time)
|
|
3926
|
-
</div>
|
|
3927
|
-
<script src="../../../../prettify.js"></script>
|
|
3928
|
-
<script>
|
|
3929
|
-
window.onload = function () {
|
|
3930
|
-
prettyPrint();
|
|
3931
|
-
};
|
|
3932
|
-
</script>
|
|
3933
|
-
<script src="../../../../sorter.js"></script>
|
|
3934
|
-
<script src="../../../../block-navigation.js"></script>
|
|
3935
|
-
</body>
|
|
3936
|
-
</html>
|
|
3937
|
-
|