@openreplay/tracker 14.0.10-beta.1 → 14.0.10

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.
Files changed (273) hide show
  1. package/{cjs → dist/cjs}/index.js +27 -49
  2. package/dist/cjs/index.js.map +1 -0
  3. package/{cjs → dist/cjs/main}/app/index.d.ts +38 -6
  4. package/{lib → dist/cjs/main}/app/messages.gen.d.ts +2 -2
  5. package/{lib/app/nodes.d.ts → dist/cjs/main/app/nodes/index.d.ts} +15 -7
  6. package/dist/cjs/main/app/nodes/maintainer.d.ts +28 -0
  7. package/{cjs → dist/cjs/main}/app/observer/iframe_observer.d.ts +1 -1
  8. package/{lib → dist/cjs/main}/app/observer/iframe_offsets.d.ts +1 -1
  9. package/{lib → dist/cjs/main}/app/observer/observer.d.ts +6 -0
  10. package/{lib → dist/cjs/main}/app/observer/top_observer.d.ts +6 -2
  11. package/{cjs → dist/cjs/main}/app/sanitizer.d.ts +5 -2
  12. package/{cjs → dist/cjs/main}/app/session.d.ts +6 -3
  13. package/{lib → dist/cjs/main}/index.d.ts +2 -2
  14. package/{lib → dist/cjs/main}/modules/attributeSender.d.ts +5 -2
  15. package/{cjs → dist/cjs/main}/modules/conditionsManager.d.ts +1 -1
  16. package/{cjs → dist/cjs/main}/modules/tagWatcher.d.ts +8 -4
  17. package/{lib → dist/cjs/main}/modules/userTesting/SignalManager.d.ts +2 -2
  18. package/{lib → dist/cjs/main}/utils.d.ts +4 -3
  19. package/dist/lib/index.js +9323 -0
  20. package/dist/lib/index.js.map +1 -0
  21. package/{lib → dist/lib/main}/app/index.d.ts +38 -6
  22. package/{cjs → dist/lib/main}/app/messages.gen.d.ts +2 -2
  23. package/{cjs/app/nodes.d.ts → dist/lib/main/app/nodes/index.d.ts} +15 -7
  24. package/dist/lib/main/app/nodes/maintainer.d.ts +28 -0
  25. package/{lib → dist/lib/main}/app/observer/iframe_observer.d.ts +1 -1
  26. package/{cjs → dist/lib/main}/app/observer/iframe_offsets.d.ts +1 -1
  27. package/{cjs → dist/lib/main}/app/observer/observer.d.ts +6 -0
  28. package/{cjs → dist/lib/main}/app/observer/top_observer.d.ts +6 -2
  29. package/{lib → dist/lib/main}/app/sanitizer.d.ts +5 -2
  30. package/{lib → dist/lib/main}/app/session.d.ts +6 -3
  31. package/{cjs → dist/lib/main}/index.d.ts +2 -2
  32. package/{cjs → dist/lib/main}/modules/attributeSender.d.ts +5 -2
  33. package/{lib → dist/lib/main}/modules/conditionsManager.d.ts +1 -1
  34. package/{lib → dist/lib/main}/modules/tagWatcher.d.ts +8 -4
  35. package/{cjs → dist/lib/main}/modules/userTesting/SignalManager.d.ts +2 -2
  36. package/{cjs → dist/lib/main}/utils.d.ts +4 -3
  37. package/package.json +29 -10
  38. package/.eslintignore +0 -11
  39. package/.nvmrc +0 -1
  40. package/.prettierignore +0 -1
  41. package/CHANGELOG.md +0 -297
  42. package/bun.lockb +0 -0
  43. package/cjs/app/canvas.js +0 -204
  44. package/cjs/app/guards.js +0 -37
  45. package/cjs/app/index.js +0 -1366
  46. package/cjs/app/logger.js +0 -37
  47. package/cjs/app/messages.gen.js +0 -702
  48. package/cjs/app/nodes.js +0 -110
  49. package/cjs/app/observer/iframe_observer.js +0 -35
  50. package/cjs/app/observer/iframe_offsets.js +0 -56
  51. package/cjs/app/observer/observer.js +0 -352
  52. package/cjs/app/observer/shadow_root_observer.js +0 -24
  53. package/cjs/app/observer/top_observer.js +0 -134
  54. package/cjs/app/sanitizer.js +0 -82
  55. package/cjs/app/session.js +0 -140
  56. package/cjs/app/ticker.js +0 -48
  57. package/cjs/common/interaction.js +0 -2
  58. package/cjs/common/messages.gen.js +0 -4
  59. package/cjs/modules/attributeSender.js +0 -51
  60. package/cjs/modules/axiosSpy.js +0 -122
  61. package/cjs/modules/conditionsManager.js +0 -343
  62. package/cjs/modules/connection.js +0 -15
  63. package/cjs/modules/console.js +0 -127
  64. package/cjs/modules/constructedStyleSheets.js +0 -138
  65. package/cjs/modules/cssrules.js +0 -99
  66. package/cjs/modules/exception.js +0 -85
  67. package/cjs/modules/featureFlags.js +0 -89
  68. package/cjs/modules/focus.js +0 -45
  69. package/cjs/modules/fonts.js +0 -57
  70. package/cjs/modules/img.js +0 -110
  71. package/cjs/modules/input.js +0 -203
  72. package/cjs/modules/mouse.js +0 -195
  73. package/cjs/modules/network.js +0 -244
  74. package/cjs/modules/performance.js +0 -53
  75. package/cjs/modules/scroll.js +0 -84
  76. package/cjs/modules/selection.js +0 -37
  77. package/cjs/modules/tabs.js +0 -13
  78. package/cjs/modules/tagWatcher.js +0 -76
  79. package/cjs/modules/timing.js +0 -173
  80. package/cjs/modules/userTesting/SignalManager.js +0 -83
  81. package/cjs/modules/userTesting/dnd.js +0 -40
  82. package/cjs/modules/userTesting/index.js +0 -464
  83. package/cjs/modules/userTesting/recorder.js +0 -101
  84. package/cjs/modules/userTesting/styles.js +0 -266
  85. package/cjs/modules/userTesting/utils.js +0 -87
  86. package/cjs/modules/viewport.js +0 -43
  87. package/cjs/package.json +0 -1
  88. package/cjs/utils.js +0 -230
  89. package/coverage/clover.xml +0 -4304
  90. package/coverage/coverage-final.json +0 -55
  91. package/coverage/lcov-report/base.css +0 -224
  92. package/coverage/lcov-report/block-navigation.js +0 -87
  93. package/coverage/lcov-report/favicon.png +0 -0
  94. package/coverage/lcov-report/index.html +0 -206
  95. package/coverage/lcov-report/main/app/canvas.ts.html +0 -712
  96. package/coverage/lcov-report/main/app/guards.ts.html +0 -232
  97. package/coverage/lcov-report/main/app/index.html +0 -236
  98. package/coverage/lcov-report/main/app/index.ts.html +0 -3955
  99. package/coverage/lcov-report/main/app/logger.ts.html +0 -211
  100. package/coverage/lcov-report/main/app/messages.gen.ts.html +0 -3034
  101. package/coverage/lcov-report/main/app/nodes.ts.html +0 -406
  102. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +0 -148
  103. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +0 -289
  104. package/coverage/lcov-report/main/app/observer/index.html +0 -161
  105. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +0 -142
  106. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +0 -541
  107. package/coverage/lcov-report/main/app/sanitizer.ts.html +0 -403
  108. package/coverage/lcov-report/main/app/session.ts.html +0 -622
  109. package/coverage/lcov-report/main/app/ticker.ts.html +0 -250
  110. package/coverage/lcov-report/main/index.html +0 -131
  111. package/coverage/lcov-report/main/index.ts.html +0 -1597
  112. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +0 -400
  113. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +0 -1075
  114. package/coverage/lcov-report/main/modules/Network/index.html +0 -191
  115. package/coverage/lcov-report/main/modules/Network/index.ts.html +0 -244
  116. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +0 -400
  117. package/coverage/lcov-report/main/modules/Network/utils.ts.html +0 -709
  118. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +0 -877
  119. package/coverage/lcov-report/main/modules/attributeSender.ts.html +0 -241
  120. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +0 -709
  121. package/coverage/lcov-report/main/modules/conditionsManager.ts.html +0 -1381
  122. package/coverage/lcov-report/main/modules/connection.ts.html +0 -160
  123. package/coverage/lcov-report/main/modules/console.ts.html +0 -541
  124. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +0 -571
  125. package/coverage/lcov-report/main/modules/cssrules.ts.html +0 -418
  126. package/coverage/lcov-report/main/modules/exception.ts.html +0 -385
  127. package/coverage/lcov-report/main/modules/featureFlags.ts.html +0 -415
  128. package/coverage/lcov-report/main/modules/focus.ts.html +0 -220
  129. package/coverage/lcov-report/main/modules/fonts.ts.html +0 -289
  130. package/coverage/lcov-report/main/modules/img.ts.html +0 -436
  131. package/coverage/lcov-report/main/modules/index.html +0 -431
  132. package/coverage/lcov-report/main/modules/input.ts.html +0 -826
  133. package/coverage/lcov-report/main/modules/mouse.ts.html +0 -826
  134. package/coverage/lcov-report/main/modules/network.ts.html +0 -1123
  135. package/coverage/lcov-report/main/modules/performance.ts.html +0 -367
  136. package/coverage/lcov-report/main/modules/scroll.ts.html +0 -364
  137. package/coverage/lcov-report/main/modules/selection.ts.html +0 -202
  138. package/coverage/lcov-report/main/modules/tabs.ts.html +0 -124
  139. package/coverage/lcov-report/main/modules/tagWatcher.ts.html +0 -337
  140. package/coverage/lcov-report/main/modules/timing.ts.html +0 -877
  141. package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +0 -370
  142. package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +0 -220
  143. package/coverage/lcov-report/main/modules/userTesting/index.html +0 -191
  144. package/coverage/lcov-report/main/modules/userTesting/index.ts.html +0 -1909
  145. package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +0 -430
  146. package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +0 -937
  147. package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +0 -364
  148. package/coverage/lcov-report/main/modules/viewport.ts.html +0 -250
  149. package/coverage/lcov-report/main/utils.ts.html +0 -814
  150. package/coverage/lcov-report/prettify.css +0 -1
  151. package/coverage/lcov-report/prettify.js +0 -2
  152. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  153. package/coverage/lcov-report/sorter.js +0 -196
  154. package/coverage/lcov-report/webworker/BatchWriter.ts.html +0 -499
  155. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +0 -1021
  156. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +0 -436
  157. package/coverage/lcov-report/webworker/QueueSender.ts.html +0 -547
  158. package/coverage/lcov-report/webworker/index.html +0 -176
  159. package/coverage/lcov-report/webworker/index.ts.html +0 -667
  160. package/coverage/lcov.info +0 -8425
  161. package/jest.config.js +0 -13
  162. package/lib/app/canvas.js +0 -202
  163. package/lib/app/guards.js +0 -26
  164. package/lib/app/index.js +0 -1336
  165. package/lib/app/logger.js +0 -33
  166. package/lib/app/messages.gen.js +0 -622
  167. package/lib/app/nodes.js +0 -107
  168. package/lib/app/observer/iframe_observer.js +0 -29
  169. package/lib/app/observer/iframe_offsets.js +0 -53
  170. package/lib/app/observer/observer.js +0 -349
  171. package/lib/app/observer/shadow_root_observer.js +0 -18
  172. package/lib/app/observer/top_observer.js +0 -128
  173. package/lib/app/sanitizer.js +0 -77
  174. package/lib/app/session.js +0 -137
  175. package/lib/app/ticker.js +0 -45
  176. package/lib/common/interaction.js +0 -1
  177. package/lib/common/messages.gen.js +0 -3
  178. package/lib/common/tsconfig.tsbuildinfo +0 -1
  179. package/lib/index.js +0 -423
  180. package/lib/modules/attributeSender.js +0 -46
  181. package/lib/modules/axiosSpy.js +0 -119
  182. package/lib/modules/conditionsManager.js +0 -340
  183. package/lib/modules/connection.js +0 -12
  184. package/lib/modules/console.js +0 -124
  185. package/lib/modules/constructedStyleSheets.js +0 -133
  186. package/lib/modules/cssrules.js +0 -97
  187. package/lib/modules/exception.js +0 -76
  188. package/lib/modules/featureFlags.js +0 -86
  189. package/lib/modules/focus.js +0 -42
  190. package/lib/modules/fonts.js +0 -54
  191. package/lib/modules/img.js +0 -107
  192. package/lib/modules/input.js +0 -198
  193. package/lib/modules/mouse.js +0 -192
  194. package/lib/modules/network.js +0 -238
  195. package/lib/modules/performance.js +0 -49
  196. package/lib/modules/scroll.js +0 -81
  197. package/lib/modules/selection.js +0 -35
  198. package/lib/modules/tabs.js +0 -10
  199. package/lib/modules/tagWatcher.js +0 -73
  200. package/lib/modules/timing.js +0 -170
  201. package/lib/modules/userTesting/SignalManager.js +0 -80
  202. package/lib/modules/userTesting/dnd.js +0 -37
  203. package/lib/modules/userTesting/index.js +0 -435
  204. package/lib/modules/userTesting/recorder.js +0 -97
  205. package/lib/modules/userTesting/styles.js +0 -263
  206. package/lib/modules/userTesting/utils.js +0 -79
  207. package/lib/modules/viewport.js +0 -40
  208. package/lib/utils.js +0 -211
  209. package/rollup.config.js +0 -12
  210. package/scripts/checkver.cjs +0 -7
  211. package/tsconfig-base.json +0 -16
  212. /package/{cjs → dist/cjs}/common/interaction.d.ts +0 -0
  213. /package/{cjs → dist/cjs}/common/messages.gen.d.ts +0 -0
  214. /package/{cjs → dist/cjs/main}/app/canvas.d.ts +0 -0
  215. /package/{cjs → dist/cjs/main}/app/guards.d.ts +0 -0
  216. /package/{cjs → dist/cjs/main}/app/logger.d.ts +0 -0
  217. /package/{cjs → dist/cjs/main}/app/observer/shadow_root_observer.d.ts +0 -0
  218. /package/{cjs → dist/cjs/main}/app/ticker.d.ts +0 -0
  219. /package/{cjs → dist/cjs/main}/modules/axiosSpy.d.ts +0 -0
  220. /package/{cjs → dist/cjs/main}/modules/connection.d.ts +0 -0
  221. /package/{cjs → dist/cjs/main}/modules/console.d.ts +0 -0
  222. /package/{cjs → dist/cjs/main}/modules/constructedStyleSheets.d.ts +0 -0
  223. /package/{cjs → dist/cjs/main}/modules/cssrules.d.ts +0 -0
  224. /package/{cjs → dist/cjs/main}/modules/exception.d.ts +0 -0
  225. /package/{cjs → dist/cjs/main}/modules/featureFlags.d.ts +0 -0
  226. /package/{cjs → dist/cjs/main}/modules/focus.d.ts +0 -0
  227. /package/{cjs → dist/cjs/main}/modules/fonts.d.ts +0 -0
  228. /package/{cjs → dist/cjs/main}/modules/img.d.ts +0 -0
  229. /package/{cjs → dist/cjs/main}/modules/input.d.ts +0 -0
  230. /package/{cjs → dist/cjs/main}/modules/mouse.d.ts +0 -0
  231. /package/{cjs → dist/cjs/main}/modules/network.d.ts +0 -0
  232. /package/{cjs → dist/cjs/main}/modules/performance.d.ts +0 -0
  233. /package/{cjs → dist/cjs/main}/modules/scroll.d.ts +0 -0
  234. /package/{cjs → dist/cjs/main}/modules/selection.d.ts +0 -0
  235. /package/{cjs → dist/cjs/main}/modules/tabs.d.ts +0 -0
  236. /package/{cjs → dist/cjs/main}/modules/timing.d.ts +0 -0
  237. /package/{cjs → dist/cjs/main}/modules/userTesting/dnd.d.ts +0 -0
  238. /package/{cjs → dist/cjs/main}/modules/userTesting/index.d.ts +0 -0
  239. /package/{cjs → dist/cjs/main}/modules/userTesting/recorder.d.ts +0 -0
  240. /package/{cjs → dist/cjs/main}/modules/userTesting/styles.d.ts +0 -0
  241. /package/{cjs → dist/cjs/main}/modules/userTesting/utils.d.ts +0 -0
  242. /package/{cjs → dist/cjs/main}/modules/viewport.d.ts +0 -0
  243. /package/{lib → dist/lib}/common/interaction.d.ts +0 -0
  244. /package/{lib → dist/lib}/common/messages.gen.d.ts +0 -0
  245. /package/{lib → dist/lib/main}/app/canvas.d.ts +0 -0
  246. /package/{lib → dist/lib/main}/app/guards.d.ts +0 -0
  247. /package/{lib → dist/lib/main}/app/logger.d.ts +0 -0
  248. /package/{lib → dist/lib/main}/app/observer/shadow_root_observer.d.ts +0 -0
  249. /package/{lib → dist/lib/main}/app/ticker.d.ts +0 -0
  250. /package/{lib → dist/lib/main}/modules/axiosSpy.d.ts +0 -0
  251. /package/{lib → dist/lib/main}/modules/connection.d.ts +0 -0
  252. /package/{lib → dist/lib/main}/modules/console.d.ts +0 -0
  253. /package/{lib → dist/lib/main}/modules/constructedStyleSheets.d.ts +0 -0
  254. /package/{lib → dist/lib/main}/modules/cssrules.d.ts +0 -0
  255. /package/{lib → dist/lib/main}/modules/exception.d.ts +0 -0
  256. /package/{lib → dist/lib/main}/modules/featureFlags.d.ts +0 -0
  257. /package/{lib → dist/lib/main}/modules/focus.d.ts +0 -0
  258. /package/{lib → dist/lib/main}/modules/fonts.d.ts +0 -0
  259. /package/{lib → dist/lib/main}/modules/img.d.ts +0 -0
  260. /package/{lib → dist/lib/main}/modules/input.d.ts +0 -0
  261. /package/{lib → dist/lib/main}/modules/mouse.d.ts +0 -0
  262. /package/{lib → dist/lib/main}/modules/network.d.ts +0 -0
  263. /package/{lib → dist/lib/main}/modules/performance.d.ts +0 -0
  264. /package/{lib → dist/lib/main}/modules/scroll.d.ts +0 -0
  265. /package/{lib → dist/lib/main}/modules/selection.d.ts +0 -0
  266. /package/{lib → dist/lib/main}/modules/tabs.d.ts +0 -0
  267. /package/{lib → dist/lib/main}/modules/timing.d.ts +0 -0
  268. /package/{lib → dist/lib/main}/modules/userTesting/dnd.d.ts +0 -0
  269. /package/{lib → dist/lib/main}/modules/userTesting/index.d.ts +0 -0
  270. /package/{lib → dist/lib/main}/modules/userTesting/recorder.d.ts +0 -0
  271. /package/{lib → dist/lib/main}/modules/userTesting/styles.d.ts +0 -0
  272. /package/{lib → dist/lib/main}/modules/userTesting/utils.d.ts +0 -0
  273. /package/{lib → dist/lib/main}/modules/viewport.d.ts +0 -0
@@ -1,1909 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for main/modules/userTesting/index.ts</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">main/modules/userTesting</a> index.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/291</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/148</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/45</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/284</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 low'></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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-no">&nbsp;</span>
676
- <span class="cline-any cline-no">&nbsp;</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-no">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-no">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
719
- <span class="cline-any cline-no">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
721
- <span class="cline-any cline-no">&nbsp;</span>
722
- <span class="cline-any cline-no">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
- <span class="cline-any cline-no">&nbsp;</span>
726
- <span class="cline-any cline-no">&nbsp;</span>
727
- <span class="cline-any cline-no">&nbsp;</span>
728
- <span class="cline-any cline-no">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-no">&nbsp;</span>
732
- <span class="cline-any cline-no">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-no">&nbsp;</span>
736
- <span class="cline-any cline-no">&nbsp;</span>
737
- <span class="cline-any cline-no">&nbsp;</span>
738
- <span class="cline-any cline-no">&nbsp;</span>
739
- <span class="cline-any cline-no">&nbsp;</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-no">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-no">&nbsp;</span>
746
- <span class="cline-any cline-no">&nbsp;</span>
747
- <span class="cline-any cline-no">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-no">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-no">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-no">&nbsp;</span>
776
- <span class="cline-any cline-no">&nbsp;</span>
777
- <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-no">&nbsp;</span>
779
- <span class="cline-any cline-no">&nbsp;</span>
780
- <span class="cline-any cline-no">&nbsp;</span>
781
- <span class="cline-any cline-no">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-no">&nbsp;</span>
784
- <span class="cline-any cline-no">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-no">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-no">&nbsp;</span>
821
- <span class="cline-any cline-no">&nbsp;</span>
822
- <span class="cline-any cline-no">&nbsp;</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-no">&nbsp;</span>
826
- <span class="cline-any cline-no">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-no">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-no">&nbsp;</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-no">&nbsp;</span>
839
- <span class="cline-any cline-no">&nbsp;</span>
840
- <span class="cline-any cline-no">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-no">&nbsp;</span>
854
- <span class="cline-any cline-no">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-no">&nbsp;</span>
869
- <span class="cline-any cline-no">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-no">&nbsp;</span>
872
- <span class="cline-any cline-no">&nbsp;</span>
873
- <span class="cline-any cline-no">&nbsp;</span>
874
- <span class="cline-any cline-no">&nbsp;</span>
875
- <span class="cline-any cline-no">&nbsp;</span>
876
- <span class="cline-any cline-no">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-no">&nbsp;</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-no">&nbsp;</span>
881
- <span class="cline-any cline-no">&nbsp;</span>
882
- <span class="cline-any cline-no">&nbsp;</span>
883
- <span class="cline-any cline-no">&nbsp;</span>
884
- <span class="cline-any cline-no">&nbsp;</span>
885
- <span class="cline-any cline-no">&nbsp;</span>
886
- <span class="cline-any cline-no">&nbsp;</span>
887
- <span class="cline-any cline-no">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-no">&nbsp;</span>
890
- <span class="cline-any cline-no">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-no">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-no">&nbsp;</span>
898
- <span class="cline-any cline-no">&nbsp;</span>
899
- <span class="cline-any cline-no">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-no">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-no">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-no">&nbsp;</span>
919
- <span class="cline-any cline-no">&nbsp;</span>
920
- <span class="cline-any cline-no">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-no">&nbsp;</span>
927
- <span class="cline-any cline-no">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-no">&nbsp;</span>
933
- <span class="cline-any cline-no">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-no">&nbsp;</span>
939
- <span class="cline-any cline-no">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-no">&nbsp;</span>
945
- <span class="cline-any cline-no">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-no">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-no">&nbsp;</span>
954
- <span class="cline-any cline-no">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-no">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-no">&nbsp;</span>
960
- <span class="cline-any cline-no">&nbsp;</span>
961
- <span class="cline-any cline-no">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-no">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-no">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-no">&nbsp;</span>
972
- <span class="cline-any cline-no">&nbsp;</span>
973
- <span class="cline-any cline-no">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-no">&nbsp;</span>
984
- <span class="cline-any cline-no">&nbsp;</span>
985
- <span class="cline-any cline-no">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-no">&nbsp;</span>
994
- <span class="cline-any cline-no">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-no">&nbsp;</span>
997
- <span class="cline-any cline-no">&nbsp;</span>
998
- <span class="cline-any cline-no">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-no">&nbsp;</span>
1001
- <span class="cline-any cline-no">&nbsp;</span>
1002
- <span class="cline-any cline-no">&nbsp;</span>
1003
- <span class="cline-any cline-no">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-no">&nbsp;</span>
1010
- <span class="cline-any cline-no">&nbsp;</span>
1011
- <span class="cline-any cline-no">&nbsp;</span>
1012
- <span class="cline-any cline-no">&nbsp;</span>
1013
- <span class="cline-any cline-no">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-no">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-no">&nbsp;</span>
1020
- <span class="cline-any cline-no">&nbsp;</span>
1021
- <span class="cline-any cline-no">&nbsp;</span>
1022
- <span class="cline-any cline-no">&nbsp;</span>
1023
- <span class="cline-any cline-no">&nbsp;</span>
1024
- <span class="cline-any cline-no">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-no">&nbsp;</span>
1027
- <span class="cline-any cline-no">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-no">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-no">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-no">&nbsp;</span>
1036
- <span class="cline-any cline-no">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-no">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-no">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-no">&nbsp;</span>
1053
- <span class="cline-any cline-no">&nbsp;</span>
1054
- <span class="cline-any cline-no">&nbsp;</span>
1055
- <span class="cline-any cline-no">&nbsp;</span>
1056
- <span class="cline-any cline-no">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-no">&nbsp;</span>
1067
- <span class="cline-any cline-no">&nbsp;</span>
1068
- <span class="cline-any cline-no">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-no">&nbsp;</span>
1072
- <span class="cline-any cline-no">&nbsp;</span>
1073
- <span class="cline-any cline-no">&nbsp;</span>
1074
- <span class="cline-any cline-no">&nbsp;</span>
1075
- <span class="cline-any cline-no">&nbsp;</span>
1076
- <span class="cline-any cline-no">&nbsp;</span>
1077
- <span class="cline-any cline-no">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-no">&nbsp;</span>
1081
- <span class="cline-any cline-no">&nbsp;</span>
1082
- <span class="cline-any cline-no">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-no">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-no">&nbsp;</span>
1096
- <span class="cline-any cline-no">&nbsp;</span>
1097
- <span class="cline-any cline-no">&nbsp;</span>
1098
- <span class="cline-any cline-no">&nbsp;</span>
1099
- <span class="cline-any cline-no">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-no">&nbsp;</span>
1102
- <span class="cline-any cline-no">&nbsp;</span>
1103
- <span class="cline-any cline-no">&nbsp;</span>
1104
- <span class="cline-any cline-no">&nbsp;</span>
1105
- <span class="cline-any cline-no">&nbsp;</span>
1106
- <span class="cline-any cline-no">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-no">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-no">&nbsp;</span>
1114
- <span class="cline-any cline-no">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-neutral">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-no">&nbsp;</span>
1131
- <span class="cline-any cline-no">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-no">&nbsp;</span>
1136
- <span class="cline-any cline-no">&nbsp;</span>
1137
- <span class="cline-any cline-no">&nbsp;</span>
1138
- <span class="cline-any cline-no">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-no">&nbsp;</span>
1144
- <span class="cline-any cline-no">&nbsp;</span>
1145
- <span class="cline-any cline-no">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-no">&nbsp;</span>
1149
- <span class="cline-any cline-no">&nbsp;</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-no">&nbsp;</span>
1152
- <span class="cline-any cline-no">&nbsp;</span>
1153
- <span class="cline-any cline-no">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-no">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-no">&nbsp;</span>
1159
- <span class="cline-any cline-no">&nbsp;</span>
1160
- <span class="cline-any cline-no">&nbsp;</span>
1161
- <span class="cline-any cline-no">&nbsp;</span>
1162
- <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-no">&nbsp;</span>
1164
- <span class="cline-any cline-no">&nbsp;</span>
1165
- <span class="cline-any cline-no">&nbsp;</span>
1166
- <span class="cline-any cline-no">&nbsp;</span>
1167
- <span class="cline-any cline-neutral">&nbsp;</span>
1168
- <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-neutral">&nbsp;</span>
1170
- <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-no">&nbsp;</span>
1172
- <span class="cline-any cline-no">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-no">&nbsp;</span>
1175
- <span class="cline-any cline-no">&nbsp;</span>
1176
- <span class="cline-any cline-no">&nbsp;</span>
1177
- <span class="cline-any cline-no">&nbsp;</span>
1178
- <span class="cline-any cline-no">&nbsp;</span>
1179
- <span class="cline-any cline-no">&nbsp;</span>
1180
- <span class="cline-any cline-no">&nbsp;</span>
1181
- <span class="cline-any cline-no">&nbsp;</span>
1182
- <span class="cline-any cline-no">&nbsp;</span>
1183
- <span class="cline-any cline-neutral">&nbsp;</span>
1184
- <span class="cline-any cline-no">&nbsp;</span>
1185
- <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-no">&nbsp;</span>
1187
- <span class="cline-any cline-neutral">&nbsp;</span>
1188
- <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-no">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-no">&nbsp;</span>
1193
- <span class="cline-any cline-no">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-no">&nbsp;</span>
1196
- <span class="cline-any cline-neutral">&nbsp;</span>
1197
- <span class="cline-any cline-no">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-no">&nbsp;</span>
1201
- <span class="cline-any cline-no">&nbsp;</span>
1202
- <span class="cline-any cline-no">&nbsp;</span>
1203
- <span class="cline-any cline-no">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-no">&nbsp;</span>
1206
- <span class="cline-any cline-no">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-no">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-no">&nbsp;</span>
1213
- <span class="cline-any cline-no">&nbsp;</span>
1214
- <span class="cline-any cline-no">&nbsp;</span>
1215
- <span class="cline-any cline-no">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-neutral">&nbsp;</span>
1221
- <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-neutral">&nbsp;</span>
1224
- <span class="cline-any cline-no">&nbsp;</span>
1225
- <span class="cline-any cline-neutral">&nbsp;</span>
1226
- <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-neutral">&nbsp;</span>
1228
- <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-neutral">&nbsp;</span>
1230
- <span class="cline-any cline-neutral">&nbsp;</span>
1231
- <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-no">&nbsp;</span>
1234
- <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-neutral">&nbsp;</span>
1236
- <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-neutral">&nbsp;</span>
1238
- <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-no">&nbsp;</span>
1240
- <span class="cline-any cline-no">&nbsp;</span>
1241
- <span class="cline-any cline-neutral">&nbsp;</span>
1242
- <span class="cline-any cline-no">&nbsp;</span>
1243
- <span class="cline-any cline-no">&nbsp;</span>
1244
- <span class="cline-any cline-neutral">&nbsp;</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-no">&nbsp;</span>
1247
- <span class="cline-any cline-no">&nbsp;</span>
1248
- <span class="cline-any cline-no">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-no">&nbsp;</span>
1252
- <span class="cline-any cline-no">&nbsp;</span>
1253
- <span class="cline-any cline-no">&nbsp;</span>
1254
- <span class="cline-any cline-no">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-neutral">&nbsp;</span>
1257
- <span class="cline-any cline-no">&nbsp;</span>
1258
- <span class="cline-any cline-no">&nbsp;</span>
1259
- <span class="cline-any cline-no">&nbsp;</span>
1260
- <span class="cline-any cline-neutral">&nbsp;</span>
1261
- <span class="cline-any cline-neutral">&nbsp;</span>
1262
- <span class="cline-any cline-no">&nbsp;</span>
1263
- <span class="cline-any cline-no">&nbsp;</span>
1264
- <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-no">&nbsp;</span>
1266
- <span class="cline-any cline-no">&nbsp;</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-no">&nbsp;</span>
1269
- <span class="cline-any cline-no">&nbsp;</span>
1270
- <span class="cline-any cline-neutral">&nbsp;</span>
1271
- <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-no">&nbsp;</span>
1273
- <span class="cline-any cline-no">&nbsp;</span>
1274
- <span class="cline-any cline-no">&nbsp;</span>
1275
- <span class="cline-any cline-no">&nbsp;</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-no">&nbsp;</span>
1278
- <span class="cline-any cline-no">&nbsp;</span>
1279
- <span class="cline-any cline-no">&nbsp;</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import App from '../../app/index.js'
1283
- <span class="cstat-no" title="statement not covered" >import * as styles from './styles.js'</span>
1284
- <span class="cstat-no" title="statement not covered" >import Recorder, { Quality } from './recorder.js'</span>
1285
- <span class="cstat-no" title="statement not covered" >import attachDND from './dnd.js'</span>
1286
- <span class="cstat-no" title="statement not covered" >import {</span>
1287
- generateGrid,
1288
- generateChevron,
1289
- createSpinner,
1290
- createElement,
1291
- TEST_START,
1292
- TASK_IND,
1293
- SESSION_ID,
1294
- TEST_ID,
1295
- } from './utils.js'
1296
- <span class="cstat-no" title="statement not covered" >import SignalManager from './SignalManager.js'</span>
1297
- &nbsp;
1298
- interface Test {
1299
- title: string
1300
- description: string
1301
- startingPath: string
1302
- status: string
1303
- reqMic: boolean
1304
- reqCamera: boolean
1305
- guidelines: string
1306
- conclusion: string
1307
- tasks: {
1308
- task_id: number
1309
- title: string
1310
- description: string
1311
- allow_typing: boolean
1312
- }[]
1313
- }
1314
- &nbsp;
1315
- <span class="cstat-no" title="statement not covered" >export default class U</span>serTestManager {
1316
- private readonly userRecorder: Recorder
1317
- private readonly <span class="cstat-no" title="statement not covered" >bg = createElement('div', 'bg', styles.bgStyle, undefined, '__or_ut_bg')</span>
1318
- private readonly <span class="cstat-no" title="statement not covered" >container = createElement(</span>
1319
- 'div',
1320
- 'container',
1321
- styles.containerStyle,
1322
- undefined,
1323
- '__or_ut_ct',
1324
- )
1325
- private <span class="cstat-no" title="statement not covered" >widgetGuidelinesVisible = true</span>
1326
- private <span class="cstat-no" title="statement not covered" >widgetTasksVisible = false</span>
1327
- private <span class="cstat-no" title="statement not covered" >widgetVisible = true</span>
1328
- public <span class="cstat-no" title="statement not covered" >isActive = false</span>
1329
- private <span class="cstat-no" title="statement not covered" >descriptionSection: HTMLElement | null = null</span>
1330
- private <span class="cstat-no" title="statement not covered" >taskSection: HTMLElement | null = null</span>
1331
- private <span class="cstat-no" title="statement not covered" >endSection: HTMLElement | null = null</span>
1332
- private <span class="cstat-no" title="statement not covered" >stopButton: HTMLElement | null = null</span>
1333
- private <span class="cstat-no" title="statement not covered" >stopButtonContainer: HTMLElement | null = null</span>
1334
- private <span class="cstat-no" title="statement not covered" >test: Test | null = null</span>
1335
- private <span class="cstat-no" title="statement not covered" >testId: number | null = null</span>
1336
- private <span class="cstat-no" title="statement not covered" >signalManager: SignalManager | null = null</span>
1337
- &nbsp;
1338
- <span class="fstat-no" title="function not covered" > constructor(</span>
1339
- private readonly <span class="cstat-no" title="statement not covered" >app: App,</span>
1340
- private readonly <span class="cstat-no" title="statement not covered" >storageKey: string,</span>
1341
- ) {
1342
- <span class="cstat-no" title="statement not covered" > this.userRecorder = new Recorder(app)</span>
1343
- const sessionId = <span class="cstat-no" title="statement not covered" >this.app.getSessionID()</span>
1344
- const savedSessionId = <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(SESSION_ID)</span>
1345
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (sessionId !== savedSessionId) {</span>
1346
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(this.storageKey)</span>
1347
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(SESSION_ID)</span>
1348
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TEST_ID)</span>
1349
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TASK_IND)</span>
1350
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TEST_START)</span>
1351
- }
1352
- &nbsp;
1353
- const taskIndex = <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(TASK_IND)</span>
1354
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (taskIndex) {</span>
1355
- <span class="cstat-no" title="statement not covered" > this.currentTaskIndex = parseInt(taskIndex, 10)</span>
1356
- }
1357
- }
1358
- &nbsp;
1359
- public <span class="fstat-no" title="function not covered" >getTestId(</span>) {
1360
- <span class="cstat-no" title="statement not covered" > return this.testId</span>
1361
- }
1362
- &nbsp;
1363
- <span class="cstat-no" title="statement not covered" > getTest = <span class="fstat-no" title="function not covered" >(i</span>d: number, token: string, inProgress?: boolean) =&gt; {</span>
1364
- <span class="cstat-no" title="statement not covered" > this.testId = id</span>
1365
- const ingest = <span class="cstat-no" title="statement not covered" >this.app.options.ingestPoint</span>
1366
- <span class="cstat-no" title="statement not covered" > return fetch(`${ingest}/v1/web/uxt/test/${id}`, {</span>
1367
- headers: {
1368
- Authorization: `Bearer ${token}`,
1369
- },
1370
- })
1371
- .then(<span class="fstat-no" title="function not covered" >(r</span>es) =&gt; <span class="cstat-no" title="statement not covered" >res.json())</span>
1372
- .then(<span class="fstat-no" title="function not covered" >({</span> test }: { test: Test }) =&gt; {
1373
- <span class="cstat-no" title="statement not covered" > this.isActive = true</span>
1374
- <span class="cstat-no" title="statement not covered" > this.test = test</span>
1375
- <span class="cstat-no" title="statement not covered" > this.signalManager = new SignalManager(</span>
1376
- this.app.options.ingestPoint,
1377
- <span class="fstat-no" title="function not covered" > () =</span>&gt; <span class="cstat-no" title="statement not covered" >this.app.timestamp(),</span>
1378
- token,
1379
- id,
1380
- this.storageKey,
1381
- <span class="fstat-no" title="function not covered" > (k</span>: string, v: string) =&gt; <span class="cstat-no" title="statement not covered" >this.app.localStorage.setItem(k, v),</span>
1382
- <span class="fstat-no" title="function not covered" > (k</span>) =&gt; <span class="cstat-no" title="statement not covered" >this.app.localStorage.removeItem(k),</span>
1383
- <span class="fstat-no" title="function not covered" > (k</span>) =&gt; <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(k),</span>
1384
- <span class="fstat-no" title="function not covered" > () =</span>&gt; <span class="cstat-no" title="statement not covered" >this.app.getSessionID(),</span>
1385
- )
1386
- <span class="cstat-no" title="statement not covered" > this.createGreeting(test.title, test.reqMic, test.reqCamera)</span>
1387
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (inProgress) {</span>
1388
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (test.reqMic || test.reqCamera) {</span>
1389
- <span class="cstat-no" title="statement not covered" > void this.userRecorder.startRecording(30, Quality.Standard, test.reqMic, test.reqCamera)</span>
1390
- }
1391
- <span class="cstat-no" title="statement not covered" > this.showWidget(test.description, test.tasks, true)</span>
1392
- <span class="cstat-no" title="statement not covered" > this.showTaskSection()</span>
1393
- }
1394
- })
1395
- .then(<span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >id)</span>
1396
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rr) =&gt; {
1397
- <span class="cstat-no" title="statement not covered" > console.log('OR: Error fetching test', err)</span>
1398
- })
1399
- }
1400
- &nbsp;
1401
- <span class="cstat-no" title="statement not covered" > hideTaskSection = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >false</span></span>
1402
- <span class="cstat-no" title="statement not covered" > showTaskSection = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >true</span></span>
1403
- <span class="cstat-no" title="statement not covered" > collapseWidget = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >false</span></span>
1404
- <span class="cstat-no" title="statement not covered" > removeGreeting = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >false</span></span>
1405
- &nbsp;
1406
- <span class="fstat-no" title="function not covered" > createGreeting(</span>title: string, micRequired: boolean, cameraRequired: boolean) {
1407
- const titleElement = <span class="cstat-no" title="statement not covered" >createElement('div', 'title', styles.titleStyle, title)</span>
1408
- const descriptionElement = <span class="cstat-no" title="statement not covered" >createElement(</span>
1409
- 'div',
1410
- 'description',
1411
- styles.descriptionStyle,
1412
- `Welcome, you're here to help us improve, not to be judged. Your insights matter!\n
1413
- 📹 We're recording this browser tab to learn from your experience.
1414
- 🎤 Please enable mic and camera if asked, to give us a complete picture.`,
1415
- )
1416
- const buttonElement = <span class="cstat-no" title="statement not covered" >createElement(</span>
1417
- 'div',
1418
- 'button',
1419
- styles.buttonStyle,
1420
- 'Read guidelines to begin',
1421
- )
1422
- &nbsp;
1423
- <span class="cstat-no" title="statement not covered" > this.removeGreeting = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1424
- // this.container.innerHTML = ''
1425
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (micRequired || cameraRequired) {</span>
1426
- <span class="cstat-no" title="statement not covered" > void this.userRecorder.startRecording(30, Quality.Standard, micRequired, cameraRequired)</span>
1427
- }
1428
- <span class="cstat-no" title="statement not covered" > this.container.removeChild(buttonElement)</span>
1429
- <span class="cstat-no" title="statement not covered" > this.container.removeChild(descriptionElement)</span>
1430
- <span class="cstat-no" title="statement not covered" > this.container.removeChild(titleElement)</span>
1431
- <span class="cstat-no" title="statement not covered" > return false</span>
1432
- }
1433
- <span class="cstat-no" title="statement not covered" > buttonElement.onclick = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1434
- <span class="cstat-no" title="statement not covered" > this.removeGreeting()</span>
1435
- const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
1436
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (durations &amp;&amp; this.signalManager) {</span>
1437
- <span class="cstat-no" title="statement not covered" > durations.testStart = this.app.timestamp()</span>
1438
- <span class="cstat-no" title="statement not covered" > this.signalManager.setDurations(durations)</span>
1439
- }
1440
- <span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('begin')</span>
1441
- <span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
1442
- <span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
1443
- <span class="cstat-no" title="statement not covered" > this.showWidget(this.test?.guidelines || '', this.test?.tasks || [])</span>
1444
- }
1445
- &nbsp;
1446
- <span class="cstat-no" title="statement not covered" > this.container.append(titleElement, descriptionElement, buttonElement)</span>
1447
- <span class="cstat-no" title="statement not covered" > this.bg.appendChild(this.container)</span>
1448
- <span class="cstat-no" title="statement not covered" > document.body.appendChild(this.bg)</span>
1449
- }
1450
- &nbsp;
1451
- <span class="fstat-no" title="function not covered" > showWidget(</span>
1452
- guidelines: string,
1453
- tasks: {
1454
- title: string
1455
- description: string
1456
- task_id: number
1457
- allow_typing: boolean
1458
- }[],
1459
- inProgress?: boolean,
1460
- ) {
1461
- <span class="cstat-no" title="statement not covered" > this.container.innerHTML = ''</span>
1462
- <span class="cstat-no" title="statement not covered" > Object.assign(this.bg.style, {</span>
1463
- position: 'fixed',
1464
- zIndex: 99999999999999,
1465
- right: '8px',
1466
- left: 'unset',
1467
- width: 'fit-content',
1468
- top: '8px',
1469
- height: 'fit-content',
1470
- background: 'unset',
1471
- display: 'unset',
1472
- alignItems: 'unset',
1473
- justifyContent: 'unset',
1474
- })
1475
- // Create title section
1476
- const titleSection = <span class="cstat-no" title="statement not covered" >this.createTitleSection()</span>
1477
- <span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
1478
- <span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
1479
- const descriptionSection = <span class="cstat-no" title="statement not covered" >this.createDescriptionSection(guidelines)</span>
1480
- const tasksSection = <span class="cstat-no" title="statement not covered" >this.createTasksSection(tasks)</span>
1481
- const stopButton = <span class="cstat-no" title="statement not covered" >createElement('div', 'stop_bn_or', styles.stopWidgetStyle, 'Abort Session')</span>
1482
- const stopContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'stop_ct_or', { fontSize: '13px!important' })</span>
1483
- <span class="cstat-no" title="statement not covered" > stopContainer.style.fontSize = '13px'</span>
1484
- <span class="cstat-no" title="statement not covered" > stopContainer.append(stopButton)</span>
1485
- &nbsp;
1486
- <span class="cstat-no" title="statement not covered" > this.container.append(titleSection, descriptionSection, tasksSection, stopContainer)</span>
1487
- <span class="cstat-no" title="statement not covered" > this.taskSection = tasksSection</span>
1488
- <span class="cstat-no" title="statement not covered" > this.descriptionSection = descriptionSection</span>
1489
- <span class="cstat-no" title="statement not covered" > this.stopButton = stopButton</span>
1490
- <span class="cstat-no" title="statement not covered" > this.stopButtonContainer = stopContainer</span>
1491
- <span class="cstat-no" title="statement not covered" > stopButton.onclick = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1492
- <span class="cstat-no" title="statement not covered" > this.userRecorder.discard()</span>
1493
- <span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('skipped')</span>
1494
- <span class="cstat-no" title="statement not covered" > document.body.removeChild(this.bg)</span>
1495
- <span class="cstat-no" title="statement not covered" > window.close()</span>
1496
- }
1497
- <span class="cstat-no" title="statement not covered" > if (!inProgress) {</span>
1498
- <span class="cstat-no" title="statement not covered" > this.hideTaskSection()</span>
1499
- } else {
1500
- <span class="cstat-no" title="statement not covered" > this.toggleDescriptionVisibility()</span>
1501
- }
1502
- }
1503
- &nbsp;
1504
- <span class="fstat-no" title="function not covered" > createTitleSection(</span>) {
1505
- const title = <span class="cstat-no" title="statement not covered" >createElement('div', 'title', styles.titleWidgetStyle)</span>
1506
- const leftIcon = <span class="cstat-no" title="statement not covered" >generateGrid()</span>
1507
- const titleText = <span class="cstat-no" title="statement not covered" >createElement(</span>
1508
- 'div',
1509
- 'title_text',
1510
- {
1511
- maxWidth: '19rem',
1512
- overflow: 'hidden',
1513
- textOverflow: 'ellipsis',
1514
- width: '100%',
1515
- fontSize: 16,
1516
- lineHeight: 'auto',
1517
- cursor: 'pointer',
1518
- },
1519
- this.test?.title,
1520
- )
1521
- const rightIcon = <span class="cstat-no" title="statement not covered" >generateChevron()</span>
1522
- &nbsp;
1523
- <span class="cstat-no" title="statement not covered" > title.append(leftIcon, titleText, rightIcon)</span>
1524
- &nbsp;
1525
- const toggleWidget = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>sVisible: boolean) =&gt; {</span>
1526
- <span class="cstat-no" title="statement not covered" > this.widgetVisible = isVisible</span>
1527
- <span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
1528
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1529
- this.container.style,
1530
- this.widgetVisible
1531
- ? styles.containerWidgetStyle
1532
- : { border: 'none', background: 'none', padding: 0 },
1533
- )
1534
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.taskSection) {</span>
1535
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1536
- this.taskSection.style,
1537
- this.widgetVisible ? styles.descriptionWidgetStyle : { display: 'none' },
1538
- )
1539
- }
1540
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.descriptionSection) {</span>
1541
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1542
- this.descriptionSection.style,
1543
- this.widgetVisible ? styles.descriptionWidgetStyle : { display: 'none' },
1544
- )
1545
- }
1546
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.endSection) {</span>
1547
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1548
- this.endSection.style,
1549
- this.widgetVisible ? styles.descriptionWidgetStyle : { display: 'none' },
1550
- )
1551
- }
1552
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.stopButton) {</span>
1553
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1554
- this.stopButton.style,
1555
- this.widgetVisible ? styles.stopWidgetStyle : { display: 'none' },
1556
- )
1557
- }
1558
- <span class="cstat-no" title="statement not covered" > return isVisible</span>
1559
- }
1560
- &nbsp;
1561
- const collapseWidget = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1562
- <span class="cstat-no" title="statement not covered" > Object.assign(rightIcon.style, {</span>
1563
- transform: this.widgetVisible ? 'rotate(0deg)' : 'rotate(180deg)',
1564
- })
1565
- <span class="cstat-no" title="statement not covered" > toggleWidget(!this.widgetVisible)</span>
1566
- }
1567
- <span class="cstat-no" title="statement not covered" > titleText.onclick = collapseWidget</span>
1568
- <span class="cstat-no" title="statement not covered" > rightIcon.onclick = collapseWidget</span>
1569
- <span class="cstat-no" title="statement not covered" > attachDND(this.bg, leftIcon)</span>
1570
- &nbsp;
1571
- <span class="cstat-no" title="statement not covered" > this.collapseWidget = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >toggleWidget(false)</span></span>
1572
- <span class="cstat-no" title="statement not covered" > return title</span>
1573
- }
1574
- &nbsp;
1575
- // eslint-disable-next-line @typescript-eslint/no-empty-function
1576
- <span class="cstat-no" title="statement not covered" > toggleDescriptionVisibility = <span class="fstat-no" title="function not covered" >() =</span>&gt; {}</span>
1577
- &nbsp;
1578
- <span class="fstat-no" title="function not covered" > createDescriptionSection(</span>guidelines: string) {
1579
- const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_section_or', styles.descriptionWidgetStyle)</span>
1580
- const titleContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_s_title_or', styles.sectionTitleStyle)</span>
1581
- const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
1582
- 'div',
1583
- 'title',
1584
- {
1585
- fontSize: 13,
1586
- fontWeight: 500,
1587
- lineHeight: 'auto',
1588
- },
1589
- 'Introduction &amp; Guidelines',
1590
- )
1591
- const icon = <span class="cstat-no" title="statement not covered" >createElement('div', 'icon', styles.symbolIcon, '-')</span>
1592
- const content = <span class="cstat-no" title="statement not covered" >createElement('div', 'content', styles.contentStyle)</span>
1593
- const descriptionC = <span class="cstat-no" title="statement not covered" >createElement('div', 'text_description', {</span>
1594
- maxHeight: '250px',
1595
- overflowY: 'auto',
1596
- whiteSpace: 'pre-wrap',
1597
- fontSize: 13,
1598
- color: '#454545',
1599
- lineHeight: 'auto',
1600
- })
1601
- <span class="cstat-no" title="statement not covered" > descriptionC.innerHTML = guidelines</span>
1602
- const button = <span class="cstat-no" title="statement not covered" >createElement('div', 'button_begin_or', styles.buttonWidgetStyle, 'Begin Test')</span>
1603
- &nbsp;
1604
- <span class="cstat-no" title="statement not covered" > titleContainer.append(title, icon)</span>
1605
- <span class="cstat-no" title="statement not covered" > content.append(descriptionC, button)</span>
1606
- <span class="cstat-no" title="statement not covered" > section.append(titleContainer, content)</span>
1607
- &nbsp;
1608
- const toggleDescriptionVisibility = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1609
- <span class="cstat-no" title="statement not covered" > this.widgetGuidelinesVisible = !this.widgetGuidelinesVisible</span>
1610
- <span class="cstat-no" title="statement not covered" > icon.textContent = this.widgetGuidelinesVisible ? '-' : '+'</span>
1611
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1612
- content.style,
1613
- this.widgetGuidelinesVisible ? styles.contentStyle : { display: 'none' },
1614
- )
1615
- }
1616
- &nbsp;
1617
- <span class="cstat-no" title="statement not covered" > titleContainer.onclick = toggleDescriptionVisibility</span>
1618
- <span class="cstat-no" title="statement not covered" > this.toggleDescriptionVisibility = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1619
- <span class="cstat-no" title="statement not covered" > this.widgetGuidelinesVisible = false</span>
1620
- <span class="cstat-no" title="statement not covered" > icon.textContent = this.widgetGuidelinesVisible ? '-' : '+'</span>
1621
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1622
- content.style,
1623
- this.widgetGuidelinesVisible ? styles.contentStyle : { display: 'none' },
1624
- )
1625
- <span class="cstat-no" title="statement not covered" > content.removeChild(button)</span>
1626
- }
1627
- <span class="cstat-no" title="statement not covered" > button.onclick = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1628
- <span class="cstat-no" title="statement not covered" > toggleDescriptionVisibility()</span>
1629
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.test) {</span>
1630
- const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
1631
- const taskDurationInd = <span class="cstat-no" title="statement not covered" >durations</span>
1632
- ? durations.tasks.findIndex(<span class="fstat-no" title="function not covered" >(t</span>) =&gt; <span class="cstat-no" title="statement not covered" >this.test &amp;&amp; t.taskId === this.test.tasks[0].task_id)</span>
1633
- : null
1634
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (durations &amp;&amp; taskDurationInd === -1) {</span>
1635
- <span class="cstat-no" title="statement not covered" > durations.tasks.push({</span>
1636
- taskId: this.test.tasks[0].task_id,
1637
- started: this.app.timestamp(),
1638
- })
1639
- <span class="cstat-no" title="statement not covered" > this.signalManager?.setDurations(durations)</span>
1640
- }
1641
- <span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(this.test.tasks[0].task_id, 'begin')</span>
1642
- }
1643
- <span class="cstat-no" title="statement not covered" > this.showTaskSection()</span>
1644
- <span class="cstat-no" title="statement not covered" > content.removeChild(button)</span>
1645
- }
1646
- &nbsp;
1647
- <span class="cstat-no" title="statement not covered" > return section</span>
1648
- }
1649
- &nbsp;
1650
- <span class="cstat-no" title="statement not covered" > currentTaskIndex = 0</span>
1651
- &nbsp;
1652
- <span class="fstat-no" title="function not covered" > createTasksSection(</span>
1653
- tasks: {
1654
- title: string
1655
- description: string
1656
- task_id: number
1657
- allow_typing: boolean
1658
- }[],
1659
- ) {
1660
- <span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
1661
- <span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
1662
- const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'task_section_or', styles.descriptionWidgetStyle)</span>
1663
- const titleContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_t_title_or', styles.sectionTitleStyle)</span>
1664
- const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
1665
- 'div',
1666
- 'title',
1667
- {
1668
- fontSize: '13px',
1669
- fontWeight: '500',
1670
- lineHeight: 'auto',
1671
- },
1672
- 'Tasks',
1673
- )
1674
- const icon = <span class="cstat-no" title="statement not covered" >createElement('div', 'icon', styles.symbolIcon, '-')</span>
1675
- const content = <span class="cstat-no" title="statement not covered" >createElement('div', 'content', styles.contentStyle)</span>
1676
- const pagination = <span class="cstat-no" title="statement not covered" >createElement('div', 'pagination', styles.paginationStyle)</span>
1677
- // const leftArrow = createElement('span', 'leftArrow', {}, '&lt;')
1678
- // const rightArrow = createElement('span', 'rightArrow', {}, '&gt;')
1679
- const taskCard = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskCard', styles.taskDescriptionCard)</span>
1680
- const taskText = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskText', styles.taskTextStyle)</span>
1681
- const taskDescription = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskDescription', styles.taskDescriptionStyle)</span>
1682
- const taskButtons = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskButtons', styles.taskButtonsRow)</span>
1683
- const inputTitle = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskText', styles.taskTextStyle)</span>
1684
- <span class="cstat-no" title="statement not covered" > inputTitle.textContent = 'Your answer'</span>
1685
- const inputArea = <span class="cstat-no" title="statement not covered" >createElement('textarea', 'taskDescription', {</span>
1686
- resize: 'vertical',
1687
- }) as HTMLTextAreaElement
1688
- const inputContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'inputArea', styles.taskDescriptionCard)</span>
1689
- <span class="cstat-no" title="statement not covered" > inputContainer.append(inputTitle, inputArea)</span>
1690
- const closePanelButton = <span class="cstat-no" title="statement not covered" >createElement(</span>
1691
- 'div',
1692
- 'closePanelButton',
1693
- styles.taskButtonStyle,
1694
- 'Collapse Panel',
1695
- )
1696
- const nextButton = <span class="cstat-no" title="statement not covered" >createElement(</span>
1697
- 'div',
1698
- 'nextButton',
1699
- styles.taskButtonBorderedStyle,
1700
- 'Done, Next',
1701
- )
1702
- &nbsp;
1703
- <span class="cstat-no" title="statement not covered" > titleContainer.append(title, icon)</span>
1704
- <span class="cstat-no" title="statement not covered" > taskCard.append(taskText, taskDescription)</span>
1705
- <span class="cstat-no" title="statement not covered" > taskButtons.append(closePanelButton, nextButton)</span>
1706
- <span class="cstat-no" title="statement not covered" > content.append(pagination, taskCard, inputContainer, taskButtons)</span>
1707
- <span class="cstat-no" title="statement not covered" > section.append(titleContainer, content)</span>
1708
- &nbsp;
1709
- const updateTaskContent = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1710
- const task = <span class="cstat-no" title="statement not covered" >tasks[this.currentTaskIndex]</span>
1711
- <span class="cstat-no" title="statement not covered" > taskText.textContent = task.title</span>
1712
- <span class="cstat-no" title="statement not covered" > taskDescription.textContent = task.description</span>
1713
- <span class="cstat-no" title="statement not covered" > if (task.allow_typing) {</span>
1714
- <span class="cstat-no" title="statement not covered" > inputContainer.style.display = 'flex'</span>
1715
- } else {
1716
- <span class="cstat-no" title="statement not covered" > inputContainer.style.display = 'none'</span>
1717
- }
1718
- }
1719
- &nbsp;
1720
- // pagination.appendChild(leftArrow)
1721
- <span class="cstat-no" title="statement not covered" > tasks.forEach(<span class="fstat-no" title="function not covered" >(_</span>, index) =&gt; {</span>
1722
- const pageNumber = <span class="cstat-no" title="statement not covered" >createElement(</span>
1723
- 'span',
1724
- `or_task_${index}`,
1725
- {
1726
- outline: '1px solid #efefef',
1727
- fontSize: '13px',
1728
- height: '24px',
1729
- width: '24px',
1730
- display: 'flex',
1731
- flexDirection: 'column',
1732
- alignItems: 'center',
1733
- justifyContent: 'center',
1734
- borderRadius: '6.25em',
1735
- },
1736
- (index + 1).toString(),
1737
- )
1738
- <span class="cstat-no" title="statement not covered" > pageNumber.id = `or_task_${index}`</span>
1739
- <span class="cstat-no" title="statement not covered" > pagination.append(pageNumber)</span>
1740
- })
1741
- // pagination.appendChild(rightArrow)
1742
- &nbsp;
1743
- const toggleTasksVisibility = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1744
- <span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = !this.widgetTasksVisible</span>
1745
- <span class="cstat-no" title="statement not covered" > icon.textContent = this.widgetTasksVisible ? '-' : '+'</span>
1746
- <span class="cstat-no" title="statement not covered" > Object.assign(</span>
1747
- content.style,
1748
- this.widgetTasksVisible ? styles.contentStyle : { display: 'none' },
1749
- )
1750
- }
1751
- <span class="cstat-no" title="statement not covered" > this.hideTaskSection = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1752
- <span class="cstat-no" title="statement not covered" > icon.textContent = '+'</span>
1753
- <span class="cstat-no" title="statement not covered" > Object.assign(content.style, {</span>
1754
- display: 'none',
1755
- })
1756
- <span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = false</span>
1757
- <span class="cstat-no" title="statement not covered" > return false</span>
1758
- }
1759
- <span class="cstat-no" title="statement not covered" > this.showTaskSection = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1760
- <span class="cstat-no" title="statement not covered" > icon.textContent = '-'</span>
1761
- <span class="cstat-no" title="statement not covered" > Object.assign(content.style, styles.contentStyle)</span>
1762
- <span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = true</span>
1763
- <span class="cstat-no" title="statement not covered" > return true</span>
1764
- }
1765
- &nbsp;
1766
- const highlightActive = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1767
- const activeTaskEl = <span class="cstat-no" title="statement not covered" >document.getElementById(`or_task_${this.currentTaskIndex}`)</span>
1768
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (activeTaskEl) {</span>
1769
- <span class="cstat-no" title="statement not covered" > Object.assign(activeTaskEl.style, styles.taskNumberActive)</span>
1770
- }
1771
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; this.currentTaskIndex; i++) {</span>
1772
- const taskEl = <span class="cstat-no" title="statement not covered" >document.getElementById(`or_task_${i}`)</span>
1773
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (taskEl) {</span>
1774
- <span class="cstat-no" title="statement not covered" > Object.assign(taskEl.style, styles.taskNumberDone)</span>
1775
- }
1776
- }
1777
- }
1778
- &nbsp;
1779
- <span class="cstat-no" title="statement not covered" > titleContainer.onclick = toggleTasksVisibility</span>
1780
- <span class="cstat-no" title="statement not covered" > closePanelButton.onclick = this.collapseWidget</span>
1781
- &nbsp;
1782
- <span class="cstat-no" title="statement not covered" > nextButton.onclick = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1783
- const textAnswer = <span class="cstat-no" title="statement not covered" >tasks[this.currentTaskIndex].allow_typing ? inputArea.value : undefined</span>
1784
- <span class="cstat-no" title="statement not covered" > inputArea.value = ''</span>
1785
- <span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(tasks[this.currentTaskIndex].task_id, 'done', textAnswer)</span>
1786
- <span class="cstat-no" title="statement not covered" > if (this.currentTaskIndex &lt; tasks.length - 1) {</span>
1787
- <span class="cstat-no" title="statement not covered" > this.currentTaskIndex++</span>
1788
- <span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
1789
- const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
1790
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
1791
- durations &amp;&amp;
1792
- durations.tasks.findIndex(<span class="fstat-no" title="function not covered" >(t</span>) =&gt; <span class="cstat-no" title="statement not covered" >t.taskId === tasks[this.currentTaskIndex].task_id)</span> === -1
1793
- ) {
1794
- <span class="cstat-no" title="statement not covered" > durations.tasks.push({</span>
1795
- taskId: tasks[this.currentTaskIndex].task_id,
1796
- started: this.app.timestamp(),
1797
- })
1798
- <span class="cstat-no" title="statement not covered" > this.signalManager?.setDurations(durations)</span>
1799
- }
1800
- <span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(tasks[this.currentTaskIndex].task_id, 'begin')</span>
1801
- <span class="cstat-no" title="statement not covered" > highlightActive()</span>
1802
- } else {
1803
- <span class="cstat-no" title="statement not covered" > this.showEndSection()</span>
1804
- }
1805
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.setItem('or_uxt_task_index', this.currentTaskIndex.toString())</span>
1806
- }
1807
- &nbsp;
1808
- <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1809
- const firstTaskEl = <span class="cstat-no" title="statement not covered" >document.getElementById('or_task_0')</span>
1810
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (firstTaskEl) {</span>
1811
- <span class="cstat-no" title="statement not covered" > Object.assign(firstTaskEl.style, styles.taskNumberActive)</span>
1812
- }
1813
- <span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
1814
- <span class="cstat-no" title="statement not covered" > highlightActive()</span>
1815
- }, 1)
1816
- <span class="cstat-no" title="statement not covered" > return section</span>
1817
- }
1818
- &nbsp;
1819
- <span class="fstat-no" title="function not covered" > showEndSection(</span>) {
1820
- let isLoading = <span class="cstat-no" title="statement not covered" >true</span>
1821
- <span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('done')</span>
1822
- const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'end_section_or', styles.endSectionStyle)</span>
1823
- const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
1824
- 'div',
1825
- 'end_title_or',
1826
- {
1827
- fontSize: '1.25rem',
1828
- fontWeight: '500',
1829
- },
1830
- 'Thank you! 👍',
1831
- )
1832
- const description = <span class="cstat-no" title="statement not covered" >createElement(</span>
1833
- 'div',
1834
- 'end_description_or',
1835
- {},
1836
- this.test?.conclusion ??
1837
- 'Thank you for participating in our usability test. Your feedback has been captured and will be used to enhance our website. \n' +
1838
- '\n' +
1839
- 'We appreciate your time and valuable input.',
1840
- )
1841
- const button = <span class="cstat-no" title="statement not covered" >createElement(</span>
1842
- 'div',
1843
- 'end_button_or',
1844
- styles.buttonWidgetStyle,
1845
- 'Submitting Feedback',
1846
- )
1847
- const spinner = <span class="cstat-no" title="statement not covered" >createSpinner()</span>
1848
- <span class="cstat-no" title="statement not covered" > button.appendChild(spinner)</span>
1849
- &nbsp;
1850
- <span class="cstat-no" title="statement not covered" > if (this.test?.reqMic || this.test?.reqCamera) {</span>
1851
- <span class="cstat-no" title="statement not covered" > void this.userRecorder</span>
1852
- .sendToAPI()
1853
- .then(<span class="fstat-no" title="function not covered" >() =</span>&gt; {
1854
- <span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
1855
- <span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
1856
- <span class="cstat-no" title="statement not covered" > isLoading = false</span>
1857
- })
1858
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rr) =&gt; {
1859
- <span class="cstat-no" title="statement not covered" > console.error(err)</span>
1860
- <span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
1861
- <span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
1862
- <span class="cstat-no" title="statement not covered" > isLoading = false</span>
1863
- })
1864
- } else {
1865
- <span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
1866
- <span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
1867
- <span class="cstat-no" title="statement not covered" > isLoading = false</span>
1868
- }
1869
- &nbsp;
1870
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.taskSection) {</span>
1871
- <span class="cstat-no" title="statement not covered" > this.container.removeChild(this.taskSection)</span>
1872
- }
1873
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.descriptionSection) {</span>
1874
- <span class="cstat-no" title="statement not covered" > this.container.removeChild(this.descriptionSection)</span>
1875
- }
1876
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.stopButton &amp;&amp; this.stopButtonContainer) {</span>
1877
- <span class="cstat-no" title="statement not covered" > this.container.removeChild(this.stopButtonContainer)</span>
1878
- }
1879
- &nbsp;
1880
- <span class="cstat-no" title="statement not covered" > button.onclick = <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1881
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isLoading) <span class="cstat-no" title="statement not covered" >return</span></span>
1882
- <span class="cstat-no" title="statement not covered" > window.close()</span>
1883
- <span class="cstat-no" title="statement not covered" > document.body.removeChild(this.bg)</span>
1884
- }
1885
- <span class="cstat-no" title="statement not covered" > section.append(title, description, button)</span>
1886
- <span class="cstat-no" title="statement not covered" > this.endSection = section</span>
1887
- <span class="cstat-no" title="statement not covered" > this.container.append(section)</span>
1888
- }
1889
- }
1890
- &nbsp;</pre></td></tr></table></pre>
1891
-
1892
- <div class='push'></div><!-- for sticky footer -->
1893
- </div><!-- /wrapper -->
1894
- <div class='footer quiet pad2 space-top1 center small'>
1895
- Code coverage generated by
1896
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1897
- at 2024-06-04T11:50:55.506Z
1898
- </div>
1899
- <script src="../../../prettify.js"></script>
1900
- <script>
1901
- window.onload = function () {
1902
- prettyPrint();
1903
- };
1904
- </script>
1905
- <script src="../../../sorter.js"></script>
1906
- <script src="../../../block-navigation.js"></script>
1907
- </body>
1908
- </html>
1909
-