@lcap/nasl 3.3.3-beta.5 → 3.3.3-beta.6

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 (297) hide show
  1. package/out/concepts/Assignee__.js +2 -3
  2. package/out/concepts/Assignee__.js.map +1 -1
  3. package/out/concepts/CallInterface__.js +12 -8
  4. package/out/concepts/CallInterface__.js.map +1 -1
  5. package/out/concepts/Identifier__.d.ts +1 -1
  6. package/out/concepts/Identifier__.js +5 -1
  7. package/out/concepts/Identifier__.js.map +1 -1
  8. package/out/concepts/NewComposite__.d.ts +1 -1
  9. package/out/concepts/NewComposite__.js +1 -1
  10. package/out/concepts/NewComposite__.js.map +1 -1
  11. package/out/natural/transformTSCode.d.ts +2 -2
  12. package/package.json +1 -1
  13. package/src/concepts/Assignee__.ts +3 -3
  14. package/src/concepts/CallInterface__.ts +16 -12
  15. package/src/concepts/Identifier__.ts +5 -1
  16. package/src/concepts/NewComposite__.ts +1 -1
  17. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -3
  18. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +3 -3
  19. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  20. package/.nyc_output/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +0 -1
  21. package/.nyc_output/processinfo/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +0 -1
  22. package/.nyc_output/processinfo/index.json +0 -1
  23. package/coverage/base.css +0 -224
  24. package/coverage/block-navigation.js +0 -87
  25. package/coverage/favicon.png +0 -0
  26. package/coverage/index.html +0 -446
  27. package/coverage/prettify.css +0 -1
  28. package/coverage/prettify.js +0 -2
  29. package/coverage/sort-arrow-sprite.png +0 -0
  30. package/coverage/sorter.js +0 -196
  31. package/coverage/src/automate/engine/index.html +0 -116
  32. package/coverage/src/automate/engine/utils.js.html +0 -1414
  33. package/coverage/src/bak/index.html +0 -116
  34. package/coverage/src/bak/translator.js.html +0 -619
  35. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +0 -175
  36. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +0 -169
  37. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +0 -1243
  38. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +0 -145
  39. package/coverage/src/breakpoint/generator/index.html +0 -176
  40. package/coverage/src/breakpoint/generator/index.ts.html +0 -508
  41. package/coverage/src/breakpoint/index.html +0 -116
  42. package/coverage/src/breakpoint/index.ts.html +0 -94
  43. package/coverage/src/breakpoint/shared/constants.ts.html +0 -430
  44. package/coverage/src/breakpoint/shared/index.html +0 -176
  45. package/coverage/src/breakpoint/shared/index.ts.html +0 -94
  46. package/coverage/src/breakpoint/shared/operations.ts.html +0 -160
  47. package/coverage/src/breakpoint/shared/socket.ts.html +0 -1225
  48. package/coverage/src/breakpoint/shared/utils.ts.html +0 -961
  49. package/coverage/src/breakpoint/store/core.ts.html +0 -1600
  50. package/coverage/src/breakpoint/store/dock.ts.html +0 -583
  51. package/coverage/src/breakpoint/store/index.html +0 -146
  52. package/coverage/src/breakpoint/store/index.ts.html +0 -91
  53. package/coverage/src/common/BaseNode.ts.html +0 -3868
  54. package/coverage/src/common/Command.ts.html +0 -310
  55. package/coverage/src/common/EventEmitter.ts.html +0 -370
  56. package/coverage/src/common/Messager.ts.html +0 -820
  57. package/coverage/src/common/asyncFuncMap.ts.html +0 -127
  58. package/coverage/src/common/index.html +0 -191
  59. package/coverage/src/common/index.ts.html +0 -94
  60. package/coverage/src/concepts/Abort__.ts.html +0 -328
  61. package/coverage/src/concepts/Anchor__.ts.html +0 -604
  62. package/coverage/src/concepts/AnonymousFunction__.ts.html +0 -1951
  63. package/coverage/src/concepts/App__.ts.html +0 -13252
  64. package/coverage/src/concepts/Argument__.ts.html +0 -910
  65. package/coverage/src/concepts/Assignee__.ts.html +0 -2236
  66. package/coverage/src/concepts/AssignmentLine__.ts.html +0 -409
  67. package/coverage/src/concepts/Assignment__.ts.html +0 -1078
  68. package/coverage/src/concepts/Attribute__.ts.html +0 -733
  69. package/coverage/src/concepts/AuthInterface__.ts.html +0 -367
  70. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +0 -1984
  71. package/coverage/src/concepts/AuthLogic__.ts.html +0 -781
  72. package/coverage/src/concepts/BackendVariable__.ts.html +0 -1483
  73. package/coverage/src/concepts/Backend__.ts.html +0 -1165
  74. package/coverage/src/concepts/BatchAssignment__.ts.html +0 -3250
  75. package/coverage/src/concepts/BinaryExpression__.ts.html +0 -1336
  76. package/coverage/src/concepts/BindAttribute__.ts.html +0 -3679
  77. package/coverage/src/concepts/BindDirective__.ts.html +0 -1921
  78. package/coverage/src/concepts/BindEvent__.ts.html +0 -3232
  79. package/coverage/src/concepts/BindStyle__.ts.html +0 -1612
  80. package/coverage/src/concepts/BooleanLiteral__.ts.html +0 -403
  81. package/coverage/src/concepts/CallAuthInterface__.ts.html +0 -1615
  82. package/coverage/src/concepts/CallConnector__.ts.html +0 -868
  83. package/coverage/src/concepts/CallFunction__.ts.html +0 -1966
  84. package/coverage/src/concepts/CallInterface__.ts.html +0 -2614
  85. package/coverage/src/concepts/CallLogic__.ts.html +0 -4420
  86. package/coverage/src/concepts/CallQueryComponent__.ts.html +0 -5308
  87. package/coverage/src/concepts/Comment__.ts.html +0 -376
  88. package/coverage/src/concepts/CompletionProperty__.ts.html +0 -925
  89. package/coverage/src/concepts/ConfigGroup__.ts.html +0 -1105
  90. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +0 -424
  91. package/coverage/src/concepts/ConfigProperty__.ts.html +0 -1348
  92. package/coverage/src/concepts/Configuration__.ts.html +0 -1027
  93. package/coverage/src/concepts/Connection__.ts.html +0 -1360
  94. package/coverage/src/concepts/ConnectorTrigger__.ts.html +0 -595
  95. package/coverage/src/concepts/Connector__.ts.html +0 -4255
  96. package/coverage/src/concepts/Constant__.ts.html +0 -913
  97. package/coverage/src/concepts/DataSource__.ts.html +0 -1771
  98. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +0 -331
  99. package/coverage/src/concepts/Destination__.ts.html +0 -2563
  100. package/coverage/src/concepts/End__.ts.html +0 -433
  101. package/coverage/src/concepts/EntityIndex__.ts.html +0 -787
  102. package/coverage/src/concepts/EntityProperty__.ts.html +0 -2620
  103. package/coverage/src/concepts/Entity__.ts.html +0 -2872
  104. package/coverage/src/concepts/EnumItem__.ts.html +0 -535
  105. package/coverage/src/concepts/Enum__.ts.html +0 -1192
  106. package/coverage/src/concepts/Event__.ts.html +0 -1084
  107. package/coverage/src/concepts/ExternalDestination__.ts.html +0 -1033
  108. package/coverage/src/concepts/ForEachStatement__.ts.html +0 -1819
  109. package/coverage/src/concepts/FrontendLibrary__.ts.html +0 -1711
  110. package/coverage/src/concepts/FrontendVariable__.ts.html +0 -292
  111. package/coverage/src/concepts/Frontend__.ts.html +0 -3961
  112. package/coverage/src/concepts/Function__.ts.html +0 -3514
  113. package/coverage/src/concepts/Identifier__.ts.html +0 -1057
  114. package/coverage/src/concepts/IfStatement__.ts.html +0 -1486
  115. package/coverage/src/concepts/Integration__.ts.html +0 -1228
  116. package/coverage/src/concepts/InterfaceParam__.ts.html +0 -1087
  117. package/coverage/src/concepts/Interface__.ts.html +0 -3394
  118. package/coverage/src/concepts/JSBlock__.ts.html +0 -406
  119. package/coverage/src/concepts/JavaLogic__.ts.html +0 -460
  120. package/coverage/src/concepts/LogicItem__.ts.html +0 -1144
  121. package/coverage/src/concepts/Logic__.ts.html +0 -7078
  122. package/coverage/src/concepts/MatchCase__.ts.html +0 -2641
  123. package/coverage/src/concepts/Match__.ts.html +0 -2323
  124. package/coverage/src/concepts/MemberExpression__.ts.html +0 -1666
  125. package/coverage/src/concepts/MicroApp__.ts.html +0 -436
  126. package/coverage/src/concepts/Module__.ts.html +0 -9220
  127. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +0 -1045
  128. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +0 -1018
  129. package/coverage/src/concepts/Namespace__.ts.html +0 -7942
  130. package/coverage/src/concepts/NewComposite__.ts.html +0 -4684
  131. package/coverage/src/concepts/NewList__.ts.html +0 -1567
  132. package/coverage/src/concepts/NewMap__.ts.html +0 -2275
  133. package/coverage/src/concepts/New__.ts.html +0 -289
  134. package/coverage/src/concepts/NullLiteral__.ts.html +0 -349
  135. package/coverage/src/concepts/NumericLiteral__.ts.html +0 -661
  136. package/coverage/src/concepts/OqlQueryComponent__.ts.html +0 -1123
  137. package/coverage/src/concepts/OverriddenLogic__.ts.html +0 -6817
  138. package/coverage/src/concepts/Param__.ts.html +0 -1609
  139. package/coverage/src/concepts/Point__.ts.html +0 -331
  140. package/coverage/src/concepts/ProcessComponent__.ts.html +0 -1666
  141. package/coverage/src/concepts/ProcessElement__.ts.html +0 -5884
  142. package/coverage/src/concepts/ProcessOutcome__.ts.html +0 -352
  143. package/coverage/src/concepts/ProcessOutcomes__.ts.html +0 -343
  144. package/coverage/src/concepts/Process__.ts.html +0 -4768
  145. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +0 -568
  146. package/coverage/src/concepts/QueryFieldExpression__.ts.html +0 -583
  147. package/coverage/src/concepts/QueryFromExpression__.ts.html +0 -910
  148. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +0 -559
  149. package/coverage/src/concepts/QueryJoinExpression__.ts.html +0 -1567
  150. package/coverage/src/concepts/QueryLimitExpression__.ts.html +0 -637
  151. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +0 -679
  152. package/coverage/src/concepts/QuerySelectExpression__.ts.html +0 -1714
  153. package/coverage/src/concepts/Rect__.ts.html +0 -373
  154. package/coverage/src/concepts/Return__.ts.html +0 -1258
  155. package/coverage/src/concepts/Role__.ts.html +0 -601
  156. package/coverage/src/concepts/SelectMembers__.ts.html +0 -1246
  157. package/coverage/src/concepts/Slot__.ts.html +0 -628
  158. package/coverage/src/concepts/SqlQueryComponent__.ts.html +0 -964
  159. package/coverage/src/concepts/Start__.ts.html +0 -304
  160. package/coverage/src/concepts/StringInterpolation__.ts.html +0 -1078
  161. package/coverage/src/concepts/StringLiteral__.ts.html +0 -490
  162. package/coverage/src/concepts/StructureProperty__.ts.html +0 -1102
  163. package/coverage/src/concepts/Structure__.ts.html +0 -2053
  164. package/coverage/src/concepts/SwitchCase__.ts.html +0 -1063
  165. package/coverage/src/concepts/SwitchStatement__.ts.html +0 -826
  166. package/coverage/src/concepts/Theme__.ts.html +0 -358
  167. package/coverage/src/concepts/Transactional__.ts.html +0 -628
  168. package/coverage/src/concepts/TriggerEvent__.ts.html +0 -1012
  169. package/coverage/src/concepts/TriggerLauncher__.ts.html +0 -775
  170. package/coverage/src/concepts/TypeAnnotation__.ts.html +0 -3583
  171. package/coverage/src/concepts/TypeParam__.ts.html +0 -301
  172. package/coverage/src/concepts/UnaryExpression__.ts.html +0 -640
  173. package/coverage/src/concepts/Unparsed__.ts.html +0 -382
  174. package/coverage/src/concepts/UseComponent__.ts.html +0 -331
  175. package/coverage/src/concepts/ValidationRule__.ts.html +0 -1840
  176. package/coverage/src/concepts/Variable__.ts.html +0 -1435
  177. package/coverage/src/concepts/ViewBlock__.ts.html +0 -352
  178. package/coverage/src/concepts/ViewComponent__.ts.html +0 -4180
  179. package/coverage/src/concepts/ViewElement__.ts.html +0 -8557
  180. package/coverage/src/concepts/View__.ts.html +0 -8278
  181. package/coverage/src/concepts/WhileStatement__.ts.html +0 -991
  182. package/coverage/src/concepts/basics/stdlib/index.html +0 -341
  183. package/coverage/src/concepts/basics/stdlib/index.ts.html +0 -208
  184. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +0 -565
  185. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +0 -517
  186. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +0 -226
  187. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +0 -172
  188. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +0 -214
  189. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +0 -145
  190. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +0 -589
  191. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +0 -214
  192. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +0 -229
  193. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +0 -268
  194. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +0 -1999
  195. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +0 -3259
  196. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +0 -6787
  197. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +0 -1768
  198. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +0 -163
  199. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +0 -121
  200. package/coverage/src/concepts/basics/types/index.html +0 -131
  201. package/coverage/src/concepts/basics/types/index.ts.html +0 -160
  202. package/coverage/src/concepts/index.html +0 -1961
  203. package/coverage/src/concepts/index.ts.html +0 -103
  204. package/coverage/src/concepts/index__.ts.html +0 -451
  205. package/coverage/src/config.ts.html +0 -325
  206. package/coverage/src/decorators/index.html +0 -131
  207. package/coverage/src/decorators/index.ts.html +0 -574
  208. package/coverage/src/decorators/promise.ts.html +0 -169
  209. package/coverage/src/eventBus.ts.html +0 -100
  210. package/coverage/src/generator/compileComponent.ts.html +0 -142
  211. package/coverage/src/generator/genBundleFiles.ts.html +0 -1828
  212. package/coverage/src/generator/genHash.ts.html +0 -124
  213. package/coverage/src/generator/genMetaData.ts.html +0 -1042
  214. package/coverage/src/generator/genReleaseBody.ts.html +0 -1282
  215. package/coverage/src/generator/icestark.ts.html +0 -220
  216. package/coverage/src/generator/index.html +0 -266
  217. package/coverage/src/generator/index.ts.html +0 -106
  218. package/coverage/src/generator/microApp.ts.html +0 -172
  219. package/coverage/src/generator/permission.ts.html +0 -1036
  220. package/coverage/src/generator/qiankun.ts.html +0 -232
  221. package/coverage/src/generator/styleReplacer.ts.html +0 -199
  222. package/coverage/src/index.html +0 -146
  223. package/coverage/src/index.ts.html +0 -121
  224. package/coverage/src/manager/diagnostic.ts.html +0 -442
  225. package/coverage/src/manager/index.html +0 -131
  226. package/coverage/src/manager/stepRecorder.ts.html +0 -457
  227. package/coverage/src/sentry/index.html +0 -116
  228. package/coverage/src/sentry/index.ts.html +0 -676
  229. package/coverage/src/server/createUiTs.ts.html +0 -919
  230. package/coverage/src/server/entity2LogicNamespace.ts.html +0 -1294
  231. package/coverage/src/server/event.js.html +0 -526
  232. package/coverage/src/server/extendBaseNode.ts.html +0 -1762
  233. package/coverage/src/server/formatTsUtils.ts.html +0 -2689
  234. package/coverage/src/server/getConnector.ts.html +0 -316
  235. package/coverage/src/server/getExtensionModules.ts.html +0 -178
  236. package/coverage/src/server/getFunctions.ts.html +0 -133
  237. package/coverage/src/server/getInterfaces.ts.html +0 -229
  238. package/coverage/src/server/getLogging.ts.html +0 -100
  239. package/coverage/src/server/getLogics.ts.html +0 -1363
  240. package/coverage/src/server/getMemberIdentifier.ts.html +0 -1606
  241. package/coverage/src/server/getProcessComponents.ts.html +0 -112
  242. package/coverage/src/server/getProcesses.ts.html +0 -2023
  243. package/coverage/src/server/getValidates.ts.html +0 -115
  244. package/coverage/src/server/index.html +0 -401
  245. package/coverage/src/server/index.ts.html +0 -229
  246. package/coverage/src/server/naslServer.ts.html +0 -14290
  247. package/coverage/src/server/naslStdlibMap.ts.html +0 -241
  248. package/coverage/src/server/process2LogicNamespace.ts.html +0 -454
  249. package/coverage/src/server/translator.ts.html +0 -2566
  250. package/coverage/src/service/creator/add.configs.js.html +0 -379
  251. package/coverage/src/service/creator/errHandles.js.html +0 -322
  252. package/coverage/src/service/creator/index.html +0 -146
  253. package/coverage/src/service/creator/index.js.html +0 -352
  254. package/coverage/src/service/datasource/api.js.html +0 -118
  255. package/coverage/src/service/datasource/index.html +0 -131
  256. package/coverage/src/service/datasource/index.js.html +0 -103
  257. package/coverage/src/service/logic/api.js.html +0 -109
  258. package/coverage/src/service/logic/index.html +0 -131
  259. package/coverage/src/service/logic/index.js.html +0 -103
  260. package/coverage/src/service/storage/api.js.html +0 -202
  261. package/coverage/src/service/storage/index.html +0 -206
  262. package/coverage/src/service/storage/index.ts.html +0 -103
  263. package/coverage/src/service/storage/init.ts.html +0 -2710
  264. package/coverage/src/service/storage/jsoner.ts.html +0 -502
  265. package/coverage/src/service/storage/map.ts.html +0 -256
  266. package/coverage/src/service/storage/service.ts.html +0 -331
  267. package/coverage/src/service/storage/storagePoint.ts.html +0 -304
  268. package/coverage/src/templator/genCallComponentLogic.ts.html +0 -163
  269. package/coverage/src/templator/genCreateBlock.ts.html +0 -1093
  270. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +0 -1609
  271. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +0 -2254
  272. package/coverage/src/templator/genEditTableBlock.ts.html +0 -955
  273. package/coverage/src/templator/genEnumSelectBlock.ts.html +0 -178
  274. package/coverage/src/templator/genGetBlock.ts.html +0 -451
  275. package/coverage/src/templator/genGridViewBlock.ts.html +0 -1114
  276. package/coverage/src/templator/genListViewBlock.ts.html +0 -475
  277. package/coverage/src/templator/genQueryComponent.ts.html +0 -1207
  278. package/coverage/src/templator/genSelectBlock.ts.html +0 -1243
  279. package/coverage/src/templator/genTableBlock.ts.html +0 -910
  280. package/coverage/src/templator/genUpdateBlock.ts.html +0 -1192
  281. package/coverage/src/templator/index.html +0 -326
  282. package/coverage/src/templator/index.ts.html +0 -154
  283. package/coverage/src/templator/utils.ts.html +0 -1861
  284. package/coverage/src/translator/constant.ts.html +0 -106
  285. package/coverage/src/translator/index.html +0 -146
  286. package/coverage/src/translator/index.ts.html +0 -94
  287. package/coverage/src/translator/utils.ts.html +0 -397
  288. package/coverage/src/utils/cookie.ts.html +0 -265
  289. package/coverage/src/utils/env.ts.html +0 -91
  290. package/coverage/src/utils/index.html +0 -236
  291. package/coverage/src/utils/index.ts.html +0 -655
  292. package/coverage/src/utils/logger.ts.html +0 -145
  293. package/coverage/src/utils/sortTsString.ts.html +0 -187
  294. package/coverage/src/utils/string.ts.html +0 -400
  295. package/coverage/src/utils/time-slicing.ts.html +0 -412
  296. package/coverage/src/utils/traverse.ts.html +0 -568
  297. package/coverage/src/utils/window.ts.html +0 -112
@@ -1,2614 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/concepts/CallInterface__.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">src/concepts</a> CallInterface__.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">36.94% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>133/360</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">27.93% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>50/179</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">31.64% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>25/79</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">37.18% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>119/320</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>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a>
709
- <a name='L644'></a><a href='#L644'>644</a>
710
- <a name='L645'></a><a href='#L645'>645</a>
711
- <a name='L646'></a><a href='#L646'>646</a>
712
- <a name='L647'></a><a href='#L647'>647</a>
713
- <a name='L648'></a><a href='#L648'>648</a>
714
- <a name='L649'></a><a href='#L649'>649</a>
715
- <a name='L650'></a><a href='#L650'>650</a>
716
- <a name='L651'></a><a href='#L651'>651</a>
717
- <a name='L652'></a><a href='#L652'>652</a>
718
- <a name='L653'></a><a href='#L653'>653</a>
719
- <a name='L654'></a><a href='#L654'>654</a>
720
- <a name='L655'></a><a href='#L655'>655</a>
721
- <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a>
723
- <a name='L658'></a><a href='#L658'>658</a>
724
- <a name='L659'></a><a href='#L659'>659</a>
725
- <a name='L660'></a><a href='#L660'>660</a>
726
- <a name='L661'></a><a href='#L661'>661</a>
727
- <a name='L662'></a><a href='#L662'>662</a>
728
- <a name='L663'></a><a href='#L663'>663</a>
729
- <a name='L664'></a><a href='#L664'>664</a>
730
- <a name='L665'></a><a href='#L665'>665</a>
731
- <a name='L666'></a><a href='#L666'>666</a>
732
- <a name='L667'></a><a href='#L667'>667</a>
733
- <a name='L668'></a><a href='#L668'>668</a>
734
- <a name='L669'></a><a href='#L669'>669</a>
735
- <a name='L670'></a><a href='#L670'>670</a>
736
- <a name='L671'></a><a href='#L671'>671</a>
737
- <a name='L672'></a><a href='#L672'>672</a>
738
- <a name='L673'></a><a href='#L673'>673</a>
739
- <a name='L674'></a><a href='#L674'>674</a>
740
- <a name='L675'></a><a href='#L675'>675</a>
741
- <a name='L676'></a><a href='#L676'>676</a>
742
- <a name='L677'></a><a href='#L677'>677</a>
743
- <a name='L678'></a><a href='#L678'>678</a>
744
- <a name='L679'></a><a href='#L679'>679</a>
745
- <a name='L680'></a><a href='#L680'>680</a>
746
- <a name='L681'></a><a href='#L681'>681</a>
747
- <a name='L682'></a><a href='#L682'>682</a>
748
- <a name='L683'></a><a href='#L683'>683</a>
749
- <a name='L684'></a><a href='#L684'>684</a>
750
- <a name='L685'></a><a href='#L685'>685</a>
751
- <a name='L686'></a><a href='#L686'>686</a>
752
- <a name='L687'></a><a href='#L687'>687</a>
753
- <a name='L688'></a><a href='#L688'>688</a>
754
- <a name='L689'></a><a href='#L689'>689</a>
755
- <a name='L690'></a><a href='#L690'>690</a>
756
- <a name='L691'></a><a href='#L691'>691</a>
757
- <a name='L692'></a><a href='#L692'>692</a>
758
- <a name='L693'></a><a href='#L693'>693</a>
759
- <a name='L694'></a><a href='#L694'>694</a>
760
- <a name='L695'></a><a href='#L695'>695</a>
761
- <a name='L696'></a><a href='#L696'>696</a>
762
- <a name='L697'></a><a href='#L697'>697</a>
763
- <a name='L698'></a><a href='#L698'>698</a>
764
- <a name='L699'></a><a href='#L699'>699</a>
765
- <a name='L700'></a><a href='#L700'>700</a>
766
- <a name='L701'></a><a href='#L701'>701</a>
767
- <a name='L702'></a><a href='#L702'>702</a>
768
- <a name='L703'></a><a href='#L703'>703</a>
769
- <a name='L704'></a><a href='#L704'>704</a>
770
- <a name='L705'></a><a href='#L705'>705</a>
771
- <a name='L706'></a><a href='#L706'>706</a>
772
- <a name='L707'></a><a href='#L707'>707</a>
773
- <a name='L708'></a><a href='#L708'>708</a>
774
- <a name='L709'></a><a href='#L709'>709</a>
775
- <a name='L710'></a><a href='#L710'>710</a>
776
- <a name='L711'></a><a href='#L711'>711</a>
777
- <a name='L712'></a><a href='#L712'>712</a>
778
- <a name='L713'></a><a href='#L713'>713</a>
779
- <a name='L714'></a><a href='#L714'>714</a>
780
- <a name='L715'></a><a href='#L715'>715</a>
781
- <a name='L716'></a><a href='#L716'>716</a>
782
- <a name='L717'></a><a href='#L717'>717</a>
783
- <a name='L718'></a><a href='#L718'>718</a>
784
- <a name='L719'></a><a href='#L719'>719</a>
785
- <a name='L720'></a><a href='#L720'>720</a>
786
- <a name='L721'></a><a href='#L721'>721</a>
787
- <a name='L722'></a><a href='#L722'>722</a>
788
- <a name='L723'></a><a href='#L723'>723</a>
789
- <a name='L724'></a><a href='#L724'>724</a>
790
- <a name='L725'></a><a href='#L725'>725</a>
791
- <a name='L726'></a><a href='#L726'>726</a>
792
- <a name='L727'></a><a href='#L727'>727</a>
793
- <a name='L728'></a><a href='#L728'>728</a>
794
- <a name='L729'></a><a href='#L729'>729</a>
795
- <a name='L730'></a><a href='#L730'>730</a>
796
- <a name='L731'></a><a href='#L731'>731</a>
797
- <a name='L732'></a><a href='#L732'>732</a>
798
- <a name='L733'></a><a href='#L733'>733</a>
799
- <a name='L734'></a><a href='#L734'>734</a>
800
- <a name='L735'></a><a href='#L735'>735</a>
801
- <a name='L736'></a><a href='#L736'>736</a>
802
- <a name='L737'></a><a href='#L737'>737</a>
803
- <a name='L738'></a><a href='#L738'>738</a>
804
- <a name='L739'></a><a href='#L739'>739</a>
805
- <a name='L740'></a><a href='#L740'>740</a>
806
- <a name='L741'></a><a href='#L741'>741</a>
807
- <a name='L742'></a><a href='#L742'>742</a>
808
- <a name='L743'></a><a href='#L743'>743</a>
809
- <a name='L744'></a><a href='#L744'>744</a>
810
- <a name='L745'></a><a href='#L745'>745</a>
811
- <a name='L746'></a><a href='#L746'>746</a>
812
- <a name='L747'></a><a href='#L747'>747</a>
813
- <a name='L748'></a><a href='#L748'>748</a>
814
- <a name='L749'></a><a href='#L749'>749</a>
815
- <a name='L750'></a><a href='#L750'>750</a>
816
- <a name='L751'></a><a href='#L751'>751</a>
817
- <a name='L752'></a><a href='#L752'>752</a>
818
- <a name='L753'></a><a href='#L753'>753</a>
819
- <a name='L754'></a><a href='#L754'>754</a>
820
- <a name='L755'></a><a href='#L755'>755</a>
821
- <a name='L756'></a><a href='#L756'>756</a>
822
- <a name='L757'></a><a href='#L757'>757</a>
823
- <a name='L758'></a><a href='#L758'>758</a>
824
- <a name='L759'></a><a href='#L759'>759</a>
825
- <a name='L760'></a><a href='#L760'>760</a>
826
- <a name='L761'></a><a href='#L761'>761</a>
827
- <a name='L762'></a><a href='#L762'>762</a>
828
- <a name='L763'></a><a href='#L763'>763</a>
829
- <a name='L764'></a><a href='#L764'>764</a>
830
- <a name='L765'></a><a href='#L765'>765</a>
831
- <a name='L766'></a><a href='#L766'>766</a>
832
- <a name='L767'></a><a href='#L767'>767</a>
833
- <a name='L768'></a><a href='#L768'>768</a>
834
- <a name='L769'></a><a href='#L769'>769</a>
835
- <a name='L770'></a><a href='#L770'>770</a>
836
- <a name='L771'></a><a href='#L771'>771</a>
837
- <a name='L772'></a><a href='#L772'>772</a>
838
- <a name='L773'></a><a href='#L773'>773</a>
839
- <a name='L774'></a><a href='#L774'>774</a>
840
- <a name='L775'></a><a href='#L775'>775</a>
841
- <a name='L776'></a><a href='#L776'>776</a>
842
- <a name='L777'></a><a href='#L777'>777</a>
843
- <a name='L778'></a><a href='#L778'>778</a>
844
- <a name='L779'></a><a href='#L779'>779</a>
845
- <a name='L780'></a><a href='#L780'>780</a>
846
- <a name='L781'></a><a href='#L781'>781</a>
847
- <a name='L782'></a><a href='#L782'>782</a>
848
- <a name='L783'></a><a href='#L783'>783</a>
849
- <a name='L784'></a><a href='#L784'>784</a>
850
- <a name='L785'></a><a href='#L785'>785</a>
851
- <a name='L786'></a><a href='#L786'>786</a>
852
- <a name='L787'></a><a href='#L787'>787</a>
853
- <a name='L788'></a><a href='#L788'>788</a>
854
- <a name='L789'></a><a href='#L789'>789</a>
855
- <a name='L790'></a><a href='#L790'>790</a>
856
- <a name='L791'></a><a href='#L791'>791</a>
857
- <a name='L792'></a><a href='#L792'>792</a>
858
- <a name='L793'></a><a href='#L793'>793</a>
859
- <a name='L794'></a><a href='#L794'>794</a>
860
- <a name='L795'></a><a href='#L795'>795</a>
861
- <a name='L796'></a><a href='#L796'>796</a>
862
- <a name='L797'></a><a href='#L797'>797</a>
863
- <a name='L798'></a><a href='#L798'>798</a>
864
- <a name='L799'></a><a href='#L799'>799</a>
865
- <a name='L800'></a><a href='#L800'>800</a>
866
- <a name='L801'></a><a href='#L801'>801</a>
867
- <a name='L802'></a><a href='#L802'>802</a>
868
- <a name='L803'></a><a href='#L803'>803</a>
869
- <a name='L804'></a><a href='#L804'>804</a>
870
- <a name='L805'></a><a href='#L805'>805</a>
871
- <a name='L806'></a><a href='#L806'>806</a>
872
- <a name='L807'></a><a href='#L807'>807</a>
873
- <a name='L808'></a><a href='#L808'>808</a>
874
- <a name='L809'></a><a href='#L809'>809</a>
875
- <a name='L810'></a><a href='#L810'>810</a>
876
- <a name='L811'></a><a href='#L811'>811</a>
877
- <a name='L812'></a><a href='#L812'>812</a>
878
- <a name='L813'></a><a href='#L813'>813</a>
879
- <a name='L814'></a><a href='#L814'>814</a>
880
- <a name='L815'></a><a href='#L815'>815</a>
881
- <a name='L816'></a><a href='#L816'>816</a>
882
- <a name='L817'></a><a href='#L817'>817</a>
883
- <a name='L818'></a><a href='#L818'>818</a>
884
- <a name='L819'></a><a href='#L819'>819</a>
885
- <a name='L820'></a><a href='#L820'>820</a>
886
- <a name='L821'></a><a href='#L821'>821</a>
887
- <a name='L822'></a><a href='#L822'>822</a>
888
- <a name='L823'></a><a href='#L823'>823</a>
889
- <a name='L824'></a><a href='#L824'>824</a>
890
- <a name='L825'></a><a href='#L825'>825</a>
891
- <a name='L826'></a><a href='#L826'>826</a>
892
- <a name='L827'></a><a href='#L827'>827</a>
893
- <a name='L828'></a><a href='#L828'>828</a>
894
- <a name='L829'></a><a href='#L829'>829</a>
895
- <a name='L830'></a><a href='#L830'>830</a>
896
- <a name='L831'></a><a href='#L831'>831</a>
897
- <a name='L832'></a><a href='#L832'>832</a>
898
- <a name='L833'></a><a href='#L833'>833</a>
899
- <a name='L834'></a><a href='#L834'>834</a>
900
- <a name='L835'></a><a href='#L835'>835</a>
901
- <a name='L836'></a><a href='#L836'>836</a>
902
- <a name='L837'></a><a href='#L837'>837</a>
903
- <a name='L838'></a><a href='#L838'>838</a>
904
- <a name='L839'></a><a href='#L839'>839</a>
905
- <a name='L840'></a><a href='#L840'>840</a>
906
- <a name='L841'></a><a href='#L841'>841</a>
907
- <a name='L842'></a><a href='#L842'>842</a>
908
- <a name='L843'></a><a href='#L843'>843</a>
909
- <a name='L844'></a><a href='#L844'>844</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
910
- <span class="cline-any cline-yes">1x</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-yes">1x</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-yes">1x</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-yes">1x</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-yes">1x</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&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-yes">1x</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&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-yes">1x</span>
931
- <span class="cline-any cline-yes">1x</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
939
- <span class="cline-any cline-yes">1x</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&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-neutral">&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-yes">16x</span>
954
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-yes">1x</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&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-yes">1x</span>
968
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-yes">1x</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-yes">16x</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-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-yes">16x</span>
987
- <span class="cline-any cline-yes">16x</span>
988
- <span class="cline-any cline-yes">16x</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-yes">16x</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-no">&nbsp;</span>
1014
- <span class="cline-any cline-no">&nbsp;</span>
1015
- <span class="cline-any cline-no">&nbsp;</span>
1016
- <span class="cline-any cline-no">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-no">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-no">&nbsp;</span>
1028
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-no">&nbsp;</span>
1045
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-no">&nbsp;</span>
1069
- <span class="cline-any cline-no">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1086
- <span class="cline-any cline-no">&nbsp;</span>
1087
- <span class="cline-any cline-no">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-no">&nbsp;</span>
1116
- <span class="cline-any cline-no">&nbsp;</span>
1117
- <span class="cline-any cline-no">&nbsp;</span>
1118
- <span class="cline-any cline-no">&nbsp;</span>
1119
- <span class="cline-any cline-no">&nbsp;</span>
1120
- <span class="cline-any cline-no">&nbsp;</span>
1121
- <span class="cline-any cline-no">&nbsp;</span>
1122
- <span class="cline-any cline-no">&nbsp;</span>
1123
- <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-yes">16x</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-no">&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-no">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-no">&nbsp;</span>
1157
- <span class="cline-any cline-no">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1163
- <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-no">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-neutral">&nbsp;</span>
1167
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-no">&nbsp;</span>
1173
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-no">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
1188
- <span class="cline-any cline-no">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-no">&nbsp;</span>
1197
- <span class="cline-any cline-no">&nbsp;</span>
1198
- <span class="cline-any cline-no">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-neutral">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-no">&nbsp;</span>
1210
- <span class="cline-any cline-no">&nbsp;</span>
1211
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span>
1217
- <span class="cline-any cline-yes">8x</span>
1218
- <span class="cline-any cline-yes">8x</span>
1219
- <span class="cline-any cline-yes">8x</span>
1220
- <span class="cline-any cline-yes">8x</span>
1221
- <span class="cline-any cline-yes">8x</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-no">&nbsp;</span>
1224
- <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1228
- <span class="cline-any cline-no">&nbsp;</span>
1229
- <span class="cline-any cline-no">&nbsp;</span>
1230
- <span class="cline-any cline-no">&nbsp;</span>
1231
- <span class="cline-any cline-no">&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-no">&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-no">&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-no">&nbsp;</span>
1242
- <span class="cline-any cline-no">&nbsp;</span>
1243
- <span class="cline-any cline-neutral">&nbsp;</span>
1244
- <span class="cline-any cline-no">&nbsp;</span>
1245
- <span class="cline-any cline-no">&nbsp;</span>
1246
- <span class="cline-any cline-neutral">&nbsp;</span>
1247
- <span class="cline-any cline-neutral">&nbsp;</span>
1248
- <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-yes">8x</span>
1250
- <span class="cline-any cline-yes">8x</span>
1251
- <span class="cline-any cline-neutral">&nbsp;</span>
1252
- <span class="cline-any cline-neutral">&nbsp;</span>
1253
- <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-yes">8x</span>
1255
- <span class="cline-any cline-yes">8x</span>
1256
- <span class="cline-any cline-yes">8x</span>
1257
- <span class="cline-any cline-no">&nbsp;</span>
1258
- <span class="cline-any cline-yes">8x</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-yes">8x</span>
1263
- <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-yes">8x</span>
1265
- <span class="cline-any cline-yes">8x</span>
1266
- <span class="cline-any cline-no">&nbsp;</span>
1267
- <span class="cline-any cline-no">&nbsp;</span>
1268
- <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-yes">8x</span>
1270
- <span class="cline-any cline-yes">8x</span>
1271
- <span class="cline-any cline-yes">12x</span>
1272
- <span class="cline-any cline-yes">12x</span>
1273
- <span class="cline-any cline-yes">8x</span>
1274
- <span class="cline-any cline-yes">12x</span>
1275
- <span class="cline-any cline-neutral">&nbsp;</span>
1276
- <span class="cline-any cline-yes">3x</span>
1277
- <span class="cline-any cline-yes">2x</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-yes">3x</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-yes">12x</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span>
1283
- <span class="cline-any cline-neutral">&nbsp;</span>
1284
- <span class="cline-any cline-yes">8x</span>
1285
- <span class="cline-any cline-yes">32x</span>
1286
- <span class="cline-any cline-neutral">&nbsp;</span>
1287
- <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-yes">48x</span>
1289
- <span class="cline-any cline-neutral">&nbsp;</span>
1290
- <span class="cline-any cline-yes">32x</span>
1291
- <span class="cline-any cline-yes">12x</span>
1292
- <span class="cline-any cline-yes">1x</span>
1293
- <span class="cline-any cline-yes">11x</span>
1294
- <span class="cline-any cline-yes">9x</span>
1295
- <span class="cline-any cline-neutral">&nbsp;</span>
1296
- <span class="cline-any cline-yes">2x</span>
1297
- <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-yes">12x</span>
1300
- <span class="cline-any cline-yes">7x</span>
1301
- <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-yes">32x</span>
1305
- <span class="cline-any cline-no">&nbsp;</span>
1306
- <span class="cline-any cline-neutral">&nbsp;</span>
1307
- <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-yes">32x</span>
1309
- <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-neutral">&nbsp;</span>
1311
- <span class="cline-any cline-yes">8x</span>
1312
- <span class="cline-any cline-neutral">&nbsp;</span>
1313
- <span class="cline-any cline-yes">8x</span>
1314
- <span class="cline-any cline-yes">8x</span>
1315
- <span class="cline-any cline-yes">8x</span>
1316
- <span class="cline-any cline-yes">8x</span>
1317
- <span class="cline-any cline-yes">8x</span>
1318
- <span class="cline-any cline-yes">8x</span>
1319
- <span class="cline-any cline-yes">8x</span>
1320
- <span class="cline-any cline-neutral">&nbsp;</span>
1321
- <span class="cline-any cline-yes">8x</span>
1322
- <span class="cline-any cline-yes">2x</span>
1323
- <span class="cline-any cline-yes">2x</span>
1324
- <span class="cline-any cline-neutral">&nbsp;</span>
1325
- <span class="cline-any cline-yes">6x</span>
1326
- <span class="cline-any cline-yes">6x</span>
1327
- <span class="cline-any cline-yes">6x</span>
1328
- <span class="cline-any cline-neutral">&nbsp;</span>
1329
- <span class="cline-any cline-neutral">&nbsp;</span>
1330
- <span class="cline-any cline-yes">8x</span>
1331
- <span class="cline-any cline-yes">8x</span>
1332
- <span class="cline-any cline-yes">8x</span>
1333
- <span class="cline-any cline-yes">8x</span>
1334
- <span class="cline-any cline-no">&nbsp;</span>
1335
- <span class="cline-any cline-neutral">&nbsp;</span>
1336
- <span class="cline-any cline-yes">8x</span>
1337
- <span class="cline-any cline-neutral">&nbsp;</span>
1338
- <span class="cline-any cline-neutral">&nbsp;</span>
1339
- <span class="cline-any cline-neutral">&nbsp;</span>
1340
- <span class="cline-any cline-yes">1x</span>
1341
- <span class="cline-any cline-yes">8x</span>
1342
- <span class="cline-any cline-neutral">&nbsp;</span>
1343
- <span class="cline-any cline-yes">8x</span>
1344
- <span class="cline-any cline-neutral">&nbsp;</span>
1345
- <span class="cline-any cline-yes">8x</span>
1346
- <span class="cline-any cline-yes">7x</span>
1347
- <span class="cline-any cline-yes">7x</span>
1348
- <span class="cline-any cline-yes">12x</span>
1349
- <span class="cline-any cline-yes">12x</span>
1350
- <span class="cline-any cline-neutral">&nbsp;</span>
1351
- <span class="cline-any cline-yes">7x</span>
1352
- <span class="cline-any cline-neutral">&nbsp;</span>
1353
- <span class="cline-any cline-yes">8x</span>
1354
- <span class="cline-any cline-yes">8x</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-neutral">&nbsp;</span>
1357
- <span class="cline-any cline-neutral">&nbsp;</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-neutral">&nbsp;</span>
1361
- <span class="cline-any cline-neutral">&nbsp;</span>
1362
- <span class="cline-any cline-neutral">&nbsp;</span>
1363
- <span class="cline-any cline-neutral">&nbsp;</span>
1364
- <span class="cline-any cline-neutral">&nbsp;</span>
1365
- <span class="cline-any cline-neutral">&nbsp;</span>
1366
- <span class="cline-any cline-neutral">&nbsp;</span>
1367
- <span class="cline-any cline-neutral">&nbsp;</span>
1368
- <span class="cline-any cline-yes">8x</span>
1369
- <span class="cline-any cline-neutral">&nbsp;</span>
1370
- <span class="cline-any cline-yes">8x</span>
1371
- <span class="cline-any cline-yes">8x</span>
1372
- <span class="cline-any cline-neutral">&nbsp;</span>
1373
- <span class="cline-any cline-neutral">&nbsp;</span>
1374
- <span class="cline-any cline-neutral">&nbsp;</span>
1375
- <span class="cline-any cline-no">&nbsp;</span>
1376
- <span class="cline-any cline-neutral">&nbsp;</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-neutral">&nbsp;</span>
1379
- <span class="cline-any cline-no">&nbsp;</span>
1380
- <span class="cline-any cline-no">&nbsp;</span>
1381
- <span class="cline-any cline-no">&nbsp;</span>
1382
- <span class="cline-any cline-neutral">&nbsp;</span>
1383
- <span class="cline-any cline-neutral">&nbsp;</span>
1384
- <span class="cline-any cline-neutral">&nbsp;</span>
1385
- <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-yes">24x</span>
1387
- <span class="cline-any cline-neutral">&nbsp;</span>
1388
- <span class="cline-any cline-neutral">&nbsp;</span>
1389
- <span class="cline-any cline-neutral">&nbsp;</span>
1390
- <span class="cline-any cline-yes">8x</span>
1391
- <span class="cline-any cline-neutral">&nbsp;</span>
1392
- <span class="cline-any cline-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-neutral">&nbsp;</span>
1394
- <span class="cline-any cline-neutral">&nbsp;</span>
1395
- <span class="cline-any cline-neutral">&nbsp;</span>
1396
- <span class="cline-any cline-neutral">&nbsp;</span>
1397
- <span class="cline-any cline-neutral">&nbsp;</span>
1398
- <span class="cline-any cline-neutral">&nbsp;</span>
1399
- <span class="cline-any cline-neutral">&nbsp;</span>
1400
- <span class="cline-any cline-neutral">&nbsp;</span>
1401
- <span class="cline-any cline-neutral">&nbsp;</span>
1402
- <span class="cline-any cline-neutral">&nbsp;</span>
1403
- <span class="cline-any cline-neutral">&nbsp;</span>
1404
- <span class="cline-any cline-neutral">&nbsp;</span>
1405
- <span class="cline-any cline-neutral">&nbsp;</span>
1406
- <span class="cline-any cline-neutral">&nbsp;</span>
1407
- <span class="cline-any cline-neutral">&nbsp;</span>
1408
- <span class="cline-any cline-neutral">&nbsp;</span>
1409
- <span class="cline-any cline-neutral">&nbsp;</span>
1410
- <span class="cline-any cline-neutral">&nbsp;</span>
1411
- <span class="cline-any cline-neutral">&nbsp;</span>
1412
- <span class="cline-any cline-neutral">&nbsp;</span>
1413
- <span class="cline-any cline-neutral">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-neutral">&nbsp;</span>
1416
- <span class="cline-any cline-neutral">&nbsp;</span>
1417
- <span class="cline-any cline-neutral">&nbsp;</span>
1418
- <span class="cline-any cline-neutral">&nbsp;</span>
1419
- <span class="cline-any cline-neutral">&nbsp;</span>
1420
- <span class="cline-any cline-neutral">&nbsp;</span>
1421
- <span class="cline-any cline-neutral">&nbsp;</span>
1422
- <span class="cline-any cline-neutral">&nbsp;</span>
1423
- <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-neutral">&nbsp;</span>
1425
- <span class="cline-any cline-neutral">&nbsp;</span>
1426
- <span class="cline-any cline-neutral">&nbsp;</span>
1427
- <span class="cline-any cline-neutral">&nbsp;</span>
1428
- <span class="cline-any cline-neutral">&nbsp;</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-neutral">&nbsp;</span>
1431
- <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-neutral">&nbsp;</span>
1434
- <span class="cline-any cline-neutral">&nbsp;</span>
1435
- <span class="cline-any cline-neutral">&nbsp;</span>
1436
- <span class="cline-any cline-neutral">&nbsp;</span>
1437
- <span class="cline-any cline-neutral">&nbsp;</span>
1438
- <span class="cline-any cline-neutral">&nbsp;</span>
1439
- <span class="cline-any cline-neutral">&nbsp;</span>
1440
- <span class="cline-any cline-neutral">&nbsp;</span>
1441
- <span class="cline-any cline-neutral">&nbsp;</span>
1442
- <span class="cline-any cline-neutral">&nbsp;</span>
1443
- <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-neutral">&nbsp;</span>
1445
- <span class="cline-any cline-neutral">&nbsp;</span>
1446
- <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-neutral">&nbsp;</span>
1448
- <span class="cline-any cline-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-neutral">&nbsp;</span>
1450
- <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-neutral">&nbsp;</span>
1453
- <span class="cline-any cline-neutral">&nbsp;</span>
1454
- <span class="cline-any cline-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-neutral">&nbsp;</span>
1458
- <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-neutral">&nbsp;</span>
1460
- <span class="cline-any cline-neutral">&nbsp;</span>
1461
- <span class="cline-any cline-neutral">&nbsp;</span>
1462
- <span class="cline-any cline-neutral">&nbsp;</span>
1463
- <span class="cline-any cline-neutral">&nbsp;</span>
1464
- <span class="cline-any cline-neutral">&nbsp;</span>
1465
- <span class="cline-any cline-yes">8x</span>
1466
- <span class="cline-any cline-no">&nbsp;</span>
1467
- <span class="cline-any cline-neutral">&nbsp;</span>
1468
- <span class="cline-any cline-yes">8x</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-neutral">&nbsp;</span>
1471
- <span class="cline-any cline-neutral">&nbsp;</span>
1472
- <span class="cline-any cline-yes">8x</span>
1473
- <span class="cline-any cline-yes">8x</span>
1474
- <span class="cline-any cline-yes">8x</span>
1475
- <span class="cline-any cline-neutral">&nbsp;</span>
1476
- <span class="cline-any cline-neutral">&nbsp;</span>
1477
- <span class="cline-any cline-neutral">&nbsp;</span>
1478
- <span class="cline-any cline-no">&nbsp;</span>
1479
- <span class="cline-any cline-neutral">&nbsp;</span>
1480
- <span class="cline-any cline-neutral">&nbsp;</span>
1481
- <span class="cline-any cline-neutral">&nbsp;</span>
1482
- <span class="cline-any cline-no">&nbsp;</span>
1483
- <span class="cline-any cline-no">&nbsp;</span>
1484
- <span class="cline-any cline-no">&nbsp;</span>
1485
- <span class="cline-any cline-neutral">&nbsp;</span>
1486
- <span class="cline-any cline-neutral">&nbsp;</span>
1487
- <span class="cline-any cline-neutral">&nbsp;</span>
1488
- <span class="cline-any cline-neutral">&nbsp;</span>
1489
- <span class="cline-any cline-neutral">&nbsp;</span>
1490
- <span class="cline-any cline-neutral">&nbsp;</span>
1491
- <span class="cline-any cline-no">&nbsp;</span>
1492
- <span class="cline-any cline-no">&nbsp;</span>
1493
- <span class="cline-any cline-no">&nbsp;</span>
1494
- <span class="cline-any cline-no">&nbsp;</span>
1495
- <span class="cline-any cline-no">&nbsp;</span>
1496
- <span class="cline-any cline-neutral">&nbsp;</span>
1497
- <span class="cline-any cline-neutral">&nbsp;</span>
1498
- <span class="cline-any cline-neutral">&nbsp;</span>
1499
- <span class="cline-any cline-neutral">&nbsp;</span>
1500
- <span class="cline-any cline-no">&nbsp;</span>
1501
- <span class="cline-any cline-no">&nbsp;</span>
1502
- <span class="cline-any cline-no">&nbsp;</span>
1503
- <span class="cline-any cline-no">&nbsp;</span>
1504
- <span class="cline-any cline-neutral">&nbsp;</span>
1505
- <span class="cline-any cline-neutral">&nbsp;</span>
1506
- <span class="cline-any cline-neutral">&nbsp;</span>
1507
- <span class="cline-any cline-neutral">&nbsp;</span>
1508
- <span class="cline-any cline-no">&nbsp;</span>
1509
- <span class="cline-any cline-neutral">&nbsp;</span>
1510
- <span class="cline-any cline-no">&nbsp;</span>
1511
- <span class="cline-any cline-neutral">&nbsp;</span>
1512
- <span class="cline-any cline-no">&nbsp;</span>
1513
- <span class="cline-any cline-no">&nbsp;</span>
1514
- <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-neutral">&nbsp;</span>
1516
- <span class="cline-any cline-no">&nbsp;</span>
1517
- <span class="cline-any cline-no">&nbsp;</span>
1518
- <span class="cline-any cline-neutral">&nbsp;</span>
1519
- <span class="cline-any cline-neutral">&nbsp;</span>
1520
- <span class="cline-any cline-neutral">&nbsp;</span>
1521
- <span class="cline-any cline-neutral">&nbsp;</span>
1522
- <span class="cline-any cline-neutral">&nbsp;</span>
1523
- <span class="cline-any cline-no">&nbsp;</span>
1524
- <span class="cline-any cline-no">&nbsp;</span>
1525
- <span class="cline-any cline-no">&nbsp;</span>
1526
- <span class="cline-any cline-neutral">&nbsp;</span>
1527
- <span class="cline-any cline-no">&nbsp;</span>
1528
- <span class="cline-any cline-neutral">&nbsp;</span>
1529
- <span class="cline-any cline-no">&nbsp;</span>
1530
- <span class="cline-any cline-neutral">&nbsp;</span>
1531
- <span class="cline-any cline-neutral">&nbsp;</span>
1532
- <span class="cline-any cline-neutral">&nbsp;</span>
1533
- <span class="cline-any cline-neutral">&nbsp;</span>
1534
- <span class="cline-any cline-neutral">&nbsp;</span>
1535
- <span class="cline-any cline-neutral">&nbsp;</span>
1536
- <span class="cline-any cline-neutral">&nbsp;</span>
1537
- <span class="cline-any cline-neutral">&nbsp;</span>
1538
- <span class="cline-any cline-neutral">&nbsp;</span>
1539
- <span class="cline-any cline-neutral">&nbsp;</span>
1540
- <span class="cline-any cline-neutral">&nbsp;</span>
1541
- <span class="cline-any cline-neutral">&nbsp;</span>
1542
- <span class="cline-any cline-yes">16x</span>
1543
- <span class="cline-any cline-yes">16x</span>
1544
- <span class="cline-any cline-neutral">&nbsp;</span>
1545
- <span class="cline-any cline-no">&nbsp;</span>
1546
- <span class="cline-any cline-no">&nbsp;</span>
1547
- <span class="cline-any cline-neutral">&nbsp;</span>
1548
- <span class="cline-any cline-neutral">&nbsp;</span>
1549
- <span class="cline-any cline-neutral">&nbsp;</span>
1550
- <span class="cline-any cline-neutral">&nbsp;</span>
1551
- <span class="cline-any cline-no">&nbsp;</span>
1552
- <span class="cline-any cline-no">&nbsp;</span>
1553
- <span class="cline-any cline-neutral">&nbsp;</span>
1554
- <span class="cline-any cline-neutral">&nbsp;</span>
1555
- <span class="cline-any cline-neutral">&nbsp;</span>
1556
- <span class="cline-any cline-neutral">&nbsp;</span>
1557
- <span class="cline-any cline-neutral">&nbsp;</span>
1558
- <span class="cline-any cline-yes">16x</span>
1559
- <span class="cline-any cline-neutral">&nbsp;</span>
1560
- <span class="cline-any cline-neutral">&nbsp;</span>
1561
- <span class="cline-any cline-neutral">&nbsp;</span>
1562
- <span class="cline-any cline-yes">16x</span>
1563
- <span class="cline-any cline-yes">16x</span>
1564
- <span class="cline-any cline-yes">16x</span>
1565
- <span class="cline-any cline-yes">16x</span>
1566
- <span class="cline-any cline-yes">16x</span>
1567
- <span class="cline-any cline-neutral">&nbsp;</span>
1568
- <span class="cline-any cline-yes">16x</span>
1569
- <span class="cline-any cline-yes">14x</span>
1570
- <span class="cline-any cline-yes">36x</span>
1571
- <span class="cline-any cline-yes">24x</span>
1572
- <span class="cline-any cline-neutral">&nbsp;</span>
1573
- <span class="cline-any cline-yes">24x</span>
1574
- <span class="cline-any cline-yes">24x</span>
1575
- <span class="cline-any cline-yes">24x</span>
1576
- <span class="cline-any cline-neutral">&nbsp;</span>
1577
- <span class="cline-any cline-yes">24x</span>
1578
- <span class="cline-any cline-neutral">&nbsp;</span>
1579
- <span class="cline-any cline-neutral">&nbsp;</span>
1580
- <span class="cline-any cline-yes">10x</span>
1581
- <span class="cline-any cline-yes">10x</span>
1582
- <span class="cline-any cline-neutral">&nbsp;</span>
1583
- <span class="cline-any cline-yes">24x</span>
1584
- <span class="cline-any cline-neutral">&nbsp;</span>
1585
- <span class="cline-any cline-neutral">&nbsp;</span>
1586
- <span class="cline-any cline-yes">16x</span>
1587
- <span class="cline-any cline-neutral">&nbsp;</span>
1588
- <span class="cline-any cline-neutral">&nbsp;</span>
1589
- <span class="cline-any cline-neutral">&nbsp;</span>
1590
- <span class="cline-any cline-neutral">&nbsp;</span>
1591
- <span class="cline-any cline-neutral">&nbsp;</span>
1592
- <span class="cline-any cline-neutral">&nbsp;</span>
1593
- <span class="cline-any cline-no">&nbsp;</span>
1594
- <span class="cline-any cline-no">&nbsp;</span>
1595
- <span class="cline-any cline-neutral">&nbsp;</span>
1596
- <span class="cline-any cline-neutral">&nbsp;</span>
1597
- <span class="cline-any cline-neutral">&nbsp;</span>
1598
- <span class="cline-any cline-no">&nbsp;</span>
1599
- <span class="cline-any cline-no">&nbsp;</span>
1600
- <span class="cline-any cline-no">&nbsp;</span>
1601
- <span class="cline-any cline-neutral">&nbsp;</span>
1602
- <span class="cline-any cline-neutral">&nbsp;</span>
1603
- <span class="cline-any cline-neutral">&nbsp;</span>
1604
- <span class="cline-any cline-no">&nbsp;</span>
1605
- <span class="cline-any cline-no">&nbsp;</span>
1606
- <span class="cline-any cline-no">&nbsp;</span>
1607
- <span class="cline-any cline-no">&nbsp;</span>
1608
- <span class="cline-any cline-no">&nbsp;</span>
1609
- <span class="cline-any cline-no">&nbsp;</span>
1610
- <span class="cline-any cline-neutral">&nbsp;</span>
1611
- <span class="cline-any cline-neutral">&nbsp;</span>
1612
- <span class="cline-any cline-no">&nbsp;</span>
1613
- <span class="cline-any cline-neutral">&nbsp;</span>
1614
- <span class="cline-any cline-no">&nbsp;</span>
1615
- <span class="cline-any cline-no">&nbsp;</span>
1616
- <span class="cline-any cline-neutral">&nbsp;</span>
1617
- <span class="cline-any cline-neutral">&nbsp;</span>
1618
- <span class="cline-any cline-neutral">&nbsp;</span>
1619
- <span class="cline-any cline-neutral">&nbsp;</span>
1620
- <span class="cline-any cline-neutral">&nbsp;</span>
1621
- <span class="cline-any cline-neutral">&nbsp;</span>
1622
- <span class="cline-any cline-neutral">&nbsp;</span>
1623
- <span class="cline-any cline-no">&nbsp;</span>
1624
- <span class="cline-any cline-no">&nbsp;</span>
1625
- <span class="cline-any cline-no">&nbsp;</span>
1626
- <span class="cline-any cline-neutral">&nbsp;</span>
1627
- <span class="cline-any cline-no">&nbsp;</span>
1628
- <span class="cline-any cline-no">&nbsp;</span>
1629
- <span class="cline-any cline-no">&nbsp;</span>
1630
- <span class="cline-any cline-neutral">&nbsp;</span>
1631
- <span class="cline-any cline-neutral">&nbsp;</span>
1632
- <span class="cline-any cline-neutral">&nbsp;</span>
1633
- <span class="cline-any cline-neutral">&nbsp;</span>
1634
- <span class="cline-any cline-neutral">&nbsp;</span>
1635
- <span class="cline-any cline-neutral">&nbsp;</span>
1636
- <span class="cline-any cline-neutral">&nbsp;</span>
1637
- <span class="cline-any cline-no">&nbsp;</span>
1638
- <span class="cline-any cline-no">&nbsp;</span>
1639
- <span class="cline-any cline-no">&nbsp;</span>
1640
- <span class="cline-any cline-no">&nbsp;</span>
1641
- <span class="cline-any cline-no">&nbsp;</span>
1642
- <span class="cline-any cline-no">&nbsp;</span>
1643
- <span class="cline-any cline-no">&nbsp;</span>
1644
- <span class="cline-any cline-no">&nbsp;</span>
1645
- <span class="cline-any cline-neutral">&nbsp;</span>
1646
- <span class="cline-any cline-no">&nbsp;</span>
1647
- <span class="cline-any cline-no">&nbsp;</span>
1648
- <span class="cline-any cline-neutral">&nbsp;</span>
1649
- <span class="cline-any cline-neutral">&nbsp;</span>
1650
- <span class="cline-any cline-neutral">&nbsp;</span>
1651
- <span class="cline-any cline-neutral">&nbsp;</span>
1652
- <span class="cline-any cline-neutral">&nbsp;</span>
1653
- <span class="cline-any cline-neutral">&nbsp;</span>
1654
- <span class="cline-any cline-no">&nbsp;</span>
1655
- <span class="cline-any cline-neutral">&nbsp;</span>
1656
- <span class="cline-any cline-neutral">&nbsp;</span>
1657
- <span class="cline-any cline-no">&nbsp;</span>
1658
- <span class="cline-any cline-no">&nbsp;</span>
1659
- <span class="cline-any cline-neutral">&nbsp;</span>
1660
- <span class="cline-any cline-neutral">&nbsp;</span>
1661
- <span class="cline-any cline-neutral">&nbsp;</span>
1662
- <span class="cline-any cline-neutral">&nbsp;</span>
1663
- <span class="cline-any cline-neutral">&nbsp;</span>
1664
- <span class="cline-any cline-no">&nbsp;</span>
1665
- <span class="cline-any cline-neutral">&nbsp;</span>
1666
- <span class="cline-any cline-no">&nbsp;</span>
1667
- <span class="cline-any cline-neutral">&nbsp;</span>
1668
- <span class="cline-any cline-no">&nbsp;</span>
1669
- <span class="cline-any cline-neutral">&nbsp;</span>
1670
- <span class="cline-any cline-no">&nbsp;</span>
1671
- <span class="cline-any cline-no">&nbsp;</span>
1672
- <span class="cline-any cline-neutral">&nbsp;</span>
1673
- <span class="cline-any cline-neutral">&nbsp;</span>
1674
- <span class="cline-any cline-neutral">&nbsp;</span>
1675
- <span class="cline-any cline-neutral">&nbsp;</span>
1676
- <span class="cline-any cline-no">&nbsp;</span>
1677
- <span class="cline-any cline-no">&nbsp;</span>
1678
- <span class="cline-any cline-no">&nbsp;</span>
1679
- <span class="cline-any cline-no">&nbsp;</span>
1680
- <span class="cline-any cline-no">&nbsp;</span>
1681
- <span class="cline-any cline-no">&nbsp;</span>
1682
- <span class="cline-any cline-no">&nbsp;</span>
1683
- <span class="cline-any cline-no">&nbsp;</span>
1684
- <span class="cline-any cline-neutral">&nbsp;</span>
1685
- <span class="cline-any cline-no">&nbsp;</span>
1686
- <span class="cline-any cline-no">&nbsp;</span>
1687
- <span class="cline-any cline-no">&nbsp;</span>
1688
- <span class="cline-any cline-no">&nbsp;</span>
1689
- <span class="cline-any cline-no">&nbsp;</span>
1690
- <span class="cline-any cline-neutral">&nbsp;</span>
1691
- <span class="cline-any cline-no">&nbsp;</span>
1692
- <span class="cline-any cline-no">&nbsp;</span>
1693
- <span class="cline-any cline-no">&nbsp;</span>
1694
- <span class="cline-any cline-no">&nbsp;</span>
1695
- <span class="cline-any cline-no">&nbsp;</span>
1696
- <span class="cline-any cline-neutral">&nbsp;</span>
1697
- <span class="cline-any cline-neutral">&nbsp;</span>
1698
- <span class="cline-any cline-neutral">&nbsp;</span>
1699
- <span class="cline-any cline-no">&nbsp;</span>
1700
- <span class="cline-any cline-neutral">&nbsp;</span>
1701
- <span class="cline-any cline-neutral">&nbsp;</span>
1702
- <span class="cline-any cline-neutral">&nbsp;</span>
1703
- <span class="cline-any cline-neutral">&nbsp;</span>
1704
- <span class="cline-any cline-neutral">&nbsp;</span>
1705
- <span class="cline-any cline-neutral">&nbsp;</span>
1706
- <span class="cline-any cline-neutral">&nbsp;</span>
1707
- <span class="cline-any cline-no">&nbsp;</span>
1708
- <span class="cline-any cline-neutral">&nbsp;</span>
1709
- <span class="cline-any cline-no">&nbsp;</span>
1710
- <span class="cline-any cline-no">&nbsp;</span>
1711
- <span class="cline-any cline-no">&nbsp;</span>
1712
- <span class="cline-any cline-no">&nbsp;</span>
1713
- <span class="cline-any cline-no">&nbsp;</span>
1714
- <span class="cline-any cline-neutral">&nbsp;</span>
1715
- <span class="cline-any cline-neutral">&nbsp;</span>
1716
- <span class="cline-any cline-no">&nbsp;</span>
1717
- <span class="cline-any cline-no">&nbsp;</span>
1718
- <span class="cline-any cline-no">&nbsp;</span>
1719
- <span class="cline-any cline-neutral">&nbsp;</span>
1720
- <span class="cline-any cline-neutral">&nbsp;</span>
1721
- <span class="cline-any cline-neutral">&nbsp;</span>
1722
- <span class="cline-any cline-neutral">&nbsp;</span>
1723
- <span class="cline-any cline-neutral">&nbsp;</span>
1724
- <span class="cline-any cline-no">&nbsp;</span>
1725
- <span class="cline-any cline-neutral">&nbsp;</span>
1726
- <span class="cline-any cline-no">&nbsp;</span>
1727
- <span class="cline-any cline-neutral">&nbsp;</span>
1728
- <span class="cline-any cline-no">&nbsp;</span>
1729
- <span class="cline-any cline-neutral">&nbsp;</span>
1730
- <span class="cline-any cline-no">&nbsp;</span>
1731
- <span class="cline-any cline-no">&nbsp;</span>
1732
- <span class="cline-any cline-no">&nbsp;</span>
1733
- <span class="cline-any cline-no">&nbsp;</span>
1734
- <span class="cline-any cline-neutral">&nbsp;</span>
1735
- <span class="cline-any cline-neutral">&nbsp;</span>
1736
- <span class="cline-any cline-neutral">&nbsp;</span>
1737
- <span class="cline-any cline-no">&nbsp;</span>
1738
- <span class="cline-any cline-no">&nbsp;</span>
1739
- <span class="cline-any cline-no">&nbsp;</span>
1740
- <span class="cline-any cline-neutral">&nbsp;</span>
1741
- <span class="cline-any cline-neutral">&nbsp;</span>
1742
- <span class="cline-any cline-neutral">&nbsp;</span>
1743
- <span class="cline-any cline-neutral">&nbsp;</span>
1744
- <span class="cline-any cline-neutral">&nbsp;</span>
1745
- <span class="cline-any cline-neutral">&nbsp;</span>
1746
- <span class="cline-any cline-neutral">&nbsp;</span>
1747
- <span class="cline-any cline-yes">1x</span>
1748
- <span class="cline-any cline-neutral">&nbsp;</span>
1749
- <span class="cline-any cline-neutral">&nbsp;</span>
1750
- <span class="cline-any cline-neutral">&nbsp;</span>
1751
- <span class="cline-any cline-neutral">&nbsp;</span>
1752
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { TranslatorState, shiftState, withSourceMap } from '../translator';
1753
- import Interface from './Interface__';
1754
- import { ElementToVueOptions } from './ViewElement__';
1755
- import { getNodeByNodeCallee } from '../automate/engine/utils';
1756
- import InterfaceParam from './InterfaceParam__';
1757
- import Structure from './Structure__';
1758
- import Module from './Module__';
1759
- import AuthInterface from './AuthInterface__';
1760
- import type { MemberExpression } from './MemberExpression__';
1761
- import Frontend from './Frontend__';
1762
- import type Connector from './Connector__';
1763
- //================================================================================
1764
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1765
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1766
- //================================================================================
1767
- import { EventPayload, Params } from '../common/EventEmitter';
1768
- import { concept, excludedInJSON, property, className } from '../decorators';
1769
- &nbsp;
1770
- import * as utils from '../utils';
1771
- import { v4 as uuidv4 } from 'uuid';
1772
- import BaseNode from '../common/BaseNode';
1773
- import Argument from './Argument__';
1774
- import LogicItem from './LogicItem__';
1775
- &nbsp;
1776
- /**
1777
- * 调用接口
1778
- */
1779
- @className
1780
- @concept('调用接口')
1781
- // @ts-ignore
1782
- export class CallInterface extends LogicItem {
1783
- /** 类名 */
1784
- static readonly ConceptName = 'CallInterface';
1785
- &nbsp;
1786
- /**
1787
- * 产品概念
1788
- */
1789
- // @ts-ignore
1790
- readonly concept!: 'CallInterface' | 'CallAuthInterface';
1791
- &nbsp;
1792
- /**
1793
- * 调用接口标题
1794
- */
1795
- @property()
1796
- label: string = '调用接口';
1797
- &nbsp;
1798
- /**
1799
- * calleeNamespace
1800
- */
1801
- @property()
1802
- // @ts-ignore
1803
- calleeNamespace!: string;
1804
- &nbsp;
1805
- /**
1806
- * calleeName
1807
- */
1808
- @property()
1809
- // @ts-ignore
1810
- calleeName!: string;
1811
- &nbsp;
1812
- /**
1813
- * shortcut
1814
- */
1815
- @property()
1816
- // @ts-ignore
1817
- shortcut!: boolean;
1818
- &nbsp;
1819
- /**
1820
- * 实际参数
1821
- */
1822
- @property('Argument')
1823
- arguments: Array&lt;Argument&gt; = [];
1824
- &nbsp;
1825
- /**
1826
- * @param source 需要合并的部分参数
1827
- */
1828
- constructor(source?: Partial&lt;CallInterface&gt;) {
1829
- source = Object.assign({}, CallInterface.getDefaultOptions(), source);
1830
- super(source);
1831
- super.subConstructor(source);
1832
- }
1833
- &nbsp;
1834
- static from(source: any, parentNode?: any, parentKey?: string): CallInterface {
1835
- return super.from(source, parentNode, parentKey) as CallInterface;
1836
- }
1837
- &nbsp;
1838
- /**
1839
- * 插入实际参数
1840
- * @internal
1841
- * @param argumentOptions 实际参数参数
1842
- */
1843
- _insertArgumentAt(argumentOptions: Partial&lt;Argument&gt;, index: number): Argument;
1844
- &nbsp;
1845
- /**
1846
- * 插入实际参数
1847
- * @internal
1848
- * @param argument 已有的实际参数实例
1849
- */
1850
- _insertArgumentAt(argument: Argument, index: number): Argument;
1851
- &nbsp;
1852
- <span class="fstat-no" title="function not covered" > _insertArgumentAt(</span>options: Partial&lt;Argument&gt; | Argument, index: number) {
1853
- const argumentOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
1854
- const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'arguments' };</span>
1855
- let argument: Argument;
1856
- <span class="cstat-no" title="statement not covered" > if (options instanceof Argument) {</span>
1857
- <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
1858
- <span class="cstat-no" title="statement not covered" > argument = options;</span>
1859
- <span class="cstat-no" title="statement not covered" > Object.assign(argument, relationOptions);</span>
1860
- } else {
1861
- <span class="cstat-no" title="statement not covered" > argument = Argument.from(</span>
1862
- {
1863
- ...argumentOptions,
1864
- ...options,
1865
- },
1866
- this,
1867
- 'arguments',
1868
- );
1869
- }
1870
- <span class="cstat-no" title="statement not covered" > this.arguments.splice(index, 0, argument);</span>
1871
- <span class="cstat-no" title="statement not covered" > return argument;</span>
1872
- }
1873
- &nbsp;
1874
- /**
1875
- * 插入实际参数
1876
- * @param argumentOptions 实际参数参数
1877
- */
1878
- insertArgumentAt(argumentOptions: Partial&lt;Argument&gt;, index: number): Argument;
1879
- &nbsp;
1880
- /**
1881
- * 插入实际参数
1882
- * @param argument 已有的实际参数实例
1883
- */
1884
- insertArgumentAt(argument: Argument, index: number): Argument;
1885
- &nbsp;
1886
- <span class="fstat-no" title="function not covered" > insertArgumentAt(</span>options: Partial&lt;Argument&gt; | Argument, index: number) {
1887
- const node = <span class="cstat-no" title="statement not covered" >this._insertArgumentAt(options as any, index);</span>
1888
- <span class="cstat-no" title="statement not covered" > node.create({</span>
1889
- index,
1890
- parentNode: this,
1891
- parentKey: 'arguments',
1892
- });
1893
- <span class="cstat-no" title="statement not covered" > return node;</span>
1894
- }
1895
- &nbsp;
1896
- /**
1897
- * 添加实际参数
1898
- * @internal
1899
- * @param argumentOptions 实际参数参数
1900
- */
1901
- _addArgument(argumentOptions: Partial&lt;Argument&gt;): Argument;
1902
- &nbsp;
1903
- /**
1904
- * 添加实际参数
1905
- * @internal
1906
- * @param argument 已有的实际参数实例
1907
- */
1908
- _addArgument(argument: Argument): Argument;
1909
- &nbsp;
1910
- <span class="fstat-no" title="function not covered" > _addArgument(</span>options?: Partial&lt;Argument&gt; | Argument) {
1911
- const index = <span class="cstat-no" title="statement not covered" >this.arguments.length;</span>
1912
- <span class="cstat-no" title="statement not covered" > return this._insertArgumentAt(options as any, index);</span>
1913
- }
1914
- &nbsp;
1915
- /**
1916
- * 添加实际参数
1917
- * @param argumentOptions 实际参数参数
1918
- */
1919
- addArgument(argumentOptions: Partial&lt;Argument&gt;): Argument;
1920
- &nbsp;
1921
- /**
1922
- * 添加实际参数
1923
- * @param argument 已有的实际参数实例
1924
- */
1925
- addArgument(argument: Argument): Argument;
1926
- &nbsp;
1927
- <span class="fstat-no" title="function not covered" > addArgument(</span>options?: Partial&lt;Argument&gt; | Argument) {
1928
- const node = <span class="cstat-no" title="statement not covered" >this._addArgument(options as any);</span>
1929
- const index = <span class="cstat-no" title="statement not covered" >this.arguments.indexOf(node);</span>
1930
- <span class="cstat-no" title="statement not covered" > node.create({</span>
1931
- index,
1932
- parentNode: this,
1933
- parentKey: 'arguments',
1934
- });
1935
- <span class="cstat-no" title="statement not covered" > return node;</span>
1936
- }
1937
- &nbsp;
1938
- /**
1939
- * 删除实际参数
1940
- * @param argument 已有的实际参数实例
1941
- */
1942
- removeArgument(argument: Argument): void;
1943
- &nbsp;
1944
- <span class="fstat-no" title="function not covered" > removeArgument(</span>options: Argument) {
1945
- let argument: Argument = <span class="cstat-no" title="statement not covered" >options;</span>
1946
- <span class="cstat-no" title="statement not covered" > return argument.delete();</span>
1947
- }
1948
- &nbsp;
1949
- <span class="fstat-no" title="function not covered" > __removeLogicItem(</span>logicItem: LogicItem) {
1950
- const parentKey = <span class="cstat-no" title="statement not covered" >logicItem.parentKey;</span>
1951
- const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
1952
- parentNode: this,
1953
- parentKey,
1954
- index: -1,
1955
- object: null,
1956
- oldObject: logicItem,
1957
- };
1958
- <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
1959
- <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
1960
- <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
1961
- const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(logicItem);</span>
1962
- <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
1963
- <span class="cstat-no" title="statement not covered" > params.index = index;</span>
1964
- } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === logicItem) {</span>
1965
- <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
1966
- (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
1967
- }
1968
- }
1969
- <span class="cstat-no" title="statement not covered" > return params;</span>
1970
- }
1971
- &nbsp;
1972
- //================================================================================
1973
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1974
- // 自动生成的代码已结束。下面可以手动编写。
1975
- //================================================================================
1976
- &nbsp;
1977
- /**
1978
- * 标识当前删除是否为鉴权方式更新导致的删除。
1979
- * 针对此种删除,删除逻辑已经处理,无需再走 deleteCallNode 逻辑
1980
- */
1981
- @property('Boolean')
1982
- __authDelete: Boolean = false;
1983
- &nbsp;
1984
- // 删除调用接口时且接口无引用,删除接口和数据结构
1985
- <span class="fstat-no" title="function not covered" > async </span>deleteCallNode() {
1986
- <span class="cstat-no" title="statement not covered" > if (this.calleeKey !== '__IDENTIFIER__' &amp;&amp; !this.__authDelete) {</span>
1987
- (<span class="cstat-no" title="statement not covered" >this as any).__deleteCallNodeTimer = setTimeout(<span class="fstat-no" title="function not covered" >async </span>() =&gt; {</span>
1988
- <span class="cstat-no" title="statement not covered" > clearTimeout((this as any).__deleteCallNodeTimer);</span>
1989
- // 计算之前选择的接口的引用次数
1990
- const oldItf: Interface = <span class="cstat-no" title="statement not covered" >this.getCallNode();</span>
1991
- <span class="cstat-no" title="statement not covered" > if (oldItf) {</span>
1992
- let refCount = <span class="cstat-no" title="statement not covered" >0;</span>
1993
- const refs = (<span class="cstat-no" title="statement not covered" >await oldItf.findUsage())</span> as Map&lt;any, any&gt;;
1994
- &nbsp;
1995
- const isOnlyUsedByFronted =
1996
- <span class="cstat-no" title="statement not covered" > refs.size === 1 &amp;&amp; Array.from(refs.keys()).filter(<span class="fstat-no" title="function not covered" >(k</span>ey) =&gt; <span class="cstat-no" title="statement not covered" >key instanceof Frontend)</span>.length &gt; 0;</span>
1997
- const isAuthInterface = <span class="cstat-no" title="statement not covered" >oldItf instanceof AuthInterface;</span>
1998
- // 当仅仅只有前端使用,且该接口是鉴权接口时需要将接口还原为普通接口
1999
- <span class="cstat-no" title="statement not covered" > if (isOnlyUsedByFronted &amp;&amp; isAuthInterface) {</span>
2000
- <span class="cstat-no" title="statement not covered" > this.replaceToInterface(oldItf);</span>
2001
- }
2002
- <span class="cstat-no" title="statement not covered" > refs.forEach(<span class="fstat-no" title="function not covered" >(v</span>al: any) =&gt; {</span>
2003
- const loopFindNode = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
2004
- <span class="cstat-no" title="statement not covered" > if (item.children) {</span>
2005
- <span class="cstat-no" title="statement not covered" > item.children.forEach(<span class="fstat-no" title="function not covered" >(c</span>hild: any) =&gt; <span class="cstat-no" title="statement not covered" >loopFindNode(child))</span>;</span>
2006
- } else {
2007
- <span class="cstat-no" title="statement not covered" > refCount++;</span>
2008
- }
2009
- };
2010
- <span class="cstat-no" title="statement not covered" > loopFindNode(val);</span>
2011
- });
2012
- // 无引用则删除
2013
- <span class="cstat-no" title="statement not covered" > if (!refCount) {</span>
2014
- // 删除旧的接口、接口的数据结构
2015
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', { actionMsg: '删除接口' });</span>
2016
- const parentModule = <span class="cstat-no" title="statement not covered" >oldItf.module || oldItf.connector;</span>
2017
- <span class="cstat-no" title="statement not covered" > if (oldItf.module) {</span>
2018
- const shouldDeleteStructures: Structure[] = <span class="cstat-no" title="statement not covered" >[]</span>
2019
- <span class="cstat-no" title="statement not covered" > oldItf.module.getInterfaceStructureMap().forEach(<span class="fstat-no" title="function not covered" >(i</span>tfs, stru) =&gt; {</span>
2020
- <span class="cstat-no" title="statement not covered" > if (itfs.size === 1 &amp;&amp; itfs.has(oldItf)) {</span>
2021
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.push(stru)</span>
2022
- }
2023
- })
2024
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.forEach(<span class="fstat-no" title="function not covered" >(s</span>: Structure) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2025
- } else {
2026
- const shouldDeleteStructures = <span class="cstat-no" title="statement not covered" >oldItf.getRefStructures(parentModule.structures);</span>
2027
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.forEach(<span class="fstat-no" title="function not covered" >(s</span>: Structure) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2028
- }
2029
- <span class="cstat-no" title="statement not covered" > oldItf.delete();</span>
2030
- <span class="cstat-no" title="statement not covered" > oldItf.afterDelete();</span>
2031
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2032
- }
2033
- }
2034
- }, 350);
2035
- }
2036
- }
2037
- &nbsp;
2038
- <span class="fstat-no" title="function not covered" > replaceToInterface(</span>oldItf: AuthInterface) {
2039
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', { actionMsg: '调用接口恢复为非鉴权' });</span>
2040
- const { name, originLogicName, path, method, description, params, returns, protocol, protocolParams } = <span class="cstat-no" title="statement not covered" >oldItf;</span>
2041
- const newInterface = <span class="cstat-no" title="statement not covered" >new Interface({</span>
2042
- name,
2043
- originLogicName,
2044
- path,
2045
- method,
2046
- description,
2047
- params,
2048
- returns,
2049
- protocol,
2050
- protocolParams,
2051
- });
2052
- const m = <span class="cstat-no" title="statement not covered" >oldItf.parentNode as Module;</span>
2053
- const interfaceIndex = <span class="cstat-no" title="statement not covered" >m?.interfaces?.findIndex?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === oldItf.name)</span>;</span>
2054
- <span class="cstat-no" title="statement not covered" > oldItf.delete();</span>
2055
- <span class="cstat-no" title="statement not covered" > m.insertInterfaceAt(newInterface, interfaceIndex);</span>
2056
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2057
- }
2058
- &nbsp;
2059
- get tsCalleeNamespace() {
2060
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.calleeNamespace) {
2061
- let tsCalleeNamespace = this.calleeNamespace;
2062
- tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, <span class="fstat-no" title="function not covered" >(m</span>) =&gt; <span class="cstat-no" title="statement not covered" >m.replace('.', '.$'))</span>;
2063
- tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
2064
- return tsCalleeNamespace;
2065
- }
2066
- <span class="cstat-no" title="statement not covered" > return '';</span>
2067
- }
2068
- &nbsp;
2069
- <span class="fstat-no" title="function not covered" > toVue(</span>options?: ElementToVueOptions): string {
2070
- let code = <span class="cstat-no" title="statement not covered" >this.calleeName;</span>
2071
- <span class="cstat-no" title="statement not covered" > code += '(';</span>
2072
- <span class="cstat-no" title="statement not covered" > this.arguments?.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
2073
- <span class="cstat-no" title="statement not covered" > code += arg?.toVue(options);</span>
2074
- <span class="cstat-no" title="statement not covered" > if (index !== this.arguments?.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
2075
- });
2076
- <span class="cstat-no" title="statement not covered" > code += ')';</span>
2077
- <span class="cstat-no" title="statement not covered" > return code;</span>
2078
- }
2079
- &nbsp;
2080
- <span class="fstat-no" title="function not covered" > toUI(</span>state?: TranslatorState): string {
2081
- let code = <span class="cstat-no" title="statement not covered" >this.calleeName;</span>
2082
- <span class="cstat-no" title="statement not covered" > code += '(';</span>
2083
- <span class="cstat-no" title="statement not covered" > this.arguments?.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
2084
- <span class="cstat-no" title="statement not covered" > code += arg?.toUI();</span>
2085
- <span class="cstat-no" title="statement not covered" > if (index !== this.arguments?.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
2086
- });
2087
- <span class="cstat-no" title="statement not covered" > code += ')';</span>
2088
- <span class="cstat-no" title="statement not covered" > return code;</span>
2089
- }
2090
- &nbsp;
2091
- toJS(state?: TranslatorState): string {
2092
- const { calleewholeKey, app, completeArguments } = this;
2093
- const [, _name, , _interfaceName] = calleewholeKey.split('.');
2094
- let _module: Module | Connector;
2095
- // 由于自定义连接器的引入,目前在 集成中心下也存在着一部分接口
2096
- // 因此,需要额外判断,如果是自定义连接器需要拿 app.dependencies 中的接口或者 app.integration 中connector下面的接口
2097
- const isCustomConnector = this.getAncestor('Connector');
2098
- const isInIntegration = this.getAncestor('Integration');
2099
- <span class="missing-if-branch" title="if path not taken" >I</span>if (isCustomConnector &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >isInIntegration)</span> {
2100
- <span class="cstat-no" title="statement not covered" > _module = app?.integration?.connectors?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2101
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (isCustomConnector &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!isInIntegration)</span> {
2102
- <span class="cstat-no" title="statement not covered" > _module = app?.dependencies?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2103
- } else {
2104
- // default
2105
- _module = app?.interfaceDependencies?.find?.((item) =&gt; item.name === _name);
2106
- }
2107
- const _interface = (_module as Module)?.interfaces?.find?.((item) =&gt; item.name === _interfaceName);
2108
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!_interface) {
2109
- <span class="cstat-no" title="statement not covered" > if (!this.calleeNamespace || !this.calleeName) <span class="cstat-no" title="statement not covered" >throw new Error('调用接口为空');</span></span>
2110
- <span class="cstat-no" title="statement not covered" > throw new Error(`${_name}下的${_interfaceName}接口未找到`);</span>
2111
- }
2112
- let isSimpleBody = false; // 兼容body只有基本类型的
2113
- const _params = _interface.params;
2114
- const _queries = _params.filter((item) =&gt; item.in === 'query').map((item) =&gt; item.name);
2115
- const _headers = _params.filter((item) =&gt; item.in === 'header').map((item) =&gt; item.name);
2116
- const _body = _params
2117
- .filter((item) =&gt; item.in === 'body')
2118
- .map((item) =&gt; {
2119
- if (item.typeAnnotation.typeKind === 'primitive') {
2120
- isSimpleBody = true;
2121
- }
2122
- return item.name;
2123
- });
2124
- const _paths = _params.filter((item) =&gt; item.in === 'path').map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name)</span>;
2125
- &nbsp;
2126
- /** 填充参数信息 */
2127
- const setArgumentCode = (args: Argument[], keys: string[], code: string, useKeyWord: boolean, useRest: boolean) =&gt; {
2128
- const filledArgs = args
2129
- // 维持原样,暂时不过滤没有填入值的参数
2130
- // .filter((arg) =&gt; Boolean(arg?.expression))
2131
- .filter((arg) =&gt; keys.includes(arg.keyword));
2132
- &nbsp;
2133
- filledArgs.forEach((arg, index) =&gt; {
2134
- if (useRest) {
2135
- code += ` ...${arg?.toJS(shiftState(state, code))}`;
2136
- } else if (useKeyWord) {
2137
- code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
2138
- } else {
2139
- code += ` ${arg?.toJS(shiftState(state, code))}`;
2140
- }
2141
- &nbsp;
2142
- if (index !== args.length - 1) {
2143
- code += ', ';
2144
- }
2145
- });
2146
- &nbsp;
2147
- <span class="missing-if-branch" title="if path not taken" >I</span>if (filledArgs.length === 0 &amp;&amp; !useKeyWord &amp;&amp; !useRest) {
2148
- <span class="cstat-no" title="statement not covered" > code += 'undefined';</span>
2149
- }
2150
- &nbsp;
2151
- return code;
2152
- };
2153
- &nbsp;
2154
- let code = `await this.$services['_custom']['${this.calleeNamespace}.${this.calleeName}']`;
2155
- &nbsp;
2156
- code += `({ config: {\ndownload: false,\n },\nquery: {`;
2157
- code = setArgumentCode(completeArguments, _queries, code, true, false);
2158
- code += `}, path: {`;
2159
- code = setArgumentCode(completeArguments, _paths, code, true, false);
2160
- code += `}, headers: {`;
2161
- code = setArgumentCode(completeArguments, _headers, code, true, false);
2162
- code += `},\n`;
2163
- &nbsp;
2164
- if (isSimpleBody) {
2165
- code += `body: `;
2166
- code = setArgumentCode(completeArguments, _body, code, false, false);
2167
- } else {
2168
- code += `body: {`;
2169
- code = setArgumentCode(completeArguments, _body, code, false, true);
2170
- code += '}';
2171
- }
2172
- &nbsp;
2173
- code += '\n})';
2174
- const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
2175
- const needGenInitFromSchema = typeAnnotation &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!['primitive', 'union'].includes(typeAnnotation.typeKind);</span>
2176
- <span class="missing-if-branch" title="if path not taken" >I</span>if (needGenInitFromSchema) {
2177
- <span class="cstat-no" title="statement not covered" > code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;</span>
2178
- }
2179
- return code;
2180
- }
2181
- &nbsp;
2182
- @withSourceMap()
2183
- toEmbeddedTS(state?: TranslatorState): string {
2184
- const { completeArguments, parentNode, parentKey, tsCalleeKey } = this;
2185
- &nbsp;
2186
- let code = `${tsCalleeKey}(`;
2187
- &nbsp;
2188
- if (completeArguments?.length) {
2189
- code += '{';
2190
- completeArguments?.forEach((arg, index) =&gt; {
2191
- code += arg?.toEmbeddedTS(shiftState(state, code), arg.paramRequired, true);
2192
- if (index !== this.arguments?.length - 1) code += ', ';
2193
- });
2194
- code += '}';
2195
- }
2196
- code += ')';
2197
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
2198
- parentNode.concept !== 'Argument' &amp;&amp;
2199
- parentKey !== 'test' &amp;&amp;
2200
- parentKey !== 'patterns' &amp;&amp;
2201
- parentKey !== 'returnExpression' &amp;&amp;
2202
- parentNode.concept !== 'Assignment' &amp;&amp;
2203
- parentNode.concept !== 'ForEachStatement' &amp;&amp;
2204
- parentNode.concept !== 'SelectMembers' &amp;&amp;
2205
- parentNode.concept !== 'UnaryExpression' &amp;&amp;
2206
- parentNode.concept !== 'BinaryExpression' &amp;&amp;
2207
- parentNode.concept !== 'MemberExpression' &amp;&amp;
2208
- parentNode.concept !== 'StringInterpolation' &amp;&amp;
2209
- !['NewMap', 'NewList'].includes(parentNode.concept)
2210
- ) {
2211
- code += ';';
2212
- }
2213
- code += '\n';
2214
- return code;
2215
- }
2216
- &nbsp;
2217
- <span class="fstat-no" title="function not covered" > toBrief(</span>): string {
2218
- <span class="cstat-no" title="statement not covered" > return this.arguments.map(<span class="fstat-no" title="function not covered" >(a</span>) =&gt; <span class="cstat-no" title="statement not covered" >a.toBrief())</span>.join('&lt;br /&gt;');</span>
2219
- }
2220
- &nbsp;
2221
- <span class="fstat-no" title="function not covered" > get c</span>alleeKey(): string {
2222
- const { tsCalleeNamespace } = <span class="cstat-no" title="statement not covered" >this;</span>
2223
- const { calleeName } = <span class="cstat-no" title="statement not covered" >this;</span>
2224
- <span class="cstat-no" title="statement not covered" > return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';</span>
2225
- }
2226
- &nbsp;
2227
- // 用于logic回填
2228
- get calleewholeKey(): string {
2229
- return `${this.calleeNamespace}.${this.calleeName}`;
2230
- }
2231
- &nbsp;
2232
- get tsCalleeName(): string {
2233
- const excludeds = [
2234
- 'abstract',
2235
- 'arguments',
2236
- 'await',
2237
- 'boolean',
2238
- 'break',
2239
- 'byte',
2240
- 'case',
2241
- 'catch',
2242
- 'char',
2243
- 'class',
2244
- 'const',
2245
- 'continue',
2246
- 'debugger',
2247
- 'default',
2248
- 'delete',
2249
- 'do',
2250
- 'double',
2251
- 'decimal',
2252
- 'else',
2253
- 'enum',
2254
- 'eval',
2255
- 'export',
2256
- 'extends',
2257
- 'false',
2258
- 'final',
2259
- 'finally',
2260
- 'float',
2261
- 'for',
2262
- 'function',
2263
- 'goto',
2264
- 'if',
2265
- 'implements',
2266
- 'import',
2267
- 'in',
2268
- 'instanceof',
2269
- 'int',
2270
- 'interface',
2271
- 'let',
2272
- 'long',
2273
- 'native',
2274
- 'new',
2275
- 'null',
2276
- 'package',
2277
- 'private',
2278
- 'protected',
2279
- 'public',
2280
- 'return',
2281
- 'short',
2282
- 'static',
2283
- 'super',
2284
- 'switch',
2285
- 'synchronized',
2286
- 'this',
2287
- 'throw',
2288
- 'throws',
2289
- 'transient',
2290
- 'true',
2291
- 'try',
2292
- 'typeof',
2293
- 'var',
2294
- 'void',
2295
- 'volatile',
2296
- 'while',
2297
- 'with',
2298
- 'yield,as',
2299
- 'any',
2300
- 'number',
2301
- 'string',
2302
- 'get',
2303
- 'type',
2304
- 'typeof',
2305
- 'instanceof',
2306
- 'require',
2307
- ];
2308
- <span class="missing-if-branch" title="if path not taken" >I</span>if (excludeds.includes(this.calleeName)) {
2309
- <span class="cstat-no" title="statement not covered" > return `_${this.calleeName}`;</span>
2310
- }
2311
- return this.calleeName;
2312
- }
2313
- &nbsp;
2314
- get tsCalleeKey(): string {
2315
- const { tsCalleeNamespace } = this;
2316
- const calleeName = this.tsCalleeName;
2317
- return calleeName ? `${tsCalleeNamespace}.${calleeName}` : <span class="branch-1 cbranch-no" title="branch not covered" >'__IDENTIFIER__';</span>
2318
- }
2319
- &nbsp;
2320
- <span class="fstat-no" title="function not covered" > get c</span>alleeDefaultKey(): string {
2321
- <span class="cstat-no" title="statement not covered" > return `${this.calleeNamespace}.${this.calleeName}`;</span>
2322
- }
2323
- &nbsp;
2324
- <span class="fstat-no" title="function not covered" > _setCallee(</span>_interface: Interface) {
2325
- <span class="cstat-no" title="statement not covered" > this.arguments = [];</span>
2326
- <span class="cstat-no" title="statement not covered" > _interface.params.forEach(<span class="fstat-no" title="function not covered" >(p</span>aram) =&gt; {</span>
2327
- <span class="cstat-no" title="statement not covered" > this._addArgument({</span>
2328
- keyword: param.name,
2329
- });
2330
- });
2331
- }
2332
- &nbsp;
2333
- <span class="fstat-no" title="function not covered" > setCallee(</span>_interface: Interface) {
2334
- const calleeNamespace = <span class="cstat-no" title="statement not covered" >_interface.getNamespace();</span>
2335
- const calleeName = <span class="cstat-no" title="statement not covered" >_interface.name;</span>
2336
- const params = <span class="cstat-no" title="statement not covered" >_interface.params.map(<span class="fstat-no" title="function not covered" >(p</span>aram) =&gt; {</span>
2337
- const oldArgument = <span class="cstat-no" title="statement not covered" >this.arguments.find(<span class="fstat-no" title="function not covered" >(n</span>ode) =&gt; <span class="cstat-no" title="statement not covered" >node.keyword === param.name)</span></span>
2338
- <span class="cstat-no" title="statement not covered" > return Argument.from({</span>
2339
- keyword: param.name,
2340
- expression: oldArgument ? oldArgument.expression : undefined
2341
- }, this, 'arguments');
2342
- });
2343
- const oldArguments = <span class="cstat-no" title="statement not covered" >this.arguments.reduce(<span class="fstat-no" title="function not covered" >(r</span>es, argumentNode) =&gt; {</span>
2344
- const targetParam = <span class="cstat-no" title="statement not covered" >_interface.params.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === argumentNode.keyword)</span></span>
2345
- <span class="cstat-no" title="statement not covered" > if (!targetParam) {</span>
2346
- <span class="cstat-no" title="statement not covered" > res.push(Argument.from({</span>
2347
- keyword: argumentNode.keyword,
2348
- expression: argumentNode ? argumentNode.expression : undefined
2349
- }, this, 'arguments'))
2350
- }
2351
- <span class="cstat-no" title="statement not covered" > return res</span>
2352
- }, [])
2353
- <span class="cstat-no" title="statement not covered" > params.push(...oldArguments)</span>
2354
- &nbsp;
2355
- <span class="cstat-no" title="statement not covered" > if (this.app) {</span>
2356
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', {</span>
2357
- actionMsg: `切换调用逻辑`,
2358
- });
2359
- const { parentNode } = <span class="cstat-no" title="statement not covered" >this;</span>
2360
- <span class="cstat-no" title="statement not covered" > this.update({</span>
2361
- calleeNamespace,
2362
- calleeName,
2363
- arguments: params,
2364
- folded: false,
2365
- });
2366
- <span class="cstat-no" title="statement not covered" > if (parentNode.concept === 'MemberExpression') {</span>
2367
- const topNode = (<span class="cstat-no" title="statement not covered" >parentNode as MemberExpression).firstMemberExpressionNode();</span>
2368
- <span class="cstat-no" title="statement not covered" > topNode.replaceNode(this);</span>
2369
- }
2370
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2371
- } else {
2372
- <span class="cstat-no" title="statement not covered" > this.update({</span>
2373
- calleeNamespace,
2374
- calleeName,
2375
- arguments: params,
2376
- folded: false,
2377
- });
2378
- }
2379
- }
2380
- &nbsp;
2381
- // 通过内容过去节点
2382
- getCallNode() {
2383
- let node;
2384
- // 如果是其余app下自定义逻辑
2385
- try {
2386
- node = getNodeByNodeCallee(this.app, this.calleewholeKey, <span class="fstat-no" title="function not covered" >(k</span>ey: any, tempPoint: any) =&gt; {
2387
- // 处理 NASL 中未定义的假的节点
2388
- <span class="cstat-no" title="statement not covered" > if (key === tempPoint.name) {</span>
2389
- <span class="cstat-no" title="statement not covered" > return {</span>
2390
- tempPoint,
2391
- state: 1,
2392
- };
2393
- }
2394
- const t = <span class="cstat-no" title="statement not covered" >tempPoint[key];</span>
2395
- <span class="cstat-no" title="statement not covered" > return {</span>
2396
- tempPoint: t,
2397
- state: Array.isArray(t) ? 2 : 1,
2398
- };
2399
- });
2400
- } catch (err) {}
2401
- return node;
2402
- }
2403
- &nbsp;
2404
- get completeArguments() {
2405
- const node = this.getCallNode();
2406
- let logicParam: InterfaceParam[] = [];
2407
- const Arguments: Argument[] = [];
2408
- <span class="missing-if-branch" title="else path not taken" >E</span>if (node?.params) {
2409
- logicParam = node.params;
2410
- }
2411
- if (this.arguments?.length) {
2412
- this.arguments.forEach((arg) =&gt; {
2413
- const idx = logicParam.findIndex((params) =&gt; arg.keyword === params.name);
2414
- const param = logicParam[idx];
2415
- &nbsp;
2416
- arg.paramRequired = param?.required;
2417
- arg.paramTypeAnnotation = undefined;
2418
- arg.paramDefaultValue = undefined;
2419
- // 取到是不是必填放入参数中
2420
- if (param &amp;&amp; !arg.expression) {
2421
- // 非必填时 才会有默认值
2422
- // 因为之前接口这里的必填非必填,一直是有值的,而且不允许修改
2423
- arg.paramTypeAnnotation = param.typeAnnotation;
2424
- arg.paramDefaultValue = param.defaultValue;
2425
- }
2426
- Arguments.push(arg);
2427
- });
2428
- }
2429
- return Arguments;
2430
- }
2431
- &nbsp;
2432
- /**
2433
- * 反向查找对应 module 和 interface
2434
- */
2435
- <span class="fstat-no" title="function not covered" > getModuleInterface(</span>) {
2436
- <span class="cstat-no" title="statement not covered" > if (!this.calleeNamespace || !this.calleeName)</span>
2437
- <span class="cstat-no" title="statement not covered" > return {</span>
2438
- _module: null,
2439
- _interface: null,
2440
- };
2441
- const _arr = <span class="cstat-no" title="statement not covered" >this.calleewholeKey.split('.');</span>
2442
- const _name = <span class="cstat-no" title="statement not covered" >_arr[1];</span>
2443
- const _interfaceName = <span class="cstat-no" title="statement not covered" >_arr[3];</span>
2444
- let _module: Module | Connector;
2445
- // 由于自定义连接器的引入,目前在 集成中心下也存在着一部分接口
2446
- // 因此,需要额外判断,如果是自定义连接器需要拿 app.dependencies 中的接口或者 app.integration 中connector下面的接口
2447
- const isCustomConnector = <span class="cstat-no" title="statement not covered" >this.getAncestor('Connector');</span>
2448
- const isInIntegration = <span class="cstat-no" title="statement not covered" >this.getAncestor('Integration');</span>
2449
- <span class="cstat-no" title="statement not covered" > if (isCustomConnector &amp;&amp; isInIntegration) {</span>
2450
- <span class="cstat-no" title="statement not covered" > _module = this.app?.integration?.connectors?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2451
- } else <span class="cstat-no" title="statement not covered" >if (isCustomConnector &amp;&amp; !isInIntegration) {</span>
2452
- <span class="cstat-no" title="statement not covered" > _module = this.app?.dependencies?.find?.(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2453
- } else {
2454
- // default
2455
- <span class="cstat-no" title="statement not covered" > _module = this.app.interfaceDependencies.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _name)</span>;</span>
2456
- }
2457
- const _interface = <span class="cstat-no" title="statement not covered" >_module?.interfaces.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === _interfaceName)</span>;</span>
2458
- <span class="cstat-no" title="statement not covered" > return {</span>
2459
- _module,
2460
- _interface,
2461
- };
2462
- }
2463
- &nbsp;
2464
- // 导入接口
2465
- <span class="fstat-no" title="function not covered" > async </span>createOrUpdateInterface({ moduleData, selectedModule }: { moduleData: Partial&lt;Module&gt;; selectedModule: any }) {
2466
- const moduleName = <span class="cstat-no" title="statement not covered" >moduleData.name;</span>
2467
- const itfData = <span class="cstat-no" title="statement not covered" >moduleData.interfaces[0];</span>
2468
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', { actionMsg: '调用接口' });</span>
2469
- &nbsp;
2470
- let module = <span class="cstat-no" title="statement not covered" >this.app.interfaceDependencies.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === moduleName)</span>;</span>
2471
- <span class="cstat-no" title="statement not covered" > if (!module) {</span>
2472
- <span class="cstat-no" title="statement not covered" > module = this.app.addModuleInInterfaceDependencies({</span>
2473
- name: moduleName,
2474
- configuration: moduleData.configuration,
2475
- type: 'interface',
2476
- isAdd: true,
2477
- });
2478
- }
2479
- // 将依赖库的config添加到APP的config中
2480
- <span class="cstat-no" title="statement not covered" > if (selectedModule.appType === 'DUBBO' &amp;&amp; moduleData.configuration &amp;&amp; moduleData.configuration.groups) {</span>
2481
- const configGroupData = <span class="cstat-no" title="statement not covered" >moduleData.configuration.groups[0];</span>
2482
- <span class="cstat-no" title="statement not covered" > if (configGroupData) {</span>
2483
- const configGroup = <span class="cstat-no" title="statement not covered" >this.app.configuration.getGroup(configGroupData.name);</span>
2484
- <span class="cstat-no" title="statement not covered" > if (configGroup) {</span>
2485
- const propertyData = <span class="cstat-no" title="statement not covered" >configGroupData.properties[0];</span>
2486
- <span class="cstat-no" title="statement not covered" > if (propertyData) {</span>
2487
- const property = <span class="cstat-no" title="statement not covered" >configGroup.getProperty(propertyData.name);</span>
2488
- // 已导入的不覆盖
2489
- <span class="cstat-no" title="statement not covered" > if (!property) {</span>
2490
- <span class="cstat-no" title="statement not covered" > configGroup.addConfigProperty(propertyData);</span>
2491
- }
2492
- }
2493
- }
2494
- }
2495
- }
2496
- &nbsp;
2497
- let targetItf = <span class="cstat-no" title="statement not covered" >module.interfaces.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.name === itfData.name)</span>;</span>
2498
- // 根据 targetItf 是否是AuthInterface 来确定生成什么类型的接口
2499
- let newItf;
2500
- <span class="cstat-no" title="statement not covered" > if (targetItf &amp;&amp; targetItf.concept === 'AuthInterface') {</span>
2501
- <span class="cstat-no" title="statement not covered" > newItf = new AuthInterface({</span>
2502
- ...itfData,
2503
- authLogic: (targetItf as AuthInterface).authLogic,
2504
- concept: targetItf.concept,
2505
- });
2506
- } else {
2507
- <span class="cstat-no" title="statement not covered" > newItf = new Interface(itfData);</span>
2508
- }
2509
- <span class="cstat-no" title="statement not covered" > if (targetItf) {</span>
2510
- // 更新已有接口
2511
- <span class="cstat-no" title="statement not covered" > targetItf.update(newItf.toJSON());</span>
2512
- } else {
2513
- <span class="cstat-no" title="statement not covered" > targetItf = newItf;</span>
2514
- <span class="cstat-no" title="statement not covered" > module.addInterface(targetItf);</span>
2515
- }
2516
- &nbsp;
2517
- // 计算之前选择的接口的引用次数
2518
- let oldItf: Interface;
2519
- <span class="cstat-no" title="statement not covered" > if (this.calleeKey !== '__IDENTIFIER__') {</span>
2520
- <span class="cstat-no" title="statement not covered" > oldItf = this.getCallNode();</span>
2521
- <span class="cstat-no" title="statement not covered" > if (oldItf) {</span>
2522
- let refCount = <span class="cstat-no" title="statement not covered" >0;</span>
2523
- let isSelfRef = <span class="cstat-no" title="statement not covered" >false;</span>
2524
- let isSameItf = <span class="cstat-no" title="statement not covered" >false;</span>
2525
- <span class="cstat-no" title="statement not covered" > if (selectedModule.appCode === oldItf.parentNode.name &amp;&amp; newItf.name === oldItf.name) {</span>
2526
- <span class="cstat-no" title="statement not covered" > isSameItf = true;</span>
2527
- }
2528
- const refs = <span class="cstat-no" title="statement not covered" >await oldItf.findUsage();</span>
2529
- <span class="cstat-no" title="statement not covered" > refs.forEach(<span class="fstat-no" title="function not covered" >(v</span>al: any) =&gt; {</span>
2530
- const loopFindNode = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
2531
- <span class="cstat-no" title="statement not covered" > if (item.children) {</span>
2532
- <span class="cstat-no" title="statement not covered" > item.children.forEach(<span class="fstat-no" title="function not covered" >(i</span>: any) =&gt; <span class="cstat-no" title="statement not covered" >loopFindNode(i))</span>;</span>
2533
- } else {
2534
- <span class="cstat-no" title="statement not covered" > refCount++;</span>
2535
- <span class="cstat-no" title="statement not covered" > if (item.node === this) {</span>
2536
- <span class="cstat-no" title="statement not covered" > isSelfRef = true;</span>
2537
- } else <span class="cstat-no" title="statement not covered" >if (isSameItf) {</span>
2538
- <span class="cstat-no" title="statement not covered" > item.node.setCallee?.(targetItf);</span>
2539
- }
2540
- }
2541
- };
2542
- <span class="cstat-no" title="statement not covered" > loopFindNode(val);</span>
2543
- });
2544
- &nbsp;
2545
- // 之前选的接口不存在时则删除
2546
- // if (selectedModule.appCode === oldItf.parentNode.name &amp;&amp; selectedModule.apis &amp;&amp; !selectedModule.apis.find((api) =&gt; api.apiCode === oldItf.name)) {
2547
- // oldItf.delete();
2548
- // } else {
2549
- // 仅被自己引用则删除
2550
- <span class="cstat-no" title="statement not covered" > if (!isSameItf &amp;&amp; isSelfRef &amp;&amp; refCount === 1) {</span>
2551
- // 删除旧的数据结构
2552
- const shouldDeleteStructures: Structure[] = <span class="cstat-no" title="statement not covered" >[]</span>
2553
- const structureMap = <span class="cstat-no" title="statement not covered" >oldItf.module.getInterfaceStructureMap()</span>
2554
- <span class="cstat-no" title="statement not covered" > structureMap.forEach(<span class="fstat-no" title="function not covered" >(i</span>tfs, stru) =&gt; {</span>
2555
- <span class="cstat-no" title="statement not covered" > if (itfs.size === 1 &amp;&amp; itfs.has(oldItf)) {</span>
2556
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.push(stru)</span>
2557
- }
2558
- })
2559
- <span class="cstat-no" title="statement not covered" > shouldDeleteStructures.forEach(<span class="fstat-no" title="function not covered" >(s</span>: Structure) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2560
- <span class="cstat-no" title="statement not covered" > oldItf.delete();</span>
2561
- <span class="cstat-no" title="statement not covered" > oldItf.afterDelete();</span>
2562
- }
2563
- // }
2564
- }
2565
- }
2566
- &nbsp;
2567
- <span class="cstat-no" title="statement not covered" > this.setCallee(targetItf);</span>
2568
- &nbsp;
2569
- const oldStructuresSet = <span class="cstat-no" title="statement not covered" >targetItf.getRefStructures(targetItf.module.structures);</span>
2570
- // 递归找出 response/request 的 Body/Returns 引用的数据结构
2571
- const newStructuresSet = <span class="cstat-no" title="statement not covered" >targetItf.getRefStructures(moduleData.structures);</span>
2572
- // 新导入的数据结构在系统中已存在时 提前进行删除
2573
- <span class="cstat-no" title="statement not covered" > newStructuresSet.forEach(<span class="fstat-no" title="function not covered" >stru </span>=&gt; {</span>
2574
- const target = <span class="cstat-no" title="statement not covered" >targetItf.module.structures.find(<span class="fstat-no" title="function not covered" >node </span>=&gt; <span class="cstat-no" title="statement not covered" >node.name === stru.name)</span></span>
2575
- <span class="cstat-no" title="statement not covered" > if (target) {</span>
2576
- <span class="cstat-no" title="statement not covered" > oldStructuresSet.add(target)</span>
2577
- }
2578
- })
2579
- // 删除旧的数据结构
2580
- <span class="cstat-no" title="statement not covered" > oldStructuresSet.forEach(<span class="fstat-no" title="function not covered" >(s</span>) =&gt; <span class="cstat-no" title="statement not covered" >s.delete())</span>;</span>
2581
- <span class="cstat-no" title="statement not covered" > newStructuresSet.forEach(<span class="fstat-no" title="function not covered" >(s</span>) =&gt; <span class="cstat-no" title="statement not covered" >module.addStructure(Structure.from(s)))</span>;</span>
2582
- <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
2583
- }
2584
- //================================================================================
2585
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2586
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2587
- //================================================================================
2588
- }
2589
- &nbsp;
2590
- export default CallInterface;
2591
- //================================================================================
2592
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
2593
- // 自动生成的代码已结束。下面可以手动编写。
2594
- //================================================================================
2595
- &nbsp;</pre></td></tr></table></pre>
2596
-
2597
- <div class='push'></div><!-- for sticky footer -->
2598
- </div><!-- /wrapper -->
2599
- <div class='footer quiet pad2 space-top1 center small'>
2600
- Code coverage generated by
2601
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2602
- at 2023-10-19T09:18:56.902Z
2603
- </div>
2604
- <script src="../../prettify.js"></script>
2605
- <script>
2606
- window.onload = function () {
2607
- prettyPrint();
2608
- };
2609
- </script>
2610
- <script src="../../sorter.js"></script>
2611
- <script src="../../block-navigation.js"></script>
2612
- </body>
2613
- </html>
2614
-