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

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 (332) hide show
  1. package/.nyc_output/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +1 -0
  2. package/.nyc_output/processinfo/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -0
  4. package/coverage/base.css +224 -0
  5. package/coverage/block-navigation.js +87 -0
  6. package/coverage/favicon.png +0 -0
  7. package/coverage/index.html +446 -0
  8. package/coverage/prettify.css +1 -0
  9. package/coverage/prettify.js +2 -0
  10. package/coverage/sort-arrow-sprite.png +0 -0
  11. package/coverage/sorter.js +196 -0
  12. package/coverage/src/automate/engine/index.html +116 -0
  13. package/coverage/src/automate/engine/utils.js.html +1414 -0
  14. package/coverage/src/bak/index.html +116 -0
  15. package/coverage/src/bak/translator.js.html +619 -0
  16. package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +175 -0
  17. package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +169 -0
  18. package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1243 -0
  19. package/coverage/src/breakpoint/generator/CallbackNode.ts.html +145 -0
  20. package/coverage/src/breakpoint/generator/index.html +176 -0
  21. package/coverage/src/breakpoint/generator/index.ts.html +508 -0
  22. package/coverage/src/breakpoint/index.html +116 -0
  23. package/coverage/src/breakpoint/index.ts.html +94 -0
  24. package/coverage/src/breakpoint/shared/constants.ts.html +430 -0
  25. package/coverage/src/breakpoint/shared/index.html +176 -0
  26. package/coverage/src/breakpoint/shared/index.ts.html +94 -0
  27. package/coverage/src/breakpoint/shared/operations.ts.html +160 -0
  28. package/coverage/src/breakpoint/shared/socket.ts.html +1225 -0
  29. package/coverage/src/breakpoint/shared/utils.ts.html +961 -0
  30. package/coverage/src/breakpoint/store/core.ts.html +1600 -0
  31. package/coverage/src/breakpoint/store/dock.ts.html +583 -0
  32. package/coverage/src/breakpoint/store/index.html +146 -0
  33. package/coverage/src/breakpoint/store/index.ts.html +91 -0
  34. package/coverage/src/common/BaseNode.ts.html +3868 -0
  35. package/coverage/src/common/Command.ts.html +310 -0
  36. package/coverage/src/common/EventEmitter.ts.html +370 -0
  37. package/coverage/src/common/Messager.ts.html +820 -0
  38. package/coverage/src/common/asyncFuncMap.ts.html +127 -0
  39. package/coverage/src/common/index.html +191 -0
  40. package/coverage/src/common/index.ts.html +94 -0
  41. package/coverage/src/concepts/Abort__.ts.html +328 -0
  42. package/coverage/src/concepts/Anchor__.ts.html +604 -0
  43. package/coverage/src/concepts/AnonymousFunction__.ts.html +1951 -0
  44. package/coverage/src/concepts/App__.ts.html +13252 -0
  45. package/coverage/src/concepts/Argument__.ts.html +910 -0
  46. package/coverage/src/concepts/Assignee__.ts.html +2236 -0
  47. package/coverage/src/concepts/AssignmentLine__.ts.html +409 -0
  48. package/coverage/src/concepts/Assignment__.ts.html +1078 -0
  49. package/coverage/src/concepts/Attribute__.ts.html +733 -0
  50. package/coverage/src/concepts/AuthInterface__.ts.html +367 -0
  51. package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +1984 -0
  52. package/coverage/src/concepts/AuthLogic__.ts.html +781 -0
  53. package/coverage/src/concepts/BackendVariable__.ts.html +1483 -0
  54. package/coverage/src/concepts/Backend__.ts.html +1165 -0
  55. package/coverage/src/concepts/BatchAssignment__.ts.html +3250 -0
  56. package/coverage/src/concepts/BinaryExpression__.ts.html +1336 -0
  57. package/coverage/src/concepts/BindAttribute__.ts.html +3679 -0
  58. package/coverage/src/concepts/BindDirective__.ts.html +1921 -0
  59. package/coverage/src/concepts/BindEvent__.ts.html +3232 -0
  60. package/coverage/src/concepts/BindStyle__.ts.html +1612 -0
  61. package/coverage/src/concepts/BooleanLiteral__.ts.html +403 -0
  62. package/coverage/src/concepts/CallAuthInterface__.ts.html +1615 -0
  63. package/coverage/src/concepts/CallConnector__.ts.html +868 -0
  64. package/coverage/src/concepts/CallFunction__.ts.html +1966 -0
  65. package/coverage/src/concepts/CallInterface__.ts.html +2614 -0
  66. package/coverage/src/concepts/CallLogic__.ts.html +4420 -0
  67. package/coverage/src/concepts/CallQueryComponent__.ts.html +5308 -0
  68. package/coverage/src/concepts/Comment__.ts.html +376 -0
  69. package/coverage/src/concepts/CompletionProperty__.ts.html +925 -0
  70. package/coverage/src/concepts/ConfigGroup__.ts.html +1105 -0
  71. package/coverage/src/concepts/ConfigPropertyValue__.ts.html +424 -0
  72. package/coverage/src/concepts/ConfigProperty__.ts.html +1348 -0
  73. package/coverage/src/concepts/Configuration__.ts.html +1027 -0
  74. package/coverage/src/concepts/Connection__.ts.html +1360 -0
  75. package/coverage/src/concepts/ConnectorTrigger__.ts.html +595 -0
  76. package/coverage/src/concepts/Connector__.ts.html +4255 -0
  77. package/coverage/src/concepts/Constant__.ts.html +913 -0
  78. package/coverage/src/concepts/DataSource__.ts.html +1771 -0
  79. package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +331 -0
  80. package/coverage/src/concepts/Destination__.ts.html +2563 -0
  81. package/coverage/src/concepts/End__.ts.html +433 -0
  82. package/coverage/src/concepts/EntityIndex__.ts.html +787 -0
  83. package/coverage/src/concepts/EntityProperty__.ts.html +2620 -0
  84. package/coverage/src/concepts/Entity__.ts.html +2872 -0
  85. package/coverage/src/concepts/EnumItem__.ts.html +535 -0
  86. package/coverage/src/concepts/Enum__.ts.html +1192 -0
  87. package/coverage/src/concepts/Event__.ts.html +1084 -0
  88. package/coverage/src/concepts/ExternalDestination__.ts.html +1033 -0
  89. package/coverage/src/concepts/ForEachStatement__.ts.html +1819 -0
  90. package/coverage/src/concepts/FrontendLibrary__.ts.html +1711 -0
  91. package/coverage/src/concepts/FrontendVariable__.ts.html +292 -0
  92. package/coverage/src/concepts/Frontend__.ts.html +3961 -0
  93. package/coverage/src/concepts/Function__.ts.html +3514 -0
  94. package/coverage/src/concepts/Identifier__.ts.html +1057 -0
  95. package/coverage/src/concepts/IfStatement__.ts.html +1486 -0
  96. package/coverage/src/concepts/Integration__.ts.html +1228 -0
  97. package/coverage/src/concepts/InterfaceParam__.ts.html +1087 -0
  98. package/coverage/src/concepts/Interface__.ts.html +3394 -0
  99. package/coverage/src/concepts/JSBlock__.ts.html +406 -0
  100. package/coverage/src/concepts/JavaLogic__.ts.html +460 -0
  101. package/coverage/src/concepts/LogicItem__.ts.html +1144 -0
  102. package/coverage/src/concepts/Logic__.ts.html +7078 -0
  103. package/coverage/src/concepts/MatchCase__.ts.html +2641 -0
  104. package/coverage/src/concepts/Match__.ts.html +2323 -0
  105. package/coverage/src/concepts/MemberExpression__.ts.html +1666 -0
  106. package/coverage/src/concepts/MicroApp__.ts.html +436 -0
  107. package/coverage/src/concepts/Module__.ts.html +9220 -0
  108. package/coverage/src/concepts/MsgTriggerEvent__.ts.html +1045 -0
  109. package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +1018 -0
  110. package/coverage/src/concepts/Namespace__.ts.html +7942 -0
  111. package/coverage/src/concepts/NewComposite__.ts.html +4684 -0
  112. package/coverage/src/concepts/NewList__.ts.html +1567 -0
  113. package/coverage/src/concepts/NewMap__.ts.html +2275 -0
  114. package/coverage/src/concepts/New__.ts.html +289 -0
  115. package/coverage/src/concepts/NullLiteral__.ts.html +349 -0
  116. package/coverage/src/concepts/NumericLiteral__.ts.html +661 -0
  117. package/coverage/src/concepts/OqlQueryComponent__.ts.html +1123 -0
  118. package/coverage/src/concepts/OverriddenLogic__.ts.html +6817 -0
  119. package/coverage/src/concepts/Param__.ts.html +1609 -0
  120. package/coverage/src/concepts/Point__.ts.html +331 -0
  121. package/coverage/src/concepts/ProcessComponent__.ts.html +1666 -0
  122. package/coverage/src/concepts/ProcessElement__.ts.html +5884 -0
  123. package/coverage/src/concepts/ProcessOutcome__.ts.html +352 -0
  124. package/coverage/src/concepts/ProcessOutcomes__.ts.html +343 -0
  125. package/coverage/src/concepts/Process__.ts.html +4768 -0
  126. package/coverage/src/concepts/QueryAggregateExpression__.ts.html +568 -0
  127. package/coverage/src/concepts/QueryFieldExpression__.ts.html +583 -0
  128. package/coverage/src/concepts/QueryFromExpression__.ts.html +910 -0
  129. package/coverage/src/concepts/QueryGroupByExpression__.ts.html +559 -0
  130. package/coverage/src/concepts/QueryJoinExpression__.ts.html +1567 -0
  131. package/coverage/src/concepts/QueryLimitExpression__.ts.html +637 -0
  132. package/coverage/src/concepts/QueryOrderByExpression__.ts.html +679 -0
  133. package/coverage/src/concepts/QuerySelectExpression__.ts.html +1714 -0
  134. package/coverage/src/concepts/Rect__.ts.html +373 -0
  135. package/coverage/src/concepts/Return__.ts.html +1258 -0
  136. package/coverage/src/concepts/Role__.ts.html +601 -0
  137. package/coverage/src/concepts/SelectMembers__.ts.html +1246 -0
  138. package/coverage/src/concepts/Slot__.ts.html +628 -0
  139. package/coverage/src/concepts/SqlQueryComponent__.ts.html +964 -0
  140. package/coverage/src/concepts/Start__.ts.html +304 -0
  141. package/coverage/src/concepts/StringInterpolation__.ts.html +1078 -0
  142. package/coverage/src/concepts/StringLiteral__.ts.html +490 -0
  143. package/coverage/src/concepts/StructureProperty__.ts.html +1102 -0
  144. package/coverage/src/concepts/Structure__.ts.html +2053 -0
  145. package/coverage/src/concepts/SwitchCase__.ts.html +1063 -0
  146. package/coverage/src/concepts/SwitchStatement__.ts.html +826 -0
  147. package/coverage/src/concepts/Theme__.ts.html +358 -0
  148. package/coverage/src/concepts/Transactional__.ts.html +628 -0
  149. package/coverage/src/concepts/TriggerEvent__.ts.html +1012 -0
  150. package/coverage/src/concepts/TriggerLauncher__.ts.html +775 -0
  151. package/coverage/src/concepts/TypeAnnotation__.ts.html +3583 -0
  152. package/coverage/src/concepts/TypeParam__.ts.html +301 -0
  153. package/coverage/src/concepts/UnaryExpression__.ts.html +640 -0
  154. package/coverage/src/concepts/Unparsed__.ts.html +382 -0
  155. package/coverage/src/concepts/UseComponent__.ts.html +331 -0
  156. package/coverage/src/concepts/ValidationRule__.ts.html +1840 -0
  157. package/coverage/src/concepts/Variable__.ts.html +1435 -0
  158. package/coverage/src/concepts/ViewBlock__.ts.html +352 -0
  159. package/coverage/src/concepts/ViewComponent__.ts.html +4180 -0
  160. package/coverage/src/concepts/ViewElement__.ts.html +8557 -0
  161. package/coverage/src/concepts/View__.ts.html +8278 -0
  162. package/coverage/src/concepts/WhileStatement__.ts.html +991 -0
  163. package/coverage/src/concepts/basics/stdlib/index.html +341 -0
  164. package/coverage/src/concepts/basics/stdlib/index.ts.html +208 -0
  165. package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +565 -0
  166. package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +517 -0
  167. package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +226 -0
  168. package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +172 -0
  169. package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +214 -0
  170. package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +145 -0
  171. package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +589 -0
  172. package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +214 -0
  173. package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +229 -0
  174. package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +268 -0
  175. package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1999 -0
  176. package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +3259 -0
  177. package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +6787 -0
  178. package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1768 -0
  179. package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +163 -0
  180. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
  181. package/coverage/src/concepts/basics/types/index.html +131 -0
  182. package/coverage/src/concepts/basics/types/index.ts.html +160 -0
  183. package/coverage/src/concepts/index.html +1961 -0
  184. package/coverage/src/concepts/index.ts.html +103 -0
  185. package/coverage/src/concepts/index__.ts.html +451 -0
  186. package/coverage/src/config.ts.html +325 -0
  187. package/coverage/src/decorators/index.html +131 -0
  188. package/coverage/src/decorators/index.ts.html +574 -0
  189. package/coverage/src/decorators/promise.ts.html +169 -0
  190. package/coverage/src/eventBus.ts.html +100 -0
  191. package/coverage/src/generator/compileComponent.ts.html +142 -0
  192. package/coverage/src/generator/genBundleFiles.ts.html +1828 -0
  193. package/coverage/src/generator/genHash.ts.html +124 -0
  194. package/coverage/src/generator/genMetaData.ts.html +1042 -0
  195. package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
  196. package/coverage/src/generator/icestark.ts.html +220 -0
  197. package/coverage/src/generator/index.html +266 -0
  198. package/coverage/src/generator/index.ts.html +106 -0
  199. package/coverage/src/generator/microApp.ts.html +172 -0
  200. package/coverage/src/generator/permission.ts.html +1036 -0
  201. package/coverage/src/generator/qiankun.ts.html +232 -0
  202. package/coverage/src/generator/styleReplacer.ts.html +199 -0
  203. package/coverage/src/index.html +146 -0
  204. package/coverage/src/index.ts.html +121 -0
  205. package/coverage/src/manager/diagnostic.ts.html +442 -0
  206. package/coverage/src/manager/index.html +131 -0
  207. package/coverage/src/manager/stepRecorder.ts.html +457 -0
  208. package/coverage/src/sentry/index.html +116 -0
  209. package/coverage/src/sentry/index.ts.html +676 -0
  210. package/coverage/src/server/createUiTs.ts.html +919 -0
  211. package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
  212. package/coverage/src/server/event.js.html +526 -0
  213. package/coverage/src/server/extendBaseNode.ts.html +1762 -0
  214. package/coverage/src/server/formatTsUtils.ts.html +2689 -0
  215. package/coverage/src/server/getConnector.ts.html +316 -0
  216. package/coverage/src/server/getExtensionModules.ts.html +178 -0
  217. package/coverage/src/server/getFunctions.ts.html +133 -0
  218. package/coverage/src/server/getInterfaces.ts.html +229 -0
  219. package/coverage/src/server/getLogging.ts.html +100 -0
  220. package/coverage/src/server/getLogics.ts.html +1363 -0
  221. package/coverage/src/server/getMemberIdentifier.ts.html +1606 -0
  222. package/coverage/src/server/getProcessComponents.ts.html +112 -0
  223. package/coverage/src/server/getProcesses.ts.html +2023 -0
  224. package/coverage/src/server/getValidates.ts.html +115 -0
  225. package/coverage/src/server/index.html +401 -0
  226. package/coverage/src/server/index.ts.html +229 -0
  227. package/coverage/src/server/naslServer.ts.html +14290 -0
  228. package/coverage/src/server/naslStdlibMap.ts.html +241 -0
  229. package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
  230. package/coverage/src/server/translator.ts.html +2566 -0
  231. package/coverage/src/service/creator/add.configs.js.html +379 -0
  232. package/coverage/src/service/creator/errHandles.js.html +322 -0
  233. package/coverage/src/service/creator/index.html +146 -0
  234. package/coverage/src/service/creator/index.js.html +352 -0
  235. package/coverage/src/service/datasource/api.js.html +118 -0
  236. package/coverage/src/service/datasource/index.html +131 -0
  237. package/coverage/src/service/datasource/index.js.html +103 -0
  238. package/coverage/src/service/logic/api.js.html +109 -0
  239. package/coverage/src/service/logic/index.html +131 -0
  240. package/coverage/src/service/logic/index.js.html +103 -0
  241. package/coverage/src/service/storage/api.js.html +202 -0
  242. package/coverage/src/service/storage/index.html +206 -0
  243. package/coverage/src/service/storage/index.ts.html +103 -0
  244. package/coverage/src/service/storage/init.ts.html +2710 -0
  245. package/coverage/src/service/storage/jsoner.ts.html +502 -0
  246. package/coverage/src/service/storage/map.ts.html +256 -0
  247. package/coverage/src/service/storage/service.ts.html +331 -0
  248. package/coverage/src/service/storage/storagePoint.ts.html +304 -0
  249. package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
  250. package/coverage/src/templator/genCreateBlock.ts.html +1093 -0
  251. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
  252. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2254 -0
  253. package/coverage/src/templator/genEditTableBlock.ts.html +955 -0
  254. package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
  255. package/coverage/src/templator/genGetBlock.ts.html +451 -0
  256. package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
  257. package/coverage/src/templator/genListViewBlock.ts.html +475 -0
  258. package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
  259. package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
  260. package/coverage/src/templator/genTableBlock.ts.html +910 -0
  261. package/coverage/src/templator/genUpdateBlock.ts.html +1192 -0
  262. package/coverage/src/templator/index.html +326 -0
  263. package/coverage/src/templator/index.ts.html +154 -0
  264. package/coverage/src/templator/utils.ts.html +1861 -0
  265. package/coverage/src/translator/constant.ts.html +106 -0
  266. package/coverage/src/translator/index.html +146 -0
  267. package/coverage/src/translator/index.ts.html +94 -0
  268. package/coverage/src/translator/utils.ts.html +397 -0
  269. package/coverage/src/utils/cookie.ts.html +265 -0
  270. package/coverage/src/utils/env.ts.html +91 -0
  271. package/coverage/src/utils/index.html +236 -0
  272. package/coverage/src/utils/index.ts.html +655 -0
  273. package/coverage/src/utils/logger.ts.html +145 -0
  274. package/coverage/src/utils/sortTsString.ts.html +187 -0
  275. package/coverage/src/utils/string.ts.html +400 -0
  276. package/coverage/src/utils/time-slicing.ts.html +412 -0
  277. package/coverage/src/utils/traverse.ts.html +568 -0
  278. package/coverage/src/utils/window.ts.html +112 -0
  279. package/out/common/BaseNode.d.ts +22 -11
  280. package/out/common/BaseNode.js +20 -0
  281. package/out/common/BaseNode.js.map +1 -1
  282. package/out/concepts/BinaryExpression__.js +1 -1
  283. package/out/concepts/BinaryExpression__.js.map +1 -1
  284. package/out/concepts/CallLogic__.js +1 -1
  285. package/out/concepts/CallLogic__.js.map +1 -1
  286. package/out/concepts/CallQueryComponent__.js +4 -13
  287. package/out/concepts/CallQueryComponent__.js.map +1 -1
  288. package/out/concepts/ViewElement__.js +21 -0
  289. package/out/concepts/ViewElement__.js.map +1 -1
  290. package/out/concepts/View__.js +7 -2
  291. package/out/concepts/View__.js.map +1 -1
  292. package/out/concepts/types__.d.ts +2 -3
  293. package/out/decorators/index.d.ts +3 -3
  294. package/out/enums/KEYWORDS.js +2 -0
  295. package/out/enums/KEYWORDS.js.map +1 -1
  296. package/out/generator/genMetaData.js +4 -4
  297. package/out/generator/genMetaData.js.map +1 -1
  298. package/out/generator/genReleaseBody.js +2 -2
  299. package/out/generator/genReleaseBody.js.map +1 -1
  300. package/out/generator/permission.js +1 -1
  301. package/out/generator/permission.js.map +1 -1
  302. package/out/natural/transformTSCode.d.ts +2 -2
  303. package/out/server/formatTsUtils.d.ts +3 -3
  304. package/out/server/getMemberIdentifier.d.ts +4 -4
  305. package/out/server/getMemberIdentifier.js +2 -2
  306. package/out/server/getMemberIdentifier.js.map +1 -1
  307. package/out/server/naslServer.js +2 -2
  308. package/out/server/naslServer.js.map +1 -1
  309. package/out/templator/genCurdMultipleKeyBlock.js +2 -1
  310. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  311. package/out/translator/utils.js +2 -2
  312. package/out/translator/utils.js.map +1 -1
  313. package/package.json +1 -1
  314. package/sandbox/stdlib/nasl.util.ts +142 -142
  315. package/src/common/BaseNode.ts +45 -23
  316. package/src/concepts/BinaryExpression__.ts +1 -1
  317. package/src/concepts/CallLogic__.ts +1 -1
  318. package/src/concepts/CallQueryComponent__.ts +4 -12
  319. package/src/concepts/ViewElement__.ts +19 -0
  320. package/src/concepts/View__.ts +7 -2
  321. package/src/concepts/types__.ts +2 -4
  322. package/src/decorators/index.ts +4 -4
  323. package/src/enums/KEYWORDS.ts +2 -0
  324. package/src/generator/genMetaData.ts +4 -4
  325. package/src/generator/genReleaseBody.ts +2 -2
  326. package/src/generator/permission.ts +4 -4
  327. package/src/server/formatTsUtils.ts +8 -8
  328. package/src/server/getMemberIdentifier.ts +6 -6
  329. package/src/server/naslServer.ts +4 -4
  330. package/src/service/storage/init.ts +2 -2
  331. package/src/templator/genCurdMultipleKeyBlock.ts +2 -1
  332. package/src/translator/utils.ts +5 -6
@@ -0,0 +1,4420 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/concepts/CallLogic__.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> CallLogic__.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">48.85% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>278/569</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">48.11% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>166/345</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">40.69% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>35/86</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">48.63% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>267/549</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>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a>
1012
+ <a name='L947'></a><a href='#L947'>947</a>
1013
+ <a name='L948'></a><a href='#L948'>948</a>
1014
+ <a name='L949'></a><a href='#L949'>949</a>
1015
+ <a name='L950'></a><a href='#L950'>950</a>
1016
+ <a name='L951'></a><a href='#L951'>951</a>
1017
+ <a name='L952'></a><a href='#L952'>952</a>
1018
+ <a name='L953'></a><a href='#L953'>953</a>
1019
+ <a name='L954'></a><a href='#L954'>954</a>
1020
+ <a name='L955'></a><a href='#L955'>955</a>
1021
+ <a name='L956'></a><a href='#L956'>956</a>
1022
+ <a name='L957'></a><a href='#L957'>957</a>
1023
+ <a name='L958'></a><a href='#L958'>958</a>
1024
+ <a name='L959'></a><a href='#L959'>959</a>
1025
+ <a name='L960'></a><a href='#L960'>960</a>
1026
+ <a name='L961'></a><a href='#L961'>961</a>
1027
+ <a name='L962'></a><a href='#L962'>962</a>
1028
+ <a name='L963'></a><a href='#L963'>963</a>
1029
+ <a name='L964'></a><a href='#L964'>964</a>
1030
+ <a name='L965'></a><a href='#L965'>965</a>
1031
+ <a name='L966'></a><a href='#L966'>966</a>
1032
+ <a name='L967'></a><a href='#L967'>967</a>
1033
+ <a name='L968'></a><a href='#L968'>968</a>
1034
+ <a name='L969'></a><a href='#L969'>969</a>
1035
+ <a name='L970'></a><a href='#L970'>970</a>
1036
+ <a name='L971'></a><a href='#L971'>971</a>
1037
+ <a name='L972'></a><a href='#L972'>972</a>
1038
+ <a name='L973'></a><a href='#L973'>973</a>
1039
+ <a name='L974'></a><a href='#L974'>974</a>
1040
+ <a name='L975'></a><a href='#L975'>975</a>
1041
+ <a name='L976'></a><a href='#L976'>976</a>
1042
+ <a name='L977'></a><a href='#L977'>977</a>
1043
+ <a name='L978'></a><a href='#L978'>978</a>
1044
+ <a name='L979'></a><a href='#L979'>979</a>
1045
+ <a name='L980'></a><a href='#L980'>980</a>
1046
+ <a name='L981'></a><a href='#L981'>981</a>
1047
+ <a name='L982'></a><a href='#L982'>982</a>
1048
+ <a name='L983'></a><a href='#L983'>983</a>
1049
+ <a name='L984'></a><a href='#L984'>984</a>
1050
+ <a name='L985'></a><a href='#L985'>985</a>
1051
+ <a name='L986'></a><a href='#L986'>986</a>
1052
+ <a name='L987'></a><a href='#L987'>987</a>
1053
+ <a name='L988'></a><a href='#L988'>988</a>
1054
+ <a name='L989'></a><a href='#L989'>989</a>
1055
+ <a name='L990'></a><a href='#L990'>990</a>
1056
+ <a name='L991'></a><a href='#L991'>991</a>
1057
+ <a name='L992'></a><a href='#L992'>992</a>
1058
+ <a name='L993'></a><a href='#L993'>993</a>
1059
+ <a name='L994'></a><a href='#L994'>994</a>
1060
+ <a name='L995'></a><a href='#L995'>995</a>
1061
+ <a name='L996'></a><a href='#L996'>996</a>
1062
+ <a name='L997'></a><a href='#L997'>997</a>
1063
+ <a name='L998'></a><a href='#L998'>998</a>
1064
+ <a name='L999'></a><a href='#L999'>999</a>
1065
+ <a name='L1000'></a><a href='#L1000'>1000</a>
1066
+ <a name='L1001'></a><a href='#L1001'>1001</a>
1067
+ <a name='L1002'></a><a href='#L1002'>1002</a>
1068
+ <a name='L1003'></a><a href='#L1003'>1003</a>
1069
+ <a name='L1004'></a><a href='#L1004'>1004</a>
1070
+ <a name='L1005'></a><a href='#L1005'>1005</a>
1071
+ <a name='L1006'></a><a href='#L1006'>1006</a>
1072
+ <a name='L1007'></a><a href='#L1007'>1007</a>
1073
+ <a name='L1008'></a><a href='#L1008'>1008</a>
1074
+ <a name='L1009'></a><a href='#L1009'>1009</a>
1075
+ <a name='L1010'></a><a href='#L1010'>1010</a>
1076
+ <a name='L1011'></a><a href='#L1011'>1011</a>
1077
+ <a name='L1012'></a><a href='#L1012'>1012</a>
1078
+ <a name='L1013'></a><a href='#L1013'>1013</a>
1079
+ <a name='L1014'></a><a href='#L1014'>1014</a>
1080
+ <a name='L1015'></a><a href='#L1015'>1015</a>
1081
+ <a name='L1016'></a><a href='#L1016'>1016</a>
1082
+ <a name='L1017'></a><a href='#L1017'>1017</a>
1083
+ <a name='L1018'></a><a href='#L1018'>1018</a>
1084
+ <a name='L1019'></a><a href='#L1019'>1019</a>
1085
+ <a name='L1020'></a><a href='#L1020'>1020</a>
1086
+ <a name='L1021'></a><a href='#L1021'>1021</a>
1087
+ <a name='L1022'></a><a href='#L1022'>1022</a>
1088
+ <a name='L1023'></a><a href='#L1023'>1023</a>
1089
+ <a name='L1024'></a><a href='#L1024'>1024</a>
1090
+ <a name='L1025'></a><a href='#L1025'>1025</a>
1091
+ <a name='L1026'></a><a href='#L1026'>1026</a>
1092
+ <a name='L1027'></a><a href='#L1027'>1027</a>
1093
+ <a name='L1028'></a><a href='#L1028'>1028</a>
1094
+ <a name='L1029'></a><a href='#L1029'>1029</a>
1095
+ <a name='L1030'></a><a href='#L1030'>1030</a>
1096
+ <a name='L1031'></a><a href='#L1031'>1031</a>
1097
+ <a name='L1032'></a><a href='#L1032'>1032</a>
1098
+ <a name='L1033'></a><a href='#L1033'>1033</a>
1099
+ <a name='L1034'></a><a href='#L1034'>1034</a>
1100
+ <a name='L1035'></a><a href='#L1035'>1035</a>
1101
+ <a name='L1036'></a><a href='#L1036'>1036</a>
1102
+ <a name='L1037'></a><a href='#L1037'>1037</a>
1103
+ <a name='L1038'></a><a href='#L1038'>1038</a>
1104
+ <a name='L1039'></a><a href='#L1039'>1039</a>
1105
+ <a name='L1040'></a><a href='#L1040'>1040</a>
1106
+ <a name='L1041'></a><a href='#L1041'>1041</a>
1107
+ <a name='L1042'></a><a href='#L1042'>1042</a>
1108
+ <a name='L1043'></a><a href='#L1043'>1043</a>
1109
+ <a name='L1044'></a><a href='#L1044'>1044</a>
1110
+ <a name='L1045'></a><a href='#L1045'>1045</a>
1111
+ <a name='L1046'></a><a href='#L1046'>1046</a>
1112
+ <a name='L1047'></a><a href='#L1047'>1047</a>
1113
+ <a name='L1048'></a><a href='#L1048'>1048</a>
1114
+ <a name='L1049'></a><a href='#L1049'>1049</a>
1115
+ <a name='L1050'></a><a href='#L1050'>1050</a>
1116
+ <a name='L1051'></a><a href='#L1051'>1051</a>
1117
+ <a name='L1052'></a><a href='#L1052'>1052</a>
1118
+ <a name='L1053'></a><a href='#L1053'>1053</a>
1119
+ <a name='L1054'></a><a href='#L1054'>1054</a>
1120
+ <a name='L1055'></a><a href='#L1055'>1055</a>
1121
+ <a name='L1056'></a><a href='#L1056'>1056</a>
1122
+ <a name='L1057'></a><a href='#L1057'>1057</a>
1123
+ <a name='L1058'></a><a href='#L1058'>1058</a>
1124
+ <a name='L1059'></a><a href='#L1059'>1059</a>
1125
+ <a name='L1060'></a><a href='#L1060'>1060</a>
1126
+ <a name='L1061'></a><a href='#L1061'>1061</a>
1127
+ <a name='L1062'></a><a href='#L1062'>1062</a>
1128
+ <a name='L1063'></a><a href='#L1063'>1063</a>
1129
+ <a name='L1064'></a><a href='#L1064'>1064</a>
1130
+ <a name='L1065'></a><a href='#L1065'>1065</a>
1131
+ <a name='L1066'></a><a href='#L1066'>1066</a>
1132
+ <a name='L1067'></a><a href='#L1067'>1067</a>
1133
+ <a name='L1068'></a><a href='#L1068'>1068</a>
1134
+ <a name='L1069'></a><a href='#L1069'>1069</a>
1135
+ <a name='L1070'></a><a href='#L1070'>1070</a>
1136
+ <a name='L1071'></a><a href='#L1071'>1071</a>
1137
+ <a name='L1072'></a><a href='#L1072'>1072</a>
1138
+ <a name='L1073'></a><a href='#L1073'>1073</a>
1139
+ <a name='L1074'></a><a href='#L1074'>1074</a>
1140
+ <a name='L1075'></a><a href='#L1075'>1075</a>
1141
+ <a name='L1076'></a><a href='#L1076'>1076</a>
1142
+ <a name='L1077'></a><a href='#L1077'>1077</a>
1143
+ <a name='L1078'></a><a href='#L1078'>1078</a>
1144
+ <a name='L1079'></a><a href='#L1079'>1079</a>
1145
+ <a name='L1080'></a><a href='#L1080'>1080</a>
1146
+ <a name='L1081'></a><a href='#L1081'>1081</a>
1147
+ <a name='L1082'></a><a href='#L1082'>1082</a>
1148
+ <a name='L1083'></a><a href='#L1083'>1083</a>
1149
+ <a name='L1084'></a><a href='#L1084'>1084</a>
1150
+ <a name='L1085'></a><a href='#L1085'>1085</a>
1151
+ <a name='L1086'></a><a href='#L1086'>1086</a>
1152
+ <a name='L1087'></a><a href='#L1087'>1087</a>
1153
+ <a name='L1088'></a><a href='#L1088'>1088</a>
1154
+ <a name='L1089'></a><a href='#L1089'>1089</a>
1155
+ <a name='L1090'></a><a href='#L1090'>1090</a>
1156
+ <a name='L1091'></a><a href='#L1091'>1091</a>
1157
+ <a name='L1092'></a><a href='#L1092'>1092</a>
1158
+ <a name='L1093'></a><a href='#L1093'>1093</a>
1159
+ <a name='L1094'></a><a href='#L1094'>1094</a>
1160
+ <a name='L1095'></a><a href='#L1095'>1095</a>
1161
+ <a name='L1096'></a><a href='#L1096'>1096</a>
1162
+ <a name='L1097'></a><a href='#L1097'>1097</a>
1163
+ <a name='L1098'></a><a href='#L1098'>1098</a>
1164
+ <a name='L1099'></a><a href='#L1099'>1099</a>
1165
+ <a name='L1100'></a><a href='#L1100'>1100</a>
1166
+ <a name='L1101'></a><a href='#L1101'>1101</a>
1167
+ <a name='L1102'></a><a href='#L1102'>1102</a>
1168
+ <a name='L1103'></a><a href='#L1103'>1103</a>
1169
+ <a name='L1104'></a><a href='#L1104'>1104</a>
1170
+ <a name='L1105'></a><a href='#L1105'>1105</a>
1171
+ <a name='L1106'></a><a href='#L1106'>1106</a>
1172
+ <a name='L1107'></a><a href='#L1107'>1107</a>
1173
+ <a name='L1108'></a><a href='#L1108'>1108</a>
1174
+ <a name='L1109'></a><a href='#L1109'>1109</a>
1175
+ <a name='L1110'></a><a href='#L1110'>1110</a>
1176
+ <a name='L1111'></a><a href='#L1111'>1111</a>
1177
+ <a name='L1112'></a><a href='#L1112'>1112</a>
1178
+ <a name='L1113'></a><a href='#L1113'>1113</a>
1179
+ <a name='L1114'></a><a href='#L1114'>1114</a>
1180
+ <a name='L1115'></a><a href='#L1115'>1115</a>
1181
+ <a name='L1116'></a><a href='#L1116'>1116</a>
1182
+ <a name='L1117'></a><a href='#L1117'>1117</a>
1183
+ <a name='L1118'></a><a href='#L1118'>1118</a>
1184
+ <a name='L1119'></a><a href='#L1119'>1119</a>
1185
+ <a name='L1120'></a><a href='#L1120'>1120</a>
1186
+ <a name='L1121'></a><a href='#L1121'>1121</a>
1187
+ <a name='L1122'></a><a href='#L1122'>1122</a>
1188
+ <a name='L1123'></a><a href='#L1123'>1123</a>
1189
+ <a name='L1124'></a><a href='#L1124'>1124</a>
1190
+ <a name='L1125'></a><a href='#L1125'>1125</a>
1191
+ <a name='L1126'></a><a href='#L1126'>1126</a>
1192
+ <a name='L1127'></a><a href='#L1127'>1127</a>
1193
+ <a name='L1128'></a><a href='#L1128'>1128</a>
1194
+ <a name='L1129'></a><a href='#L1129'>1129</a>
1195
+ <a name='L1130'></a><a href='#L1130'>1130</a>
1196
+ <a name='L1131'></a><a href='#L1131'>1131</a>
1197
+ <a name='L1132'></a><a href='#L1132'>1132</a>
1198
+ <a name='L1133'></a><a href='#L1133'>1133</a>
1199
+ <a name='L1134'></a><a href='#L1134'>1134</a>
1200
+ <a name='L1135'></a><a href='#L1135'>1135</a>
1201
+ <a name='L1136'></a><a href='#L1136'>1136</a>
1202
+ <a name='L1137'></a><a href='#L1137'>1137</a>
1203
+ <a name='L1138'></a><a href='#L1138'>1138</a>
1204
+ <a name='L1139'></a><a href='#L1139'>1139</a>
1205
+ <a name='L1140'></a><a href='#L1140'>1140</a>
1206
+ <a name='L1141'></a><a href='#L1141'>1141</a>
1207
+ <a name='L1142'></a><a href='#L1142'>1142</a>
1208
+ <a name='L1143'></a><a href='#L1143'>1143</a>
1209
+ <a name='L1144'></a><a href='#L1144'>1144</a>
1210
+ <a name='L1145'></a><a href='#L1145'>1145</a>
1211
+ <a name='L1146'></a><a href='#L1146'>1146</a>
1212
+ <a name='L1147'></a><a href='#L1147'>1147</a>
1213
+ <a name='L1148'></a><a href='#L1148'>1148</a>
1214
+ <a name='L1149'></a><a href='#L1149'>1149</a>
1215
+ <a name='L1150'></a><a href='#L1150'>1150</a>
1216
+ <a name='L1151'></a><a href='#L1151'>1151</a>
1217
+ <a name='L1152'></a><a href='#L1152'>1152</a>
1218
+ <a name='L1153'></a><a href='#L1153'>1153</a>
1219
+ <a name='L1154'></a><a href='#L1154'>1154</a>
1220
+ <a name='L1155'></a><a href='#L1155'>1155</a>
1221
+ <a name='L1156'></a><a href='#L1156'>1156</a>
1222
+ <a name='L1157'></a><a href='#L1157'>1157</a>
1223
+ <a name='L1158'></a><a href='#L1158'>1158</a>
1224
+ <a name='L1159'></a><a href='#L1159'>1159</a>
1225
+ <a name='L1160'></a><a href='#L1160'>1160</a>
1226
+ <a name='L1161'></a><a href='#L1161'>1161</a>
1227
+ <a name='L1162'></a><a href='#L1162'>1162</a>
1228
+ <a name='L1163'></a><a href='#L1163'>1163</a>
1229
+ <a name='L1164'></a><a href='#L1164'>1164</a>
1230
+ <a name='L1165'></a><a href='#L1165'>1165</a>
1231
+ <a name='L1166'></a><a href='#L1166'>1166</a>
1232
+ <a name='L1167'></a><a href='#L1167'>1167</a>
1233
+ <a name='L1168'></a><a href='#L1168'>1168</a>
1234
+ <a name='L1169'></a><a href='#L1169'>1169</a>
1235
+ <a name='L1170'></a><a href='#L1170'>1170</a>
1236
+ <a name='L1171'></a><a href='#L1171'>1171</a>
1237
+ <a name='L1172'></a><a href='#L1172'>1172</a>
1238
+ <a name='L1173'></a><a href='#L1173'>1173</a>
1239
+ <a name='L1174'></a><a href='#L1174'>1174</a>
1240
+ <a name='L1175'></a><a href='#L1175'>1175</a>
1241
+ <a name='L1176'></a><a href='#L1176'>1176</a>
1242
+ <a name='L1177'></a><a href='#L1177'>1177</a>
1243
+ <a name='L1178'></a><a href='#L1178'>1178</a>
1244
+ <a name='L1179'></a><a href='#L1179'>1179</a>
1245
+ <a name='L1180'></a><a href='#L1180'>1180</a>
1246
+ <a name='L1181'></a><a href='#L1181'>1181</a>
1247
+ <a name='L1182'></a><a href='#L1182'>1182</a>
1248
+ <a name='L1183'></a><a href='#L1183'>1183</a>
1249
+ <a name='L1184'></a><a href='#L1184'>1184</a>
1250
+ <a name='L1185'></a><a href='#L1185'>1185</a>
1251
+ <a name='L1186'></a><a href='#L1186'>1186</a>
1252
+ <a name='L1187'></a><a href='#L1187'>1187</a>
1253
+ <a name='L1188'></a><a href='#L1188'>1188</a>
1254
+ <a name='L1189'></a><a href='#L1189'>1189</a>
1255
+ <a name='L1190'></a><a href='#L1190'>1190</a>
1256
+ <a name='L1191'></a><a href='#L1191'>1191</a>
1257
+ <a name='L1192'></a><a href='#L1192'>1192</a>
1258
+ <a name='L1193'></a><a href='#L1193'>1193</a>
1259
+ <a name='L1194'></a><a href='#L1194'>1194</a>
1260
+ <a name='L1195'></a><a href='#L1195'>1195</a>
1261
+ <a name='L1196'></a><a href='#L1196'>1196</a>
1262
+ <a name='L1197'></a><a href='#L1197'>1197</a>
1263
+ <a name='L1198'></a><a href='#L1198'>1198</a>
1264
+ <a name='L1199'></a><a href='#L1199'>1199</a>
1265
+ <a name='L1200'></a><a href='#L1200'>1200</a>
1266
+ <a name='L1201'></a><a href='#L1201'>1201</a>
1267
+ <a name='L1202'></a><a href='#L1202'>1202</a>
1268
+ <a name='L1203'></a><a href='#L1203'>1203</a>
1269
+ <a name='L1204'></a><a href='#L1204'>1204</a>
1270
+ <a name='L1205'></a><a href='#L1205'>1205</a>
1271
+ <a name='L1206'></a><a href='#L1206'>1206</a>
1272
+ <a name='L1207'></a><a href='#L1207'>1207</a>
1273
+ <a name='L1208'></a><a href='#L1208'>1208</a>
1274
+ <a name='L1209'></a><a href='#L1209'>1209</a>
1275
+ <a name='L1210'></a><a href='#L1210'>1210</a>
1276
+ <a name='L1211'></a><a href='#L1211'>1211</a>
1277
+ <a name='L1212'></a><a href='#L1212'>1212</a>
1278
+ <a name='L1213'></a><a href='#L1213'>1213</a>
1279
+ <a name='L1214'></a><a href='#L1214'>1214</a>
1280
+ <a name='L1215'></a><a href='#L1215'>1215</a>
1281
+ <a name='L1216'></a><a href='#L1216'>1216</a>
1282
+ <a name='L1217'></a><a href='#L1217'>1217</a>
1283
+ <a name='L1218'></a><a href='#L1218'>1218</a>
1284
+ <a name='L1219'></a><a href='#L1219'>1219</a>
1285
+ <a name='L1220'></a><a href='#L1220'>1220</a>
1286
+ <a name='L1221'></a><a href='#L1221'>1221</a>
1287
+ <a name='L1222'></a><a href='#L1222'>1222</a>
1288
+ <a name='L1223'></a><a href='#L1223'>1223</a>
1289
+ <a name='L1224'></a><a href='#L1224'>1224</a>
1290
+ <a name='L1225'></a><a href='#L1225'>1225</a>
1291
+ <a name='L1226'></a><a href='#L1226'>1226</a>
1292
+ <a name='L1227'></a><a href='#L1227'>1227</a>
1293
+ <a name='L1228'></a><a href='#L1228'>1228</a>
1294
+ <a name='L1229'></a><a href='#L1229'>1229</a>
1295
+ <a name='L1230'></a><a href='#L1230'>1230</a>
1296
+ <a name='L1231'></a><a href='#L1231'>1231</a>
1297
+ <a name='L1232'></a><a href='#L1232'>1232</a>
1298
+ <a name='L1233'></a><a href='#L1233'>1233</a>
1299
+ <a name='L1234'></a><a href='#L1234'>1234</a>
1300
+ <a name='L1235'></a><a href='#L1235'>1235</a>
1301
+ <a name='L1236'></a><a href='#L1236'>1236</a>
1302
+ <a name='L1237'></a><a href='#L1237'>1237</a>
1303
+ <a name='L1238'></a><a href='#L1238'>1238</a>
1304
+ <a name='L1239'></a><a href='#L1239'>1239</a>
1305
+ <a name='L1240'></a><a href='#L1240'>1240</a>
1306
+ <a name='L1241'></a><a href='#L1241'>1241</a>
1307
+ <a name='L1242'></a><a href='#L1242'>1242</a>
1308
+ <a name='L1243'></a><a href='#L1243'>1243</a>
1309
+ <a name='L1244'></a><a href='#L1244'>1244</a>
1310
+ <a name='L1245'></a><a href='#L1245'>1245</a>
1311
+ <a name='L1246'></a><a href='#L1246'>1246</a>
1312
+ <a name='L1247'></a><a href='#L1247'>1247</a>
1313
+ <a name='L1248'></a><a href='#L1248'>1248</a>
1314
+ <a name='L1249'></a><a href='#L1249'>1249</a>
1315
+ <a name='L1250'></a><a href='#L1250'>1250</a>
1316
+ <a name='L1251'></a><a href='#L1251'>1251</a>
1317
+ <a name='L1252'></a><a href='#L1252'>1252</a>
1318
+ <a name='L1253'></a><a href='#L1253'>1253</a>
1319
+ <a name='L1254'></a><a href='#L1254'>1254</a>
1320
+ <a name='L1255'></a><a href='#L1255'>1255</a>
1321
+ <a name='L1256'></a><a href='#L1256'>1256</a>
1322
+ <a name='L1257'></a><a href='#L1257'>1257</a>
1323
+ <a name='L1258'></a><a href='#L1258'>1258</a>
1324
+ <a name='L1259'></a><a href='#L1259'>1259</a>
1325
+ <a name='L1260'></a><a href='#L1260'>1260</a>
1326
+ <a name='L1261'></a><a href='#L1261'>1261</a>
1327
+ <a name='L1262'></a><a href='#L1262'>1262</a>
1328
+ <a name='L1263'></a><a href='#L1263'>1263</a>
1329
+ <a name='L1264'></a><a href='#L1264'>1264</a>
1330
+ <a name='L1265'></a><a href='#L1265'>1265</a>
1331
+ <a name='L1266'></a><a href='#L1266'>1266</a>
1332
+ <a name='L1267'></a><a href='#L1267'>1267</a>
1333
+ <a name='L1268'></a><a href='#L1268'>1268</a>
1334
+ <a name='L1269'></a><a href='#L1269'>1269</a>
1335
+ <a name='L1270'></a><a href='#L1270'>1270</a>
1336
+ <a name='L1271'></a><a href='#L1271'>1271</a>
1337
+ <a name='L1272'></a><a href='#L1272'>1272</a>
1338
+ <a name='L1273'></a><a href='#L1273'>1273</a>
1339
+ <a name='L1274'></a><a href='#L1274'>1274</a>
1340
+ <a name='L1275'></a><a href='#L1275'>1275</a>
1341
+ <a name='L1276'></a><a href='#L1276'>1276</a>
1342
+ <a name='L1277'></a><a href='#L1277'>1277</a>
1343
+ <a name='L1278'></a><a href='#L1278'>1278</a>
1344
+ <a name='L1279'></a><a href='#L1279'>1279</a>
1345
+ <a name='L1280'></a><a href='#L1280'>1280</a>
1346
+ <a name='L1281'></a><a href='#L1281'>1281</a>
1347
+ <a name='L1282'></a><a href='#L1282'>1282</a>
1348
+ <a name='L1283'></a><a href='#L1283'>1283</a>
1349
+ <a name='L1284'></a><a href='#L1284'>1284</a>
1350
+ <a name='L1285'></a><a href='#L1285'>1285</a>
1351
+ <a name='L1286'></a><a href='#L1286'>1286</a>
1352
+ <a name='L1287'></a><a href='#L1287'>1287</a>
1353
+ <a name='L1288'></a><a href='#L1288'>1288</a>
1354
+ <a name='L1289'></a><a href='#L1289'>1289</a>
1355
+ <a name='L1290'></a><a href='#L1290'>1290</a>
1356
+ <a name='L1291'></a><a href='#L1291'>1291</a>
1357
+ <a name='L1292'></a><a href='#L1292'>1292</a>
1358
+ <a name='L1293'></a><a href='#L1293'>1293</a>
1359
+ <a name='L1294'></a><a href='#L1294'>1294</a>
1360
+ <a name='L1295'></a><a href='#L1295'>1295</a>
1361
+ <a name='L1296'></a><a href='#L1296'>1296</a>
1362
+ <a name='L1297'></a><a href='#L1297'>1297</a>
1363
+ <a name='L1298'></a><a href='#L1298'>1298</a>
1364
+ <a name='L1299'></a><a href='#L1299'>1299</a>
1365
+ <a name='L1300'></a><a href='#L1300'>1300</a>
1366
+ <a name='L1301'></a><a href='#L1301'>1301</a>
1367
+ <a name='L1302'></a><a href='#L1302'>1302</a>
1368
+ <a name='L1303'></a><a href='#L1303'>1303</a>
1369
+ <a name='L1304'></a><a href='#L1304'>1304</a>
1370
+ <a name='L1305'></a><a href='#L1305'>1305</a>
1371
+ <a name='L1306'></a><a href='#L1306'>1306</a>
1372
+ <a name='L1307'></a><a href='#L1307'>1307</a>
1373
+ <a name='L1308'></a><a href='#L1308'>1308</a>
1374
+ <a name='L1309'></a><a href='#L1309'>1309</a>
1375
+ <a name='L1310'></a><a href='#L1310'>1310</a>
1376
+ <a name='L1311'></a><a href='#L1311'>1311</a>
1377
+ <a name='L1312'></a><a href='#L1312'>1312</a>
1378
+ <a name='L1313'></a><a href='#L1313'>1313</a>
1379
+ <a name='L1314'></a><a href='#L1314'>1314</a>
1380
+ <a name='L1315'></a><a href='#L1315'>1315</a>
1381
+ <a name='L1316'></a><a href='#L1316'>1316</a>
1382
+ <a name='L1317'></a><a href='#L1317'>1317</a>
1383
+ <a name='L1318'></a><a href='#L1318'>1318</a>
1384
+ <a name='L1319'></a><a href='#L1319'>1319</a>
1385
+ <a name='L1320'></a><a href='#L1320'>1320</a>
1386
+ <a name='L1321'></a><a href='#L1321'>1321</a>
1387
+ <a name='L1322'></a><a href='#L1322'>1322</a>
1388
+ <a name='L1323'></a><a href='#L1323'>1323</a>
1389
+ <a name='L1324'></a><a href='#L1324'>1324</a>
1390
+ <a name='L1325'></a><a href='#L1325'>1325</a>
1391
+ <a name='L1326'></a><a href='#L1326'>1326</a>
1392
+ <a name='L1327'></a><a href='#L1327'>1327</a>
1393
+ <a name='L1328'></a><a href='#L1328'>1328</a>
1394
+ <a name='L1329'></a><a href='#L1329'>1329</a>
1395
+ <a name='L1330'></a><a href='#L1330'>1330</a>
1396
+ <a name='L1331'></a><a href='#L1331'>1331</a>
1397
+ <a name='L1332'></a><a href='#L1332'>1332</a>
1398
+ <a name='L1333'></a><a href='#L1333'>1333</a>
1399
+ <a name='L1334'></a><a href='#L1334'>1334</a>
1400
+ <a name='L1335'></a><a href='#L1335'>1335</a>
1401
+ <a name='L1336'></a><a href='#L1336'>1336</a>
1402
+ <a name='L1337'></a><a href='#L1337'>1337</a>
1403
+ <a name='L1338'></a><a href='#L1338'>1338</a>
1404
+ <a name='L1339'></a><a href='#L1339'>1339</a>
1405
+ <a name='L1340'></a><a href='#L1340'>1340</a>
1406
+ <a name='L1341'></a><a href='#L1341'>1341</a>
1407
+ <a name='L1342'></a><a href='#L1342'>1342</a>
1408
+ <a name='L1343'></a><a href='#L1343'>1343</a>
1409
+ <a name='L1344'></a><a href='#L1344'>1344</a>
1410
+ <a name='L1345'></a><a href='#L1345'>1345</a>
1411
+ <a name='L1346'></a><a href='#L1346'>1346</a>
1412
+ <a name='L1347'></a><a href='#L1347'>1347</a>
1413
+ <a name='L1348'></a><a href='#L1348'>1348</a>
1414
+ <a name='L1349'></a><a href='#L1349'>1349</a>
1415
+ <a name='L1350'></a><a href='#L1350'>1350</a>
1416
+ <a name='L1351'></a><a href='#L1351'>1351</a>
1417
+ <a name='L1352'></a><a href='#L1352'>1352</a>
1418
+ <a name='L1353'></a><a href='#L1353'>1353</a>
1419
+ <a name='L1354'></a><a href='#L1354'>1354</a>
1420
+ <a name='L1355'></a><a href='#L1355'>1355</a>
1421
+ <a name='L1356'></a><a href='#L1356'>1356</a>
1422
+ <a name='L1357'></a><a href='#L1357'>1357</a>
1423
+ <a name='L1358'></a><a href='#L1358'>1358</a>
1424
+ <a name='L1359'></a><a href='#L1359'>1359</a>
1425
+ <a name='L1360'></a><a href='#L1360'>1360</a>
1426
+ <a name='L1361'></a><a href='#L1361'>1361</a>
1427
+ <a name='L1362'></a><a href='#L1362'>1362</a>
1428
+ <a name='L1363'></a><a href='#L1363'>1363</a>
1429
+ <a name='L1364'></a><a href='#L1364'>1364</a>
1430
+ <a name='L1365'></a><a href='#L1365'>1365</a>
1431
+ <a name='L1366'></a><a href='#L1366'>1366</a>
1432
+ <a name='L1367'></a><a href='#L1367'>1367</a>
1433
+ <a name='L1368'></a><a href='#L1368'>1368</a>
1434
+ <a name='L1369'></a><a href='#L1369'>1369</a>
1435
+ <a name='L1370'></a><a href='#L1370'>1370</a>
1436
+ <a name='L1371'></a><a href='#L1371'>1371</a>
1437
+ <a name='L1372'></a><a href='#L1372'>1372</a>
1438
+ <a name='L1373'></a><a href='#L1373'>1373</a>
1439
+ <a name='L1374'></a><a href='#L1374'>1374</a>
1440
+ <a name='L1375'></a><a href='#L1375'>1375</a>
1441
+ <a name='L1376'></a><a href='#L1376'>1376</a>
1442
+ <a name='L1377'></a><a href='#L1377'>1377</a>
1443
+ <a name='L1378'></a><a href='#L1378'>1378</a>
1444
+ <a name='L1379'></a><a href='#L1379'>1379</a>
1445
+ <a name='L1380'></a><a href='#L1380'>1380</a>
1446
+ <a name='L1381'></a><a href='#L1381'>1381</a>
1447
+ <a name='L1382'></a><a href='#L1382'>1382</a>
1448
+ <a name='L1383'></a><a href='#L1383'>1383</a>
1449
+ <a name='L1384'></a><a href='#L1384'>1384</a>
1450
+ <a name='L1385'></a><a href='#L1385'>1385</a>
1451
+ <a name='L1386'></a><a href='#L1386'>1386</a>
1452
+ <a name='L1387'></a><a href='#L1387'>1387</a>
1453
+ <a name='L1388'></a><a href='#L1388'>1388</a>
1454
+ <a name='L1389'></a><a href='#L1389'>1389</a>
1455
+ <a name='L1390'></a><a href='#L1390'>1390</a>
1456
+ <a name='L1391'></a><a href='#L1391'>1391</a>
1457
+ <a name='L1392'></a><a href='#L1392'>1392</a>
1458
+ <a name='L1393'></a><a href='#L1393'>1393</a>
1459
+ <a name='L1394'></a><a href='#L1394'>1394</a>
1460
+ <a name='L1395'></a><a href='#L1395'>1395</a>
1461
+ <a name='L1396'></a><a href='#L1396'>1396</a>
1462
+ <a name='L1397'></a><a href='#L1397'>1397</a>
1463
+ <a name='L1398'></a><a href='#L1398'>1398</a>
1464
+ <a name='L1399'></a><a href='#L1399'>1399</a>
1465
+ <a name='L1400'></a><a href='#L1400'>1400</a>
1466
+ <a name='L1401'></a><a href='#L1401'>1401</a>
1467
+ <a name='L1402'></a><a href='#L1402'>1402</a>
1468
+ <a name='L1403'></a><a href='#L1403'>1403</a>
1469
+ <a name='L1404'></a><a href='#L1404'>1404</a>
1470
+ <a name='L1405'></a><a href='#L1405'>1405</a>
1471
+ <a name='L1406'></a><a href='#L1406'>1406</a>
1472
+ <a name='L1407'></a><a href='#L1407'>1407</a>
1473
+ <a name='L1408'></a><a href='#L1408'>1408</a>
1474
+ <a name='L1409'></a><a href='#L1409'>1409</a>
1475
+ <a name='L1410'></a><a href='#L1410'>1410</a>
1476
+ <a name='L1411'></a><a href='#L1411'>1411</a>
1477
+ <a name='L1412'></a><a href='#L1412'>1412</a>
1478
+ <a name='L1413'></a><a href='#L1413'>1413</a>
1479
+ <a name='L1414'></a><a href='#L1414'>1414</a>
1480
+ <a name='L1415'></a><a href='#L1415'>1415</a>
1481
+ <a name='L1416'></a><a href='#L1416'>1416</a>
1482
+ <a name='L1417'></a><a href='#L1417'>1417</a>
1483
+ <a name='L1418'></a><a href='#L1418'>1418</a>
1484
+ <a name='L1419'></a><a href='#L1419'>1419</a>
1485
+ <a name='L1420'></a><a href='#L1420'>1420</a>
1486
+ <a name='L1421'></a><a href='#L1421'>1421</a>
1487
+ <a name='L1422'></a><a href='#L1422'>1422</a>
1488
+ <a name='L1423'></a><a href='#L1423'>1423</a>
1489
+ <a name='L1424'></a><a href='#L1424'>1424</a>
1490
+ <a name='L1425'></a><a href='#L1425'>1425</a>
1491
+ <a name='L1426'></a><a href='#L1426'>1426</a>
1492
+ <a name='L1427'></a><a href='#L1427'>1427</a>
1493
+ <a name='L1428'></a><a href='#L1428'>1428</a>
1494
+ <a name='L1429'></a><a href='#L1429'>1429</a>
1495
+ <a name='L1430'></a><a href='#L1430'>1430</a>
1496
+ <a name='L1431'></a><a href='#L1431'>1431</a>
1497
+ <a name='L1432'></a><a href='#L1432'>1432</a>
1498
+ <a name='L1433'></a><a href='#L1433'>1433</a>
1499
+ <a name='L1434'></a><a href='#L1434'>1434</a>
1500
+ <a name='L1435'></a><a href='#L1435'>1435</a>
1501
+ <a name='L1436'></a><a href='#L1436'>1436</a>
1502
+ <a name='L1437'></a><a href='#L1437'>1437</a>
1503
+ <a name='L1438'></a><a href='#L1438'>1438</a>
1504
+ <a name='L1439'></a><a href='#L1439'>1439</a>
1505
+ <a name='L1440'></a><a href='#L1440'>1440</a>
1506
+ <a name='L1441'></a><a href='#L1441'>1441</a>
1507
+ <a name='L1442'></a><a href='#L1442'>1442</a>
1508
+ <a name='L1443'></a><a href='#L1443'>1443</a>
1509
+ <a name='L1444'></a><a href='#L1444'>1444</a>
1510
+ <a name='L1445'></a><a href='#L1445'>1445</a>
1511
+ <a name='L1446'></a><a href='#L1446'>1446</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
1512
+ <span class="cline-any cline-yes">1x</span>
1513
+ <span class="cline-any cline-yes">1x</span>
1514
+ <span class="cline-any cline-neutral">&nbsp;</span>
1515
+ <span class="cline-any cline-yes">1x</span>
1516
+ <span class="cline-any cline-yes">1x</span>
1517
+ <span class="cline-any cline-yes">1x</span>
1518
+ <span class="cline-any cline-neutral">&nbsp;</span>
1519
+ <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1524
+ <span class="cline-any cline-neutral">&nbsp;</span>
1525
+ <span class="cline-any cline-neutral">&nbsp;</span>
1526
+ <span class="cline-any cline-neutral">&nbsp;</span>
1527
+ <span class="cline-any cline-neutral">&nbsp;</span>
1528
+ <span class="cline-any cline-neutral">&nbsp;</span>
1529
+ <span class="cline-any cline-yes">1x</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-yes">1x</span>
1533
+ <span class="cline-any cline-yes">1x</span>
1534
+ <span class="cline-any cline-yes">1x</span>
1535
+ <span class="cline-any cline-yes">1x</span>
1536
+ <span class="cline-any cline-neutral">&nbsp;</span>
1537
+ <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1543
+ <span class="cline-any cline-neutral">&nbsp;</span>
1544
+ <span class="cline-any cline-neutral">&nbsp;</span>
1545
+ <span class="cline-any cline-yes">1x</span>
1546
+ <span class="cline-any cline-neutral">&nbsp;</span>
1547
+ <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
1552
+ <span class="cline-any cline-neutral">&nbsp;</span>
1553
+ <span class="cline-any cline-yes">68x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
1563
+ <span class="cline-any cline-neutral">&nbsp;</span>
1564
+ <span class="cline-any cline-neutral">&nbsp;</span>
1565
+ <span class="cline-any cline-yes">68x</span>
1566
+ <span class="cline-any cline-neutral">&nbsp;</span>
1567
+ <span class="cline-any cline-neutral">&nbsp;</span>
1568
+ <span class="cline-any cline-neutral">&nbsp;</span>
1569
+ <span class="cline-any cline-neutral">&nbsp;</span>
1570
+ <span class="cline-any cline-neutral">&nbsp;</span>
1571
+ <span class="cline-any cline-neutral">&nbsp;</span>
1572
+ <span class="cline-any cline-yes">1x</span>
1573
+ <span class="cline-any cline-neutral">&nbsp;</span>
1574
+ <span class="cline-any cline-neutral">&nbsp;</span>
1575
+ <span class="cline-any cline-neutral">&nbsp;</span>
1576
+ <span class="cline-any cline-neutral">&nbsp;</span>
1577
+ <span class="cline-any cline-neutral">&nbsp;</span>
1578
+ <span class="cline-any cline-neutral">&nbsp;</span>
1579
+ <span class="cline-any cline-yes">1x</span>
1580
+ <span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1582
+ <span class="cline-any cline-neutral">&nbsp;</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</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">1x</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-yes">1x</span>
1594
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1599
+ <span class="cline-any cline-yes">68x</span>
1600
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1605
+ <span class="cline-any cline-yes">68x</span>
1606
+ <span class="cline-any cline-neutral">&nbsp;</span>
1607
+ <span class="cline-any cline-neutral">&nbsp;</span>
1608
+ <span class="cline-any cline-neutral">&nbsp;</span>
1609
+ <span class="cline-any cline-neutral">&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-yes">1x</span>
1613
+ <span class="cline-any cline-neutral">&nbsp;</span>
1614
+ <span class="cline-any cline-neutral">&nbsp;</span>
1615
+ <span class="cline-any cline-neutral">&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-yes">1x</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-neutral">&nbsp;</span>
1624
+ <span class="cline-any cline-neutral">&nbsp;</span>
1625
+ <span class="cline-any cline-yes">68x</span>
1626
+ <span class="cline-any cline-yes">68x</span>
1627
+ <span class="cline-any cline-yes">68x</span>
1628
+ <span class="cline-any cline-neutral">&nbsp;</span>
1629
+ <span class="cline-any cline-neutral">&nbsp;</span>
1630
+ <span class="cline-any cline-neutral">&nbsp;</span>
1631
+ <span class="cline-any cline-yes">65x</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-neutral">&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-neutral">&nbsp;</span>
1643
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1647
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
1654
+ <span class="cline-any cline-neutral">&nbsp;</span>
1655
+ <span class="cline-any cline-neutral">&nbsp;</span>
1656
+ <span class="cline-any cline-no">&nbsp;</span>
1657
+ <span class="cline-any cline-neutral">&nbsp;</span>
1658
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1665
+ <span class="cline-any cline-neutral">&nbsp;</span>
1666
+ <span class="cline-any cline-neutral">&nbsp;</span>
1667
+ <span class="cline-any cline-neutral">&nbsp;</span>
1668
+ <span class="cline-any cline-neutral">&nbsp;</span>
1669
+ <span class="cline-any cline-neutral">&nbsp;</span>
1670
+ <span class="cline-any cline-neutral">&nbsp;</span>
1671
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1684
+ <span class="cline-any cline-no">&nbsp;</span>
1685
+ <span class="cline-any cline-neutral">&nbsp;</span>
1686
+ <span class="cline-any cline-neutral">&nbsp;</span>
1687
+ <span class="cline-any cline-neutral">&nbsp;</span>
1688
+ <span class="cline-any cline-neutral">&nbsp;</span>
1689
+ <span class="cline-any cline-neutral">&nbsp;</span>
1690
+ <span class="cline-any cline-neutral">&nbsp;</span>
1691
+ <span class="cline-any cline-neutral">&nbsp;</span>
1692
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1708
+ <span class="cline-any cline-neutral">&nbsp;</span>
1709
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1713
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1718
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1725
+ <span class="cline-any cline-neutral">&nbsp;</span>
1726
+ <span class="cline-any cline-neutral">&nbsp;</span>
1727
+ <span class="cline-any cline-neutral">&nbsp;</span>
1728
+ <span class="cline-any cline-neutral">&nbsp;</span>
1729
+ <span class="cline-any cline-neutral">&nbsp;</span>
1730
+ <span class="cline-any cline-neutral">&nbsp;</span>
1731
+ <span class="cline-any cline-neutral">&nbsp;</span>
1732
+ <span class="cline-any cline-neutral">&nbsp;</span>
1733
+ <span class="cline-any cline-neutral">&nbsp;</span>
1734
+ <span class="cline-any cline-no">&nbsp;</span>
1735
+ <span class="cline-any cline-no">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-neutral">&nbsp;</span>
1739
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</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-no">&nbsp;</span>
1752
+ <span class="cline-any cline-no">&nbsp;</span>
1753
+ <span class="cline-any cline-no">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-neutral">&nbsp;</span>
1758
+ <span class="cline-any cline-no">&nbsp;</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-neutral">&nbsp;</span>
1761
+ <span class="cline-any cline-neutral">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-neutral">&nbsp;</span>
1764
+ <span class="cline-any cline-neutral">&nbsp;</span>
1765
+ <span class="cline-any cline-neutral">&nbsp;</span>
1766
+ <span class="cline-any cline-neutral">&nbsp;</span>
1767
+ <span class="cline-any cline-neutral">&nbsp;</span>
1768
+ <span class="cline-any cline-neutral">&nbsp;</span>
1769
+ <span class="cline-any cline-neutral">&nbsp;</span>
1770
+ <span class="cline-any cline-neutral">&nbsp;</span>
1771
+ <span class="cline-any cline-neutral">&nbsp;</span>
1772
+ <span class="cline-any cline-neutral">&nbsp;</span>
1773
+ <span class="cline-any cline-neutral">&nbsp;</span>
1774
+ <span class="cline-any cline-neutral">&nbsp;</span>
1775
+ <span class="cline-any cline-neutral">&nbsp;</span>
1776
+ <span class="cline-any cline-no">&nbsp;</span>
1777
+ <span class="cline-any cline-no">&nbsp;</span>
1778
+ <span class="cline-any cline-neutral">&nbsp;</span>
1779
+ <span class="cline-any cline-no">&nbsp;</span>
1780
+ <span class="cline-any cline-no">&nbsp;</span>
1781
+ <span class="cline-any cline-no">&nbsp;</span>
1782
+ <span class="cline-any cline-no">&nbsp;</span>
1783
+ <span class="cline-any cline-neutral">&nbsp;</span>
1784
+ <span class="cline-any cline-no">&nbsp;</span>
1785
+ <span class="cline-any cline-neutral">&nbsp;</span>
1786
+ <span class="cline-any cline-neutral">&nbsp;</span>
1787
+ <span class="cline-any cline-neutral">&nbsp;</span>
1788
+ <span class="cline-any cline-neutral">&nbsp;</span>
1789
+ <span class="cline-any cline-neutral">&nbsp;</span>
1790
+ <span class="cline-any cline-neutral">&nbsp;</span>
1791
+ <span class="cline-any cline-neutral">&nbsp;</span>
1792
+ <span class="cline-any cline-neutral">&nbsp;</span>
1793
+ <span class="cline-any cline-no">&nbsp;</span>
1794
+ <span class="cline-any cline-no">&nbsp;</span>
1795
+ <span class="cline-any cline-neutral">&nbsp;</span>
1796
+ <span class="cline-any cline-neutral">&nbsp;</span>
1797
+ <span class="cline-any cline-neutral">&nbsp;</span>
1798
+ <span class="cline-any cline-neutral">&nbsp;</span>
1799
+ <span class="cline-any cline-neutral">&nbsp;</span>
1800
+ <span class="cline-any cline-neutral">&nbsp;</span>
1801
+ <span class="cline-any cline-neutral">&nbsp;</span>
1802
+ <span class="cline-any cline-neutral">&nbsp;</span>
1803
+ <span class="cline-any cline-neutral">&nbsp;</span>
1804
+ <span class="cline-any cline-neutral">&nbsp;</span>
1805
+ <span class="cline-any cline-neutral">&nbsp;</span>
1806
+ <span class="cline-any cline-neutral">&nbsp;</span>
1807
+ <span class="cline-any cline-neutral">&nbsp;</span>
1808
+ <span class="cline-any cline-neutral">&nbsp;</span>
1809
+ <span class="cline-any cline-neutral">&nbsp;</span>
1810
+ <span class="cline-any cline-no">&nbsp;</span>
1811
+ <span class="cline-any cline-no">&nbsp;</span>
1812
+ <span class="cline-any cline-neutral">&nbsp;</span>
1813
+ <span class="cline-any cline-neutral">&nbsp;</span>
1814
+ <span class="cline-any cline-neutral">&nbsp;</span>
1815
+ <span class="cline-any cline-neutral">&nbsp;</span>
1816
+ <span class="cline-any cline-no">&nbsp;</span>
1817
+ <span class="cline-any cline-neutral">&nbsp;</span>
1818
+ <span class="cline-any cline-neutral">&nbsp;</span>
1819
+ <span class="cline-any cline-neutral">&nbsp;</span>
1820
+ <span class="cline-any cline-neutral">&nbsp;</span>
1821
+ <span class="cline-any cline-neutral">&nbsp;</span>
1822
+ <span class="cline-any cline-neutral">&nbsp;</span>
1823
+ <span class="cline-any cline-neutral">&nbsp;</span>
1824
+ <span class="cline-any cline-neutral">&nbsp;</span>
1825
+ <span class="cline-any cline-neutral">&nbsp;</span>
1826
+ <span class="cline-any cline-neutral">&nbsp;</span>
1827
+ <span class="cline-any cline-neutral">&nbsp;</span>
1828
+ <span class="cline-any cline-neutral">&nbsp;</span>
1829
+ <span class="cline-any cline-neutral">&nbsp;</span>
1830
+ <span class="cline-any cline-neutral">&nbsp;</span>
1831
+ <span class="cline-any cline-neutral">&nbsp;</span>
1832
+ <span class="cline-any cline-neutral">&nbsp;</span>
1833
+ <span class="cline-any cline-neutral">&nbsp;</span>
1834
+ <span class="cline-any cline-no">&nbsp;</span>
1835
+ <span class="cline-any cline-no">&nbsp;</span>
1836
+ <span class="cline-any cline-neutral">&nbsp;</span>
1837
+ <span class="cline-any cline-neutral">&nbsp;</span>
1838
+ <span class="cline-any cline-neutral">&nbsp;</span>
1839
+ <span class="cline-any cline-neutral">&nbsp;</span>
1840
+ <span class="cline-any cline-neutral">&nbsp;</span>
1841
+ <span class="cline-any cline-neutral">&nbsp;</span>
1842
+ <span class="cline-any cline-neutral">&nbsp;</span>
1843
+ <span class="cline-any cline-neutral">&nbsp;</span>
1844
+ <span class="cline-any cline-neutral">&nbsp;</span>
1845
+ <span class="cline-any cline-neutral">&nbsp;</span>
1846
+ <span class="cline-any cline-neutral">&nbsp;</span>
1847
+ <span class="cline-any cline-neutral">&nbsp;</span>
1848
+ <span class="cline-any cline-neutral">&nbsp;</span>
1849
+ <span class="cline-any cline-neutral">&nbsp;</span>
1850
+ <span class="cline-any cline-neutral">&nbsp;</span>
1851
+ <span class="cline-any cline-no">&nbsp;</span>
1852
+ <span class="cline-any cline-no">&nbsp;</span>
1853
+ <span class="cline-any cline-no">&nbsp;</span>
1854
+ <span class="cline-any cline-neutral">&nbsp;</span>
1855
+ <span class="cline-any cline-neutral">&nbsp;</span>
1856
+ <span class="cline-any cline-neutral">&nbsp;</span>
1857
+ <span class="cline-any cline-neutral">&nbsp;</span>
1858
+ <span class="cline-any cline-no">&nbsp;</span>
1859
+ <span class="cline-any cline-neutral">&nbsp;</span>
1860
+ <span class="cline-any cline-neutral">&nbsp;</span>
1861
+ <span class="cline-any cline-neutral">&nbsp;</span>
1862
+ <span class="cline-any cline-neutral">&nbsp;</span>
1863
+ <span class="cline-any cline-neutral">&nbsp;</span>
1864
+ <span class="cline-any cline-neutral">&nbsp;</span>
1865
+ <span class="cline-any cline-neutral">&nbsp;</span>
1866
+ <span class="cline-any cline-neutral">&nbsp;</span>
1867
+ <span class="cline-any cline-neutral">&nbsp;</span>
1868
+ <span class="cline-any cline-no">&nbsp;</span>
1869
+ <span class="cline-any cline-no">&nbsp;</span>
1870
+ <span class="cline-any cline-neutral">&nbsp;</span>
1871
+ <span class="cline-any cline-neutral">&nbsp;</span>
1872
+ <span class="cline-any cline-neutral">&nbsp;</span>
1873
+ <span class="cline-any cline-no">&nbsp;</span>
1874
+ <span class="cline-any cline-no">&nbsp;</span>
1875
+ <span class="cline-any cline-neutral">&nbsp;</span>
1876
+ <span class="cline-any cline-neutral">&nbsp;</span>
1877
+ <span class="cline-any cline-neutral">&nbsp;</span>
1878
+ <span class="cline-any cline-neutral">&nbsp;</span>
1879
+ <span class="cline-any cline-neutral">&nbsp;</span>
1880
+ <span class="cline-any cline-neutral">&nbsp;</span>
1881
+ <span class="cline-any cline-no">&nbsp;</span>
1882
+ <span class="cline-any cline-no">&nbsp;</span>
1883
+ <span class="cline-any cline-no">&nbsp;</span>
1884
+ <span class="cline-any cline-no">&nbsp;</span>
1885
+ <span class="cline-any cline-no">&nbsp;</span>
1886
+ <span class="cline-any cline-no">&nbsp;</span>
1887
+ <span class="cline-any cline-no">&nbsp;</span>
1888
+ <span class="cline-any cline-no">&nbsp;</span>
1889
+ <span class="cline-any cline-no">&nbsp;</span>
1890
+ <span class="cline-any cline-neutral">&nbsp;</span>
1891
+ <span class="cline-any cline-neutral">&nbsp;</span>
1892
+ <span class="cline-any cline-no">&nbsp;</span>
1893
+ <span class="cline-any cline-neutral">&nbsp;</span>
1894
+ <span class="cline-any cline-neutral">&nbsp;</span>
1895
+ <span class="cline-any cline-neutral">&nbsp;</span>
1896
+ <span class="cline-any cline-neutral">&nbsp;</span>
1897
+ <span class="cline-any cline-neutral">&nbsp;</span>
1898
+ <span class="cline-any cline-neutral">&nbsp;</span>
1899
+ <span class="cline-any cline-neutral">&nbsp;</span>
1900
+ <span class="cline-any cline-neutral">&nbsp;</span>
1901
+ <span class="cline-any cline-neutral">&nbsp;</span>
1902
+ <span class="cline-any cline-no">&nbsp;</span>
1903
+ <span class="cline-any cline-no">&nbsp;</span>
1904
+ <span class="cline-any cline-neutral">&nbsp;</span>
1905
+ <span class="cline-any cline-neutral">&nbsp;</span>
1906
+ <span class="cline-any cline-neutral">&nbsp;</span>
1907
+ <span class="cline-any cline-no">&nbsp;</span>
1908
+ <span class="cline-any cline-no">&nbsp;</span>
1909
+ <span class="cline-any cline-neutral">&nbsp;</span>
1910
+ <span class="cline-any cline-neutral">&nbsp;</span>
1911
+ <span class="cline-any cline-neutral">&nbsp;</span>
1912
+ <span class="cline-any cline-neutral">&nbsp;</span>
1913
+ <span class="cline-any cline-neutral">&nbsp;</span>
1914
+ <span class="cline-any cline-neutral">&nbsp;</span>
1915
+ <span class="cline-any cline-no">&nbsp;</span>
1916
+ <span class="cline-any cline-no">&nbsp;</span>
1917
+ <span class="cline-any cline-no">&nbsp;</span>
1918
+ <span class="cline-any cline-no">&nbsp;</span>
1919
+ <span class="cline-any cline-no">&nbsp;</span>
1920
+ <span class="cline-any cline-no">&nbsp;</span>
1921
+ <span class="cline-any cline-no">&nbsp;</span>
1922
+ <span class="cline-any cline-no">&nbsp;</span>
1923
+ <span class="cline-any cline-no">&nbsp;</span>
1924
+ <span class="cline-any cline-neutral">&nbsp;</span>
1925
+ <span class="cline-any cline-neutral">&nbsp;</span>
1926
+ <span class="cline-any cline-no">&nbsp;</span>
1927
+ <span class="cline-any cline-neutral">&nbsp;</span>
1928
+ <span class="cline-any cline-neutral">&nbsp;</span>
1929
+ <span class="cline-any cline-neutral">&nbsp;</span>
1930
+ <span class="cline-any cline-neutral">&nbsp;</span>
1931
+ <span class="cline-any cline-neutral">&nbsp;</span>
1932
+ <span class="cline-any cline-neutral">&nbsp;</span>
1933
+ <span class="cline-any cline-neutral">&nbsp;</span>
1934
+ <span class="cline-any cline-neutral">&nbsp;</span>
1935
+ <span class="cline-any cline-neutral">&nbsp;</span>
1936
+ <span class="cline-any cline-neutral">&nbsp;</span>
1937
+ <span class="cline-any cline-neutral">&nbsp;</span>
1938
+ <span class="cline-any cline-neutral">&nbsp;</span>
1939
+ <span class="cline-any cline-neutral">&nbsp;</span>
1940
+ <span class="cline-any cline-neutral">&nbsp;</span>
1941
+ <span class="cline-any cline-neutral">&nbsp;</span>
1942
+ <span class="cline-any cline-neutral">&nbsp;</span>
1943
+ <span class="cline-any cline-no">&nbsp;</span>
1944
+ <span class="cline-any cline-no">&nbsp;</span>
1945
+ <span class="cline-any cline-no">&nbsp;</span>
1946
+ <span class="cline-any cline-no">&nbsp;</span>
1947
+ <span class="cline-any cline-neutral">&nbsp;</span>
1948
+ <span class="cline-any cline-neutral">&nbsp;</span>
1949
+ <span class="cline-any cline-no">&nbsp;</span>
1950
+ <span class="cline-any cline-neutral">&nbsp;</span>
1951
+ <span class="cline-any cline-no">&nbsp;</span>
1952
+ <span class="cline-any cline-neutral">&nbsp;</span>
1953
+ <span class="cline-any cline-neutral">&nbsp;</span>
1954
+ <span class="cline-any cline-neutral">&nbsp;</span>
1955
+ <span class="cline-any cline-no">&nbsp;</span>
1956
+ <span class="cline-any cline-no">&nbsp;</span>
1957
+ <span class="cline-any cline-neutral">&nbsp;</span>
1958
+ <span class="cline-any cline-neutral">&nbsp;</span>
1959
+ <span class="cline-any cline-neutral">&nbsp;</span>
1960
+ <span class="cline-any cline-neutral">&nbsp;</span>
1961
+ <span class="cline-any cline-neutral">&nbsp;</span>
1962
+ <span class="cline-any cline-neutral">&nbsp;</span>
1963
+ <span class="cline-any cline-no">&nbsp;</span>
1964
+ <span class="cline-any cline-no">&nbsp;</span>
1965
+ <span class="cline-any cline-no">&nbsp;</span>
1966
+ <span class="cline-any cline-no">&nbsp;</span>
1967
+ <span class="cline-any cline-no">&nbsp;</span>
1968
+ <span class="cline-any cline-no">&nbsp;</span>
1969
+ <span class="cline-any cline-no">&nbsp;</span>
1970
+ <span class="cline-any cline-no">&nbsp;</span>
1971
+ <span class="cline-any cline-no">&nbsp;</span>
1972
+ <span class="cline-any cline-neutral">&nbsp;</span>
1973
+ <span class="cline-any cline-neutral">&nbsp;</span>
1974
+ <span class="cline-any cline-no">&nbsp;</span>
1975
+ <span class="cline-any cline-neutral">&nbsp;</span>
1976
+ <span class="cline-any cline-neutral">&nbsp;</span>
1977
+ <span class="cline-any cline-neutral">&nbsp;</span>
1978
+ <span class="cline-any cline-neutral">&nbsp;</span>
1979
+ <span class="cline-any cline-neutral">&nbsp;</span>
1980
+ <span class="cline-any cline-neutral">&nbsp;</span>
1981
+ <span class="cline-any cline-neutral">&nbsp;</span>
1982
+ <span class="cline-any cline-neutral">&nbsp;</span>
1983
+ <span class="cline-any cline-yes">82x</span>
1984
+ <span class="cline-any cline-yes">82x</span>
1985
+ <span class="cline-any cline-yes">82x</span>
1986
+ <span class="cline-any cline-yes">82x</span>
1987
+ <span class="cline-any cline-yes">82x</span>
1988
+ <span class="cline-any cline-neutral">&nbsp;</span>
1989
+ <span class="cline-any cline-no">&nbsp;</span>
1990
+ <span class="cline-any cline-neutral">&nbsp;</span>
1991
+ <span class="cline-any cline-neutral">&nbsp;</span>
1992
+ <span class="cline-any cline-neutral">&nbsp;</span>
1993
+ <span class="cline-any cline-neutral">&nbsp;</span>
1994
+ <span class="cline-any cline-yes">43x</span>
1995
+ <span class="cline-any cline-neutral">&nbsp;</span>
1996
+ <span class="cline-any cline-no">&nbsp;</span>
1997
+ <span class="cline-any cline-neutral">&nbsp;</span>
1998
+ <span class="cline-any cline-neutral">&nbsp;</span>
1999
+ <span class="cline-any cline-yes">43x</span>
2000
+ <span class="cline-any cline-neutral">&nbsp;</span>
2001
+ <span class="cline-any cline-neutral">&nbsp;</span>
2002
+ <span class="cline-any cline-neutral">&nbsp;</span>
2003
+ <span class="cline-any cline-yes">41x</span>
2004
+ <span class="cline-any cline-yes">41x</span>
2005
+ <span class="cline-any cline-yes">41x</span>
2006
+ <span class="cline-any cline-no">&nbsp;</span>
2007
+ <span class="cline-any cline-neutral">&nbsp;</span>
2008
+ <span class="cline-any cline-neutral">&nbsp;</span>
2009
+ <span class="cline-any cline-yes">41x</span>
2010
+ <span class="cline-any cline-yes">12x</span>
2011
+ <span class="cline-any cline-yes">12x</span>
2012
+ <span class="cline-any cline-neutral">&nbsp;</span>
2013
+ <span class="cline-any cline-yes">29x</span>
2014
+ <span class="cline-any cline-neutral">&nbsp;</span>
2015
+ <span class="cline-any cline-neutral">&nbsp;</span>
2016
+ <span class="cline-any cline-neutral">&nbsp;</span>
2017
+ <span class="cline-any cline-neutral">&nbsp;</span>
2018
+ <span class="cline-any cline-neutral">&nbsp;</span>
2019
+ <span class="cline-any cline-neutral">&nbsp;</span>
2020
+ <span class="cline-any cline-neutral">&nbsp;</span>
2021
+ <span class="cline-any cline-neutral">&nbsp;</span>
2022
+ <span class="cline-any cline-neutral">&nbsp;</span>
2023
+ <span class="cline-any cline-neutral">&nbsp;</span>
2024
+ <span class="cline-any cline-neutral">&nbsp;</span>
2025
+ <span class="cline-any cline-neutral">&nbsp;</span>
2026
+ <span class="cline-any cline-neutral">&nbsp;</span>
2027
+ <span class="cline-any cline-neutral">&nbsp;</span>
2028
+ <span class="cline-any cline-no">&nbsp;</span>
2029
+ <span class="cline-any cline-neutral">&nbsp;</span>
2030
+ <span class="cline-any cline-neutral">&nbsp;</span>
2031
+ <span class="cline-any cline-no">&nbsp;</span>
2032
+ <span class="cline-any cline-neutral">&nbsp;</span>
2033
+ <span class="cline-any cline-neutral">&nbsp;</span>
2034
+ <span class="cline-any cline-neutral">&nbsp;</span>
2035
+ <span class="cline-any cline-neutral">&nbsp;</span>
2036
+ <span class="cline-any cline-neutral">&nbsp;</span>
2037
+ <span class="cline-any cline-neutral">&nbsp;</span>
2038
+ <span class="cline-any cline-neutral">&nbsp;</span>
2039
+ <span class="cline-any cline-neutral">&nbsp;</span>
2040
+ <span class="cline-any cline-no">&nbsp;</span>
2041
+ <span class="cline-any cline-neutral">&nbsp;</span>
2042
+ <span class="cline-any cline-neutral">&nbsp;</span>
2043
+ <span class="cline-any cline-no">&nbsp;</span>
2044
+ <span class="cline-any cline-neutral">&nbsp;</span>
2045
+ <span class="cline-any cline-neutral">&nbsp;</span>
2046
+ <span class="cline-any cline-neutral">&nbsp;</span>
2047
+ <span class="cline-any cline-neutral">&nbsp;</span>
2048
+ <span class="cline-any cline-neutral">&nbsp;</span>
2049
+ <span class="cline-any cline-neutral">&nbsp;</span>
2050
+ <span class="cline-any cline-neutral">&nbsp;</span>
2051
+ <span class="cline-any cline-neutral">&nbsp;</span>
2052
+ <span class="cline-any cline-no">&nbsp;</span>
2053
+ <span class="cline-any cline-neutral">&nbsp;</span>
2054
+ <span class="cline-any cline-neutral">&nbsp;</span>
2055
+ <span class="cline-any cline-no">&nbsp;</span>
2056
+ <span class="cline-any cline-neutral">&nbsp;</span>
2057
+ <span class="cline-any cline-neutral">&nbsp;</span>
2058
+ <span class="cline-any cline-neutral">&nbsp;</span>
2059
+ <span class="cline-any cline-neutral">&nbsp;</span>
2060
+ <span class="cline-any cline-neutral">&nbsp;</span>
2061
+ <span class="cline-any cline-no">&nbsp;</span>
2062
+ <span class="cline-any cline-no">&nbsp;</span>
2063
+ <span class="cline-any cline-no">&nbsp;</span>
2064
+ <span class="cline-any cline-neutral">&nbsp;</span>
2065
+ <span class="cline-any cline-no">&nbsp;</span>
2066
+ <span class="cline-any cline-no">&nbsp;</span>
2067
+ <span class="cline-any cline-no">&nbsp;</span>
2068
+ <span class="cline-any cline-no">&nbsp;</span>
2069
+ <span class="cline-any cline-neutral">&nbsp;</span>
2070
+ <span class="cline-any cline-neutral">&nbsp;</span>
2071
+ <span class="cline-any cline-no">&nbsp;</span>
2072
+ <span class="cline-any cline-no">&nbsp;</span>
2073
+ <span class="cline-any cline-no">&nbsp;</span>
2074
+ <span class="cline-any cline-neutral">&nbsp;</span>
2075
+ <span class="cline-any cline-neutral">&nbsp;</span>
2076
+ <span class="cline-any cline-no">&nbsp;</span>
2077
+ <span class="cline-any cline-no">&nbsp;</span>
2078
+ <span class="cline-any cline-no">&nbsp;</span>
2079
+ <span class="cline-any cline-no">&nbsp;</span>
2080
+ <span class="cline-any cline-neutral">&nbsp;</span>
2081
+ <span class="cline-any cline-neutral">&nbsp;</span>
2082
+ <span class="cline-any cline-neutral">&nbsp;</span>
2083
+ <span class="cline-any cline-neutral">&nbsp;</span>
2084
+ <span class="cline-any cline-neutral">&nbsp;</span>
2085
+ <span class="cline-any cline-no">&nbsp;</span>
2086
+ <span class="cline-any cline-no">&nbsp;</span>
2087
+ <span class="cline-any cline-no">&nbsp;</span>
2088
+ <span class="cline-any cline-neutral">&nbsp;</span>
2089
+ <span class="cline-any cline-no">&nbsp;</span>
2090
+ <span class="cline-any cline-no">&nbsp;</span>
2091
+ <span class="cline-any cline-no">&nbsp;</span>
2092
+ <span class="cline-any cline-no">&nbsp;</span>
2093
+ <span class="cline-any cline-neutral">&nbsp;</span>
2094
+ <span class="cline-any cline-neutral">&nbsp;</span>
2095
+ <span class="cline-any cline-neutral">&nbsp;</span>
2096
+ <span class="cline-any cline-neutral">&nbsp;</span>
2097
+ <span class="cline-any cline-neutral">&nbsp;</span>
2098
+ <span class="cline-any cline-neutral">&nbsp;</span>
2099
+ <span class="cline-any cline-no">&nbsp;</span>
2100
+ <span class="cline-any cline-no">&nbsp;</span>
2101
+ <span class="cline-any cline-neutral">&nbsp;</span>
2102
+ <span class="cline-any cline-no">&nbsp;</span>
2103
+ <span class="cline-any cline-no">&nbsp;</span>
2104
+ <span class="cline-any cline-no">&nbsp;</span>
2105
+ <span class="cline-any cline-no">&nbsp;</span>
2106
+ <span class="cline-any cline-no">&nbsp;</span>
2107
+ <span class="cline-any cline-no">&nbsp;</span>
2108
+ <span class="cline-any cline-no">&nbsp;</span>
2109
+ <span class="cline-any cline-neutral">&nbsp;</span>
2110
+ <span class="cline-any cline-neutral">&nbsp;</span>
2111
+ <span class="cline-any cline-neutral">&nbsp;</span>
2112
+ <span class="cline-any cline-neutral">&nbsp;</span>
2113
+ <span class="cline-any cline-no">&nbsp;</span>
2114
+ <span class="cline-any cline-no">&nbsp;</span>
2115
+ <span class="cline-any cline-no">&nbsp;</span>
2116
+ <span class="cline-any cline-neutral">&nbsp;</span>
2117
+ <span class="cline-any cline-no">&nbsp;</span>
2118
+ <span class="cline-any cline-no">&nbsp;</span>
2119
+ <span class="cline-any cline-neutral">&nbsp;</span>
2120
+ <span class="cline-any cline-neutral">&nbsp;</span>
2121
+ <span class="cline-any cline-no">&nbsp;</span>
2122
+ <span class="cline-any cline-no">&nbsp;</span>
2123
+ <span class="cline-any cline-neutral">&nbsp;</span>
2124
+ <span class="cline-any cline-neutral">&nbsp;</span>
2125
+ <span class="cline-any cline-neutral">&nbsp;</span>
2126
+ <span class="cline-any cline-neutral">&nbsp;</span>
2127
+ <span class="cline-any cline-neutral">&nbsp;</span>
2128
+ <span class="cline-any cline-neutral">&nbsp;</span>
2129
+ <span class="cline-any cline-neutral">&nbsp;</span>
2130
+ <span class="cline-any cline-no">&nbsp;</span>
2131
+ <span class="cline-any cline-no">&nbsp;</span>
2132
+ <span class="cline-any cline-no">&nbsp;</span>
2133
+ <span class="cline-any cline-neutral">&nbsp;</span>
2134
+ <span class="cline-any cline-no">&nbsp;</span>
2135
+ <span class="cline-any cline-neutral">&nbsp;</span>
2136
+ <span class="cline-any cline-no">&nbsp;</span>
2137
+ <span class="cline-any cline-neutral">&nbsp;</span>
2138
+ <span class="cline-any cline-neutral">&nbsp;</span>
2139
+ <span class="cline-any cline-neutral">&nbsp;</span>
2140
+ <span class="cline-any cline-neutral">&nbsp;</span>
2141
+ <span class="cline-any cline-neutral">&nbsp;</span>
2142
+ <span class="cline-any cline-neutral">&nbsp;</span>
2143
+ <span class="cline-any cline-neutral">&nbsp;</span>
2144
+ <span class="cline-any cline-neutral">&nbsp;</span>
2145
+ <span class="cline-any cline-neutral">&nbsp;</span>
2146
+ <span class="cline-any cline-neutral">&nbsp;</span>
2147
+ <span class="cline-any cline-neutral">&nbsp;</span>
2148
+ <span class="cline-any cline-no">&nbsp;</span>
2149
+ <span class="cline-any cline-no">&nbsp;</span>
2150
+ <span class="cline-any cline-neutral">&nbsp;</span>
2151
+ <span class="cline-any cline-neutral">&nbsp;</span>
2152
+ <span class="cline-any cline-neutral">&nbsp;</span>
2153
+ <span class="cline-any cline-neutral">&nbsp;</span>
2154
+ <span class="cline-any cline-neutral">&nbsp;</span>
2155
+ <span class="cline-any cline-neutral">&nbsp;</span>
2156
+ <span class="cline-any cline-no">&nbsp;</span>
2157
+ <span class="cline-any cline-neutral">&nbsp;</span>
2158
+ <span class="cline-any cline-neutral">&nbsp;</span>
2159
+ <span class="cline-any cline-neutral">&nbsp;</span>
2160
+ <span class="cline-any cline-no">&nbsp;</span>
2161
+ <span class="cline-any cline-no">&nbsp;</span>
2162
+ <span class="cline-any cline-no">&nbsp;</span>
2163
+ <span class="cline-any cline-no">&nbsp;</span>
2164
+ <span class="cline-any cline-no">&nbsp;</span>
2165
+ <span class="cline-any cline-neutral">&nbsp;</span>
2166
+ <span class="cline-any cline-neutral">&nbsp;</span>
2167
+ <span class="cline-any cline-neutral">&nbsp;</span>
2168
+ <span class="cline-any cline-neutral">&nbsp;</span>
2169
+ <span class="cline-any cline-neutral">&nbsp;</span>
2170
+ <span class="cline-any cline-no">&nbsp;</span>
2171
+ <span class="cline-any cline-no">&nbsp;</span>
2172
+ <span class="cline-any cline-neutral">&nbsp;</span>
2173
+ <span class="cline-any cline-no">&nbsp;</span>
2174
+ <span class="cline-any cline-neutral">&nbsp;</span>
2175
+ <span class="cline-any cline-neutral">&nbsp;</span>
2176
+ <span class="cline-any cline-neutral">&nbsp;</span>
2177
+ <span class="cline-any cline-neutral">&nbsp;</span>
2178
+ <span class="cline-any cline-neutral">&nbsp;</span>
2179
+ <span class="cline-any cline-neutral">&nbsp;</span>
2180
+ <span class="cline-any cline-no">&nbsp;</span>
2181
+ <span class="cline-any cline-no">&nbsp;</span>
2182
+ <span class="cline-any cline-no">&nbsp;</span>
2183
+ <span class="cline-any cline-no">&nbsp;</span>
2184
+ <span class="cline-any cline-neutral">&nbsp;</span>
2185
+ <span class="cline-any cline-neutral">&nbsp;</span>
2186
+ <span class="cline-any cline-neutral">&nbsp;</span>
2187
+ <span class="cline-any cline-no">&nbsp;</span>
2188
+ <span class="cline-any cline-neutral">&nbsp;</span>
2189
+ <span class="cline-any cline-neutral">&nbsp;</span>
2190
+ <span class="cline-any cline-neutral">&nbsp;</span>
2191
+ <span class="cline-any cline-neutral">&nbsp;</span>
2192
+ <span class="cline-any cline-neutral">&nbsp;</span>
2193
+ <span class="cline-any cline-neutral">&nbsp;</span>
2194
+ <span class="cline-any cline-neutral">&nbsp;</span>
2195
+ <span class="cline-any cline-neutral">&nbsp;</span>
2196
+ <span class="cline-any cline-neutral">&nbsp;</span>
2197
+ <span class="cline-any cline-no">&nbsp;</span>
2198
+ <span class="cline-any cline-no">&nbsp;</span>
2199
+ <span class="cline-any cline-neutral">&nbsp;</span>
2200
+ <span class="cline-any cline-no">&nbsp;</span>
2201
+ <span class="cline-any cline-neutral">&nbsp;</span>
2202
+ <span class="cline-any cline-no">&nbsp;</span>
2203
+ <span class="cline-any cline-no">&nbsp;</span>
2204
+ <span class="cline-any cline-neutral">&nbsp;</span>
2205
+ <span class="cline-any cline-neutral">&nbsp;</span>
2206
+ <span class="cline-any cline-neutral">&nbsp;</span>
2207
+ <span class="cline-any cline-neutral">&nbsp;</span>
2208
+ <span class="cline-any cline-neutral">&nbsp;</span>
2209
+ <span class="cline-any cline-neutral">&nbsp;</span>
2210
+ <span class="cline-any cline-neutral">&nbsp;</span>
2211
+ <span class="cline-any cline-neutral">&nbsp;</span>
2212
+ <span class="cline-any cline-yes">1x</span>
2213
+ <span class="cline-any cline-yes">1x</span>
2214
+ <span class="cline-any cline-neutral">&nbsp;</span>
2215
+ <span class="cline-any cline-neutral">&nbsp;</span>
2216
+ <span class="cline-any cline-neutral">&nbsp;</span>
2217
+ <span class="cline-any cline-neutral">&nbsp;</span>
2218
+ <span class="cline-any cline-neutral">&nbsp;</span>
2219
+ <span class="cline-any cline-no">&nbsp;</span>
2220
+ <span class="cline-any cline-neutral">&nbsp;</span>
2221
+ <span class="cline-any cline-yes">1x</span>
2222
+ <span class="cline-any cline-neutral">&nbsp;</span>
2223
+ <span class="cline-any cline-yes">1x</span>
2224
+ <span class="cline-any cline-yes">1x</span>
2225
+ <span class="cline-any cline-yes">1x</span>
2226
+ <span class="cline-any cline-yes">1x</span>
2227
+ <span class="cline-any cline-yes">1x</span>
2228
+ <span class="cline-any cline-yes">1x</span>
2229
+ <span class="cline-any cline-neutral">&nbsp;</span>
2230
+ <span class="cline-any cline-neutral">&nbsp;</span>
2231
+ <span class="cline-any cline-yes">1x</span>
2232
+ <span class="cline-any cline-neutral">&nbsp;</span>
2233
+ <span class="cline-any cline-neutral">&nbsp;</span>
2234
+ <span class="cline-any cline-neutral">&nbsp;</span>
2235
+ <span class="cline-any cline-neutral">&nbsp;</span>
2236
+ <span class="cline-any cline-yes">1x</span>
2237
+ <span class="cline-any cline-neutral">&nbsp;</span>
2238
+ <span class="cline-any cline-neutral">&nbsp;</span>
2239
+ <span class="cline-any cline-neutral">&nbsp;</span>
2240
+ <span class="cline-any cline-neutral">&nbsp;</span>
2241
+ <span class="cline-any cline-yes">1x</span>
2242
+ <span class="cline-any cline-neutral">&nbsp;</span>
2243
+ <span class="cline-any cline-yes">1x</span>
2244
+ <span class="cline-any cline-neutral">&nbsp;</span>
2245
+ <span class="cline-any cline-no">&nbsp;</span>
2246
+ <span class="cline-any cline-no">&nbsp;</span>
2247
+ <span class="cline-any cline-neutral">&nbsp;</span>
2248
+ <span class="cline-any cline-neutral">&nbsp;</span>
2249
+ <span class="cline-any cline-neutral">&nbsp;</span>
2250
+ <span class="cline-any cline-neutral">&nbsp;</span>
2251
+ <span class="cline-any cline-no">&nbsp;</span>
2252
+ <span class="cline-any cline-no">&nbsp;</span>
2253
+ <span class="cline-any cline-neutral">&nbsp;</span>
2254
+ <span class="cline-any cline-neutral">&nbsp;</span>
2255
+ <span class="cline-any cline-neutral">&nbsp;</span>
2256
+ <span class="cline-any cline-neutral">&nbsp;</span>
2257
+ <span class="cline-any cline-yes">1x</span>
2258
+ <span class="cline-any cline-yes">1x</span>
2259
+ <span class="cline-any cline-neutral">&nbsp;</span>
2260
+ <span class="cline-any cline-yes">5x</span>
2261
+ <span class="cline-any cline-yes">5x</span>
2262
+ <span class="cline-any cline-neutral">&nbsp;</span>
2263
+ <span class="cline-any cline-neutral">&nbsp;</span>
2264
+ <span class="cline-any cline-neutral">&nbsp;</span>
2265
+ <span class="cline-any cline-neutral">&nbsp;</span>
2266
+ <span class="cline-any cline-yes">5x</span>
2267
+ <span class="cline-any cline-neutral">&nbsp;</span>
2268
+ <span class="cline-any cline-yes">1x</span>
2269
+ <span class="cline-any cline-yes">1x</span>
2270
+ <span class="cline-any cline-no">&nbsp;</span>
2271
+ <span class="cline-any cline-neutral">&nbsp;</span>
2272
+ <span class="cline-any cline-yes">1x</span>
2273
+ <span class="cline-any cline-yes">1x</span>
2274
+ <span class="cline-any cline-neutral">&nbsp;</span>
2275
+ <span class="cline-any cline-neutral">&nbsp;</span>
2276
+ <span class="cline-any cline-no">&nbsp;</span>
2277
+ <span class="cline-any cline-no">&nbsp;</span>
2278
+ <span class="cline-any cline-neutral">&nbsp;</span>
2279
+ <span class="cline-any cline-neutral">&nbsp;</span>
2280
+ <span class="cline-any cline-no">&nbsp;</span>
2281
+ <span class="cline-any cline-no">&nbsp;</span>
2282
+ <span class="cline-any cline-no">&nbsp;</span>
2283
+ <span class="cline-any cline-no">&nbsp;</span>
2284
+ <span class="cline-any cline-no">&nbsp;</span>
2285
+ <span class="cline-any cline-neutral">&nbsp;</span>
2286
+ <span class="cline-any cline-neutral">&nbsp;</span>
2287
+ <span class="cline-any cline-yes">1x</span>
2288
+ <span class="cline-any cline-yes">1x</span>
2289
+ <span class="cline-any cline-neutral">&nbsp;</span>
2290
+ <span class="cline-any cline-neutral">&nbsp;</span>
2291
+ <span class="cline-any cline-neutral">&nbsp;</span>
2292
+ <span class="cline-any cline-no">&nbsp;</span>
2293
+ <span class="cline-any cline-no">&nbsp;</span>
2294
+ <span class="cline-any cline-neutral">&nbsp;</span>
2295
+ <span class="cline-any cline-no">&nbsp;</span>
2296
+ <span class="cline-any cline-no">&nbsp;</span>
2297
+ <span class="cline-any cline-no">&nbsp;</span>
2298
+ <span class="cline-any cline-no">&nbsp;</span>
2299
+ <span class="cline-any cline-neutral">&nbsp;</span>
2300
+ <span class="cline-any cline-no">&nbsp;</span>
2301
+ <span class="cline-any cline-no">&nbsp;</span>
2302
+ <span class="cline-any cline-no">&nbsp;</span>
2303
+ <span class="cline-any cline-neutral">&nbsp;</span>
2304
+ <span class="cline-any cline-neutral">&nbsp;</span>
2305
+ <span class="cline-any cline-no">&nbsp;</span>
2306
+ <span class="cline-any cline-neutral">&nbsp;</span>
2307
+ <span class="cline-any cline-no">&nbsp;</span>
2308
+ <span class="cline-any cline-neutral">&nbsp;</span>
2309
+ <span class="cline-any cline-no">&nbsp;</span>
2310
+ <span class="cline-any cline-neutral">&nbsp;</span>
2311
+ <span class="cline-any cline-no">&nbsp;</span>
2312
+ <span class="cline-any cline-neutral">&nbsp;</span>
2313
+ <span class="cline-any cline-no">&nbsp;</span>
2314
+ <span class="cline-any cline-neutral">&nbsp;</span>
2315
+ <span class="cline-any cline-neutral">&nbsp;</span>
2316
+ <span class="cline-any cline-no">&nbsp;</span>
2317
+ <span class="cline-any cline-no">&nbsp;</span>
2318
+ <span class="cline-any cline-no">&nbsp;</span>
2319
+ <span class="cline-any cline-neutral">&nbsp;</span>
2320
+ <span class="cline-any cline-neutral">&nbsp;</span>
2321
+ <span class="cline-any cline-no">&nbsp;</span>
2322
+ <span class="cline-any cline-neutral">&nbsp;</span>
2323
+ <span class="cline-any cline-neutral">&nbsp;</span>
2324
+ <span class="cline-any cline-neutral">&nbsp;</span>
2325
+ <span class="cline-any cline-neutral">&nbsp;</span>
2326
+ <span class="cline-any cline-neutral">&nbsp;</span>
2327
+ <span class="cline-any cline-yes">13x</span>
2328
+ <span class="cline-any cline-yes">13x</span>
2329
+ <span class="cline-any cline-neutral">&nbsp;</span>
2330
+ <span class="cline-any cline-yes">13x</span>
2331
+ <span class="cline-any cline-yes">13x</span>
2332
+ <span class="cline-any cline-yes">13x</span>
2333
+ <span class="cline-any cline-yes">13x</span>
2334
+ <span class="cline-any cline-yes">13x</span>
2335
+ <span class="cline-any cline-yes">9x</span>
2336
+ <span class="cline-any cline-yes">9x</span>
2337
+ <span class="cline-any cline-yes">9x</span>
2338
+ <span class="cline-any cline-neutral">&nbsp;</span>
2339
+ <span class="cline-any cline-neutral">&nbsp;</span>
2340
+ <span class="cline-any cline-neutral">&nbsp;</span>
2341
+ <span class="cline-any cline-yes">13x</span>
2342
+ <span class="cline-any cline-neutral">&nbsp;</span>
2343
+ <span class="cline-any cline-neutral">&nbsp;</span>
2344
+ <span class="cline-any cline-neutral">&nbsp;</span>
2345
+ <span class="cline-any cline-neutral">&nbsp;</span>
2346
+ <span class="cline-any cline-neutral">&nbsp;</span>
2347
+ <span class="cline-any cline-yes">13x</span>
2348
+ <span class="cline-any cline-yes">13x</span>
2349
+ <span class="cline-any cline-neutral">&nbsp;</span>
2350
+ <span class="cline-any cline-yes">13x</span>
2351
+ <span class="cline-any cline-yes">13x</span>
2352
+ <span class="cline-any cline-yes">13x</span>
2353
+ <span class="cline-any cline-yes">13x</span>
2354
+ <span class="cline-any cline-yes">1x</span>
2355
+ <span class="cline-any cline-neutral">&nbsp;</span>
2356
+ <span class="cline-any cline-neutral">&nbsp;</span>
2357
+ <span class="cline-any cline-yes">13x</span>
2358
+ <span class="cline-any cline-neutral">&nbsp;</span>
2359
+ <span class="cline-any cline-neutral">&nbsp;</span>
2360
+ <span class="cline-any cline-neutral">&nbsp;</span>
2361
+ <span class="cline-any cline-yes">13x</span>
2362
+ <span class="cline-any cline-yes">13x</span>
2363
+ <span class="cline-any cline-yes">13x</span>
2364
+ <span class="cline-any cline-yes">13x</span>
2365
+ <span class="cline-any cline-neutral">&nbsp;</span>
2366
+ <span class="cline-any cline-yes">13x</span>
2367
+ <span class="cline-any cline-neutral">&nbsp;</span>
2368
+ <span class="cline-any cline-yes">13x</span>
2369
+ <span class="cline-any cline-yes">14x</span>
2370
+ <span class="cline-any cline-neutral">&nbsp;</span>
2371
+ <span class="cline-any cline-neutral">&nbsp;</span>
2372
+ <span class="cline-any cline-yes">13x</span>
2373
+ <span class="cline-any cline-yes">13x</span>
2374
+ <span class="cline-any cline-yes">13x</span>
2375
+ <span class="cline-any cline-neutral">&nbsp;</span>
2376
+ <span class="cline-any cline-yes">13x</span>
2377
+ <span class="cline-any cline-yes">13x</span>
2378
+ <span class="cline-any cline-yes">13x</span>
2379
+ <span class="cline-any cline-yes">1x</span>
2380
+ <span class="cline-any cline-yes">1x</span>
2381
+ <span class="cline-any cline-yes">1x</span>
2382
+ <span class="cline-any cline-neutral">&nbsp;</span>
2383
+ <span class="cline-any cline-yes">13x</span>
2384
+ <span class="cline-any cline-yes">4x</span>
2385
+ <span class="cline-any cline-neutral">&nbsp;</span>
2386
+ <span class="cline-any cline-neutral">&nbsp;</span>
2387
+ <span class="cline-any cline-neutral">&nbsp;</span>
2388
+ <span class="cline-any cline-yes">13x</span>
2389
+ <span class="cline-any cline-yes">9x</span>
2390
+ <span class="cline-any cline-yes">9x</span>
2391
+ <span class="cline-any cline-yes">9x</span>
2392
+ <span class="cline-any cline-yes">9x</span>
2393
+ <span class="cline-any cline-neutral">&nbsp;</span>
2394
+ <span class="cline-any cline-neutral">&nbsp;</span>
2395
+ <span class="cline-any cline-yes">9x</span>
2396
+ <span class="cline-any cline-neutral">&nbsp;</span>
2397
+ <span class="cline-any cline-neutral">&nbsp;</span>
2398
+ <span class="cline-any cline-neutral">&nbsp;</span>
2399
+ <span class="cline-any cline-neutral">&nbsp;</span>
2400
+ <span class="cline-any cline-yes">9x</span>
2401
+ <span class="cline-any cline-no">&nbsp;</span>
2402
+ <span class="cline-any cline-neutral">&nbsp;</span>
2403
+ <span class="cline-any cline-no">&nbsp;</span>
2404
+ <span class="cline-any cline-no">&nbsp;</span>
2405
+ <span class="cline-any cline-neutral">&nbsp;</span>
2406
+ <span class="cline-any cline-neutral">&nbsp;</span>
2407
+ <span class="cline-any cline-neutral">&nbsp;</span>
2408
+ <span class="cline-any cline-neutral">&nbsp;</span>
2409
+ <span class="cline-any cline-no">&nbsp;</span>
2410
+ <span class="cline-any cline-no">&nbsp;</span>
2411
+ <span class="cline-any cline-neutral">&nbsp;</span>
2412
+ <span class="cline-any cline-no">&nbsp;</span>
2413
+ <span class="cline-any cline-neutral">&nbsp;</span>
2414
+ <span class="cline-any cline-yes">9x</span>
2415
+ <span class="cline-any cline-neutral">&nbsp;</span>
2416
+ <span class="cline-any cline-neutral">&nbsp;</span>
2417
+ <span class="cline-any cline-neutral">&nbsp;</span>
2418
+ <span class="cline-any cline-neutral">&nbsp;</span>
2419
+ <span class="cline-any cline-neutral">&nbsp;</span>
2420
+ <span class="cline-any cline-yes">9x</span>
2421
+ <span class="cline-any cline-yes">2x</span>
2422
+ <span class="cline-any cline-yes">2x</span>
2423
+ <span class="cline-any cline-yes">2x</span>
2424
+ <span class="cline-any cline-neutral">&nbsp;</span>
2425
+ <span class="cline-any cline-neutral">&nbsp;</span>
2426
+ <span class="cline-any cline-yes">1x</span>
2427
+ <span class="cline-any cline-yes">1x</span>
2428
+ <span class="cline-any cline-yes">1x</span>
2429
+ <span class="cline-any cline-neutral">&nbsp;</span>
2430
+ <span class="cline-any cline-yes">1x</span>
2431
+ <span class="cline-any cline-yes">1x</span>
2432
+ <span class="cline-any cline-neutral">&nbsp;</span>
2433
+ <span class="cline-any cline-neutral">&nbsp;</span>
2434
+ <span class="cline-any cline-neutral">&nbsp;</span>
2435
+ <span class="cline-any cline-neutral">&nbsp;</span>
2436
+ <span class="cline-any cline-yes">1x</span>
2437
+ <span class="cline-any cline-neutral">&nbsp;</span>
2438
+ <span class="cline-any cline-yes">1x</span>
2439
+ <span class="cline-any cline-yes">1x</span>
2440
+ <span class="cline-any cline-yes">1x</span>
2441
+ <span class="cline-any cline-neutral">&nbsp;</span>
2442
+ <span class="cline-any cline-neutral">&nbsp;</span>
2443
+ <span class="cline-any cline-neutral">&nbsp;</span>
2444
+ <span class="cline-any cline-neutral">&nbsp;</span>
2445
+ <span class="cline-any cline-yes">1x</span>
2446
+ <span class="cline-any cline-yes">1x</span>
2447
+ <span class="cline-any cline-neutral">&nbsp;</span>
2448
+ <span class="cline-any cline-neutral">&nbsp;</span>
2449
+ <span class="cline-any cline-yes">1x</span>
2450
+ <span class="cline-any cline-yes">1x</span>
2451
+ <span class="cline-any cline-neutral">&nbsp;</span>
2452
+ <span class="cline-any cline-neutral">&nbsp;</span>
2453
+ <span class="cline-any cline-yes">1x</span>
2454
+ <span class="cline-any cline-yes">1x</span>
2455
+ <span class="cline-any cline-yes">1x</span>
2456
+ <span class="cline-any cline-yes">1x</span>
2457
+ <span class="cline-any cline-yes">1x</span>
2458
+ <span class="cline-any cline-neutral">&nbsp;</span>
2459
+ <span class="cline-any cline-neutral">&nbsp;</span>
2460
+ <span class="cline-any cline-no">&nbsp;</span>
2461
+ <span class="cline-any cline-no">&nbsp;</span>
2462
+ <span class="cline-any cline-neutral">&nbsp;</span>
2463
+ <span class="cline-any cline-no">&nbsp;</span>
2464
+ <span class="cline-any cline-neutral">&nbsp;</span>
2465
+ <span class="cline-any cline-no">&nbsp;</span>
2466
+ <span class="cline-any cline-no">&nbsp;</span>
2467
+ <span class="cline-any cline-neutral">&nbsp;</span>
2468
+ <span class="cline-any cline-neutral">&nbsp;</span>
2469
+ <span class="cline-any cline-neutral">&nbsp;</span>
2470
+ <span class="cline-any cline-no">&nbsp;</span>
2471
+ <span class="cline-any cline-neutral">&nbsp;</span>
2472
+ <span class="cline-any cline-neutral">&nbsp;</span>
2473
+ <span class="cline-any cline-neutral">&nbsp;</span>
2474
+ <span class="cline-any cline-neutral">&nbsp;</span>
2475
+ <span class="cline-any cline-neutral">&nbsp;</span>
2476
+ <span class="cline-any cline-no">&nbsp;</span>
2477
+ <span class="cline-any cline-neutral">&nbsp;</span>
2478
+ <span class="cline-any cline-neutral">&nbsp;</span>
2479
+ <span class="cline-any cline-no">&nbsp;</span>
2480
+ <span class="cline-any cline-no">&nbsp;</span>
2481
+ <span class="cline-any cline-no">&nbsp;</span>
2482
+ <span class="cline-any cline-no">&nbsp;</span>
2483
+ <span class="cline-any cline-no">&nbsp;</span>
2484
+ <span class="cline-any cline-neutral">&nbsp;</span>
2485
+ <span class="cline-any cline-neutral">&nbsp;</span>
2486
+ <span class="cline-any cline-no">&nbsp;</span>
2487
+ <span class="cline-any cline-no">&nbsp;</span>
2488
+ <span class="cline-any cline-neutral">&nbsp;</span>
2489
+ <span class="cline-any cline-neutral">&nbsp;</span>
2490
+ <span class="cline-any cline-neutral">&nbsp;</span>
2491
+ <span class="cline-any cline-no">&nbsp;</span>
2492
+ <span class="cline-any cline-neutral">&nbsp;</span>
2493
+ <span class="cline-any cline-neutral">&nbsp;</span>
2494
+ <span class="cline-any cline-neutral">&nbsp;</span>
2495
+ <span class="cline-any cline-neutral">&nbsp;</span>
2496
+ <span class="cline-any cline-no">&nbsp;</span>
2497
+ <span class="cline-any cline-no">&nbsp;</span>
2498
+ <span class="cline-any cline-no">&nbsp;</span>
2499
+ <span class="cline-any cline-no">&nbsp;</span>
2500
+ <span class="cline-any cline-neutral">&nbsp;</span>
2501
+ <span class="cline-any cline-neutral">&nbsp;</span>
2502
+ <span class="cline-any cline-yes">2x</span>
2503
+ <span class="cline-any cline-yes">2x</span>
2504
+ <span class="cline-any cline-yes">1x</span>
2505
+ <span class="cline-any cline-no">&nbsp;</span>
2506
+ <span class="cline-any cline-neutral">&nbsp;</span>
2507
+ <span class="cline-any cline-yes">1x</span>
2508
+ <span class="cline-any cline-neutral">&nbsp;</span>
2509
+ <span class="cline-any cline-neutral">&nbsp;</span>
2510
+ <span class="cline-any cline-neutral">&nbsp;</span>
2511
+ <span class="cline-any cline-yes">7x</span>
2512
+ <span class="cline-any cline-neutral">&nbsp;</span>
2513
+ <span class="cline-any cline-yes">7x</span>
2514
+ <span class="cline-any cline-yes">7x</span>
2515
+ <span class="cline-any cline-neutral">&nbsp;</span>
2516
+ <span class="cline-any cline-yes">14x</span>
2517
+ <span class="cline-any cline-yes">14x</span>
2518
+ <span class="cline-any cline-neutral">&nbsp;</span>
2519
+ <span class="cline-any cline-neutral">&nbsp;</span>
2520
+ <span class="cline-any cline-neutral">&nbsp;</span>
2521
+ <span class="cline-any cline-neutral">&nbsp;</span>
2522
+ <span class="cline-any cline-yes">14x</span>
2523
+ <span class="cline-any cline-yes">10x</span>
2524
+ <span class="cline-any cline-neutral">&nbsp;</span>
2525
+ <span class="cline-any cline-yes">7x</span>
2526
+ <span class="cline-any cline-yes">7x</span>
2527
+ <span class="cline-any cline-no">&nbsp;</span>
2528
+ <span class="cline-any cline-neutral">&nbsp;</span>
2529
+ <span class="cline-any cline-neutral">&nbsp;</span>
2530
+ <span class="cline-any cline-yes">7x</span>
2531
+ <span class="cline-any cline-neutral">&nbsp;</span>
2532
+ <span class="cline-any cline-yes">9x</span>
2533
+ <span class="cline-any cline-neutral">&nbsp;</span>
2534
+ <span class="cline-any cline-yes">4x</span>
2535
+ <span class="cline-any cline-neutral">&nbsp;</span>
2536
+ <span class="cline-any cline-yes">1x</span>
2537
+ <span class="cline-any cline-yes">3x</span>
2538
+ <span class="cline-any cline-no">&nbsp;</span>
2539
+ <span class="cline-any cline-neutral">&nbsp;</span>
2540
+ <span class="cline-any cline-no">&nbsp;</span>
2541
+ <span class="cline-any cline-no">&nbsp;</span>
2542
+ <span class="cline-any cline-neutral">&nbsp;</span>
2543
+ <span class="cline-any cline-no">&nbsp;</span>
2544
+ <span class="cline-any cline-no">&nbsp;</span>
2545
+ <span class="cline-any cline-neutral">&nbsp;</span>
2546
+ <span class="cline-any cline-no">&nbsp;</span>
2547
+ <span class="cline-any cline-no">&nbsp;</span>
2548
+ <span class="cline-any cline-neutral">&nbsp;</span>
2549
+ <span class="cline-any cline-no">&nbsp;</span>
2550
+ <span class="cline-any cline-no">&nbsp;</span>
2551
+ <span class="cline-any cline-neutral">&nbsp;</span>
2552
+ <span class="cline-any cline-yes">3x</span>
2553
+ <span class="cline-any cline-neutral">&nbsp;</span>
2554
+ <span class="cline-any cline-neutral">&nbsp;</span>
2555
+ <span class="cline-any cline-neutral">&nbsp;</span>
2556
+ <span class="cline-any cline-neutral">&nbsp;</span>
2557
+ <span class="cline-any cline-neutral">&nbsp;</span>
2558
+ <span class="cline-any cline-neutral">&nbsp;</span>
2559
+ <span class="cline-any cline-yes">2x</span>
2560
+ <span class="cline-any cline-yes">1x</span>
2561
+ <span class="cline-any cline-no">&nbsp;</span>
2562
+ <span class="cline-any cline-yes">1x</span>
2563
+ <span class="cline-any cline-no">&nbsp;</span>
2564
+ <span class="cline-any cline-neutral">&nbsp;</span>
2565
+ <span class="cline-any cline-yes">1x</span>
2566
+ <span class="cline-any cline-neutral">&nbsp;</span>
2567
+ <span class="cline-any cline-yes">4x</span>
2568
+ <span class="cline-any cline-yes">1x</span>
2569
+ <span class="cline-any cline-yes">1x</span>
2570
+ <span class="cline-any cline-no">&nbsp;</span>
2571
+ <span class="cline-any cline-neutral">&nbsp;</span>
2572
+ <span class="cline-any cline-no">&nbsp;</span>
2573
+ <span class="cline-any cline-no">&nbsp;</span>
2574
+ <span class="cline-any cline-neutral">&nbsp;</span>
2575
+ <span class="cline-any cline-yes">1x</span>
2576
+ <span class="cline-any cline-neutral">&nbsp;</span>
2577
+ <span class="cline-any cline-yes">3x</span>
2578
+ <span class="cline-any cline-yes">3x</span>
2579
+ <span class="cline-any cline-yes">3x</span>
2580
+ <span class="cline-any cline-no">&nbsp;</span>
2581
+ <span class="cline-any cline-neutral">&nbsp;</span>
2582
+ <span class="cline-any cline-yes">3x</span>
2583
+ <span class="cline-any cline-yes">2x</span>
2584
+ <span class="cline-any cline-yes">3x</span>
2585
+ <span class="cline-any cline-yes">3x</span>
2586
+ <span class="cline-any cline-neutral">&nbsp;</span>
2587
+ <span class="cline-any cline-yes">2x</span>
2588
+ <span class="cline-any cline-no">&nbsp;</span>
2589
+ <span class="cline-any cline-no">&nbsp;</span>
2590
+ <span class="cline-any cline-no">&nbsp;</span>
2591
+ <span class="cline-any cline-no">&nbsp;</span>
2592
+ <span class="cline-any cline-neutral">&nbsp;</span>
2593
+ <span class="cline-any cline-neutral">&nbsp;</span>
2594
+ <span class="cline-any cline-neutral">&nbsp;</span>
2595
+ <span class="cline-any cline-yes">3x</span>
2596
+ <span class="cline-any cline-no">&nbsp;</span>
2597
+ <span class="cline-any cline-neutral">&nbsp;</span>
2598
+ <span class="cline-any cline-yes">3x</span>
2599
+ <span class="cline-any cline-neutral">&nbsp;</span>
2600
+ <span class="cline-any cline-neutral">&nbsp;</span>
2601
+ <span class="cline-any cline-neutral">&nbsp;</span>
2602
+ <span class="cline-any cline-neutral">&nbsp;</span>
2603
+ <span class="cline-any cline-no">&nbsp;</span>
2604
+ <span class="cline-any cline-no">&nbsp;</span>
2605
+ <span class="cline-any cline-no">&nbsp;</span>
2606
+ <span class="cline-any cline-neutral">&nbsp;</span>
2607
+ <span class="cline-any cline-neutral">&nbsp;</span>
2608
+ <span class="cline-any cline-neutral">&nbsp;</span>
2609
+ <span class="cline-any cline-neutral">&nbsp;</span>
2610
+ <span class="cline-any cline-neutral">&nbsp;</span>
2611
+ <span class="cline-any cline-neutral">&nbsp;</span>
2612
+ <span class="cline-any cline-no">&nbsp;</span>
2613
+ <span class="cline-any cline-no">&nbsp;</span>
2614
+ <span class="cline-any cline-no">&nbsp;</span>
2615
+ <span class="cline-any cline-no">&nbsp;</span>
2616
+ <span class="cline-any cline-no">&nbsp;</span>
2617
+ <span class="cline-any cline-neutral">&nbsp;</span>
2618
+ <span class="cline-any cline-neutral">&nbsp;</span>
2619
+ <span class="cline-any cline-neutral">&nbsp;</span>
2620
+ <span class="cline-any cline-neutral">&nbsp;</span>
2621
+ <span class="cline-any cline-neutral">&nbsp;</span>
2622
+ <span class="cline-any cline-neutral">&nbsp;</span>
2623
+ <span class="cline-any cline-neutral">&nbsp;</span>
2624
+ <span class="cline-any cline-no">&nbsp;</span>
2625
+ <span class="cline-any cline-no">&nbsp;</span>
2626
+ <span class="cline-any cline-no">&nbsp;</span>
2627
+ <span class="cline-any cline-no">&nbsp;</span>
2628
+ <span class="cline-any cline-no">&nbsp;</span>
2629
+ <span class="cline-any cline-neutral">&nbsp;</span>
2630
+ <span class="cline-any cline-no">&nbsp;</span>
2631
+ <span class="cline-any cline-neutral">&nbsp;</span>
2632
+ <span class="cline-any cline-no">&nbsp;</span>
2633
+ <span class="cline-any cline-neutral">&nbsp;</span>
2634
+ <span class="cline-any cline-neutral">&nbsp;</span>
2635
+ <span class="cline-any cline-neutral">&nbsp;</span>
2636
+ <span class="cline-any cline-neutral">&nbsp;</span>
2637
+ <span class="cline-any cline-neutral">&nbsp;</span>
2638
+ <span class="cline-any cline-neutral">&nbsp;</span>
2639
+ <span class="cline-any cline-neutral">&nbsp;</span>
2640
+ <span class="cline-any cline-neutral">&nbsp;</span>
2641
+ <span class="cline-any cline-no">&nbsp;</span>
2642
+ <span class="cline-any cline-no">&nbsp;</span>
2643
+ <span class="cline-any cline-neutral">&nbsp;</span>
2644
+ <span class="cline-any cline-no">&nbsp;</span>
2645
+ <span class="cline-any cline-neutral">&nbsp;</span>
2646
+ <span class="cline-any cline-no">&nbsp;</span>
2647
+ <span class="cline-any cline-no">&nbsp;</span>
2648
+ <span class="cline-any cline-neutral">&nbsp;</span>
2649
+ <span class="cline-any cline-neutral">&nbsp;</span>
2650
+ <span class="cline-any cline-neutral">&nbsp;</span>
2651
+ <span class="cline-any cline-neutral">&nbsp;</span>
2652
+ <span class="cline-any cline-neutral">&nbsp;</span>
2653
+ <span class="cline-any cline-neutral">&nbsp;</span>
2654
+ <span class="cline-any cline-neutral">&nbsp;</span>
2655
+ <span class="cline-any cline-neutral">&nbsp;</span>
2656
+ <span class="cline-any cline-neutral">&nbsp;</span>
2657
+ <span class="cline-any cline-yes">13x</span>
2658
+ <span class="cline-any cline-neutral">&nbsp;</span>
2659
+ <span class="cline-any cline-yes">13x</span>
2660
+ <span class="cline-any cline-neutral">&nbsp;</span>
2661
+ <span class="cline-any cline-yes">13x</span>
2662
+ <span class="cline-any cline-no">&nbsp;</span>
2663
+ <span class="cline-any cline-neutral">&nbsp;</span>
2664
+ <span class="cline-any cline-yes">13x</span>
2665
+ <span class="cline-any cline-yes">13x</span>
2666
+ <span class="cline-any cline-neutral">&nbsp;</span>
2667
+ <span class="cline-any cline-neutral">&nbsp;</span>
2668
+ <span class="cline-any cline-neutral">&nbsp;</span>
2669
+ <span class="cline-any cline-no">&nbsp;</span>
2670
+ <span class="cline-any cline-neutral">&nbsp;</span>
2671
+ <span class="cline-any cline-neutral">&nbsp;</span>
2672
+ <span class="cline-any cline-neutral">&nbsp;</span>
2673
+ <span class="cline-any cline-yes">82x</span>
2674
+ <span class="cline-any cline-neutral">&nbsp;</span>
2675
+ <span class="cline-any cline-yes">82x</span>
2676
+ <span class="cline-any cline-neutral">&nbsp;</span>
2677
+ <span class="cline-any cline-neutral">&nbsp;</span>
2678
+ <span class="cline-any cline-neutral">&nbsp;</span>
2679
+ <span class="cline-any cline-yes">50x</span>
2680
+ <span class="cline-any cline-neutral">&nbsp;</span>
2681
+ <span class="cline-any cline-neutral">&nbsp;</span>
2682
+ <span class="cline-any cline-neutral">&nbsp;</span>
2683
+ <span class="cline-any cline-yes">1x</span>
2684
+ <span class="cline-any cline-yes">41x</span>
2685
+ <span class="cline-any cline-neutral">&nbsp;</span>
2686
+ <span class="cline-any cline-neutral">&nbsp;</span>
2687
+ <span class="cline-any cline-neutral">&nbsp;</span>
2688
+ <span class="cline-any cline-neutral">&nbsp;</span>
2689
+ <span class="cline-any cline-neutral">&nbsp;</span>
2690
+ <span class="cline-any cline-neutral">&nbsp;</span>
2691
+ <span class="cline-any cline-neutral">&nbsp;</span>
2692
+ <span class="cline-any cline-neutral">&nbsp;</span>
2693
+ <span class="cline-any cline-neutral">&nbsp;</span>
2694
+ <span class="cline-any cline-neutral">&nbsp;</span>
2695
+ <span class="cline-any cline-neutral">&nbsp;</span>
2696
+ <span class="cline-any cline-neutral">&nbsp;</span>
2697
+ <span class="cline-any cline-neutral">&nbsp;</span>
2698
+ <span class="cline-any cline-neutral">&nbsp;</span>
2699
+ <span class="cline-any cline-yes">41x</span>
2700
+ <span class="cline-any cline-neutral">&nbsp;</span>
2701
+ <span class="cline-any cline-neutral">&nbsp;</span>
2702
+ <span class="cline-any cline-yes">41x</span>
2703
+ <span class="cline-any cline-yes">41x</span>
2704
+ <span class="cline-any cline-neutral">&nbsp;</span>
2705
+ <span class="cline-any cline-no">&nbsp;</span>
2706
+ <span class="cline-any cline-no">&nbsp;</span>
2707
+ <span class="cline-any cline-no">&nbsp;</span>
2708
+ <span class="cline-any cline-no">&nbsp;</span>
2709
+ <span class="cline-any cline-no">&nbsp;</span>
2710
+ <span class="cline-any cline-neutral">&nbsp;</span>
2711
+ <span class="cline-any cline-neutral">&nbsp;</span>
2712
+ <span class="cline-any cline-no">&nbsp;</span>
2713
+ <span class="cline-any cline-neutral">&nbsp;</span>
2714
+ <span class="cline-any cline-neutral">&nbsp;</span>
2715
+ <span class="cline-any cline-neutral">&nbsp;</span>
2716
+ <span class="cline-any cline-yes">41x</span>
2717
+ <span class="cline-any cline-yes">41x</span>
2718
+ <span class="cline-any cline-yes">41x</span>
2719
+ <span class="cline-any cline-neutral">&nbsp;</span>
2720
+ <span class="cline-any cline-neutral">&nbsp;</span>
2721
+ <span class="cline-any cline-neutral">&nbsp;</span>
2722
+ <span class="cline-any cline-yes">18x</span>
2723
+ <span class="cline-any cline-yes">18x</span>
2724
+ <span class="cline-any cline-neutral">&nbsp;</span>
2725
+ <span class="cline-any cline-yes">6x</span>
2726
+ <span class="cline-any cline-yes">6x</span>
2727
+ <span class="cline-any cline-neutral">&nbsp;</span>
2728
+ <span class="cline-any cline-yes">18x</span>
2729
+ <span class="cline-any cline-yes">23x</span>
2730
+ <span class="cline-any cline-yes">23x</span>
2731
+ <span class="cline-any cline-neutral">&nbsp;</span>
2732
+ <span class="cline-any cline-neutral">&nbsp;</span>
2733
+ <span class="cline-any cline-neutral">&nbsp;</span>
2734
+ <span class="cline-any cline-neutral">&nbsp;</span>
2735
+ <span class="cline-any cline-yes">1x</span>
2736
+ <span class="cline-any cline-neutral">&nbsp;</span>
2737
+ <span class="cline-any cline-yes">22x</span>
2738
+ <span class="cline-any cline-yes">22x</span>
2739
+ <span class="cline-any cline-neutral">&nbsp;</span>
2740
+ <span class="cline-any cline-yes">40x</span>
2741
+ <span class="cline-any cline-yes">40x</span>
2742
+ <span class="cline-any cline-neutral">&nbsp;</span>
2743
+ <span class="cline-any cline-yes">22x</span>
2744
+ <span class="cline-any cline-neutral">&nbsp;</span>
2745
+ <span class="cline-any cline-no">&nbsp;</span>
2746
+ <span class="cline-any cline-neutral">&nbsp;</span>
2747
+ <span class="cline-any cline-neutral">&nbsp;</span>
2748
+ <span class="cline-any cline-neutral">&nbsp;</span>
2749
+ <span class="cline-any cline-neutral">&nbsp;</span>
2750
+ <span class="cline-any cline-no">&nbsp;</span>
2751
+ <span class="cline-any cline-neutral">&nbsp;</span>
2752
+ <span class="cline-any cline-no">&nbsp;</span>
2753
+ <span class="cline-any cline-no">&nbsp;</span>
2754
+ <span class="cline-any cline-no">&nbsp;</span>
2755
+ <span class="cline-any cline-neutral">&nbsp;</span>
2756
+ <span class="cline-any cline-no">&nbsp;</span>
2757
+ <span class="cline-any cline-no">&nbsp;</span>
2758
+ <span class="cline-any cline-neutral">&nbsp;</span>
2759
+ <span class="cline-any cline-no">&nbsp;</span>
2760
+ <span class="cline-any cline-neutral">&nbsp;</span>
2761
+ <span class="cline-any cline-no">&nbsp;</span>
2762
+ <span class="cline-any cline-neutral">&nbsp;</span>
2763
+ <span class="cline-any cline-neutral">&nbsp;</span>
2764
+ <span class="cline-any cline-neutral">&nbsp;</span>
2765
+ <span class="cline-any cline-neutral">&nbsp;</span>
2766
+ <span class="cline-any cline-neutral">&nbsp;</span>
2767
+ <span class="cline-any cline-yes">41x</span>
2768
+ <span class="cline-any cline-yes">41x</span>
2769
+ <span class="cline-any cline-yes">41x</span>
2770
+ <span class="cline-any cline-neutral">&nbsp;</span>
2771
+ <span class="cline-any cline-neutral">&nbsp;</span>
2772
+ <span class="cline-any cline-neutral">&nbsp;</span>
2773
+ <span class="cline-any cline-neutral">&nbsp;</span>
2774
+ <span class="cline-any cline-neutral">&nbsp;</span>
2775
+ <span class="cline-any cline-neutral">&nbsp;</span>
2776
+ <span class="cline-any cline-neutral">&nbsp;</span>
2777
+ <span class="cline-any cline-neutral">&nbsp;</span>
2778
+ <span class="cline-any cline-neutral">&nbsp;</span>
2779
+ <span class="cline-any cline-neutral">&nbsp;</span>
2780
+ <span class="cline-any cline-neutral">&nbsp;</span>
2781
+ <span class="cline-any cline-neutral">&nbsp;</span>
2782
+ <span class="cline-any cline-neutral">&nbsp;</span>
2783
+ <span class="cline-any cline-neutral">&nbsp;</span>
2784
+ <span class="cline-any cline-yes">31x</span>
2785
+ <span class="cline-any cline-neutral">&nbsp;</span>
2786
+ <span class="cline-any cline-neutral">&nbsp;</span>
2787
+ <span class="cline-any cline-neutral">&nbsp;</span>
2788
+ <span class="cline-any cline-yes">41x</span>
2789
+ <span class="cline-any cline-yes">10x</span>
2790
+ <span class="cline-any cline-neutral">&nbsp;</span>
2791
+ <span class="cline-any cline-yes">10x</span>
2792
+ <span class="cline-any cline-yes">8x</span>
2793
+ <span class="cline-any cline-neutral">&nbsp;</span>
2794
+ <span class="cline-any cline-neutral">&nbsp;</span>
2795
+ <span class="cline-any cline-yes">10x</span>
2796
+ <span class="cline-any cline-yes">2x</span>
2797
+ <span class="cline-any cline-neutral">&nbsp;</span>
2798
+ <span class="cline-any cline-neutral">&nbsp;</span>
2799
+ <span class="cline-any cline-yes">10x</span>
2800
+ <span class="cline-any cline-yes">10x</span>
2801
+ <span class="cline-any cline-neutral">&nbsp;</span>
2802
+ <span class="cline-any cline-yes">10x</span>
2803
+ <span class="cline-any cline-yes">2x</span>
2804
+ <span class="cline-any cline-yes">2x</span>
2805
+ <span class="cline-any cline-yes">2x</span>
2806
+ <span class="cline-any cline-yes">2x</span>
2807
+ <span class="cline-any cline-yes">2x</span>
2808
+ <span class="cline-any cline-neutral">&nbsp;</span>
2809
+ <span class="cline-any cline-neutral">&nbsp;</span>
2810
+ <span class="cline-any cline-yes">10x</span>
2811
+ <span class="cline-any cline-yes">8x</span>
2812
+ <span class="cline-any cline-neutral">&nbsp;</span>
2813
+ <span class="cline-any cline-neutral">&nbsp;</span>
2814
+ <span class="cline-any cline-yes">10x</span>
2815
+ <span class="cline-any cline-yes">10x</span>
2816
+ <span class="cline-any cline-yes">10x</span>
2817
+ <span class="cline-any cline-neutral">&nbsp;</span>
2818
+ <span class="cline-any cline-yes">31x</span>
2819
+ <span class="cline-any cline-yes">31x</span>
2820
+ <span class="cline-any cline-yes">31x</span>
2821
+ <span class="cline-any cline-neutral">&nbsp;</span>
2822
+ <span class="cline-any cline-neutral">&nbsp;</span>
2823
+ <span class="cline-any cline-yes">41x</span>
2824
+ <span class="cline-any cline-neutral">&nbsp;</span>
2825
+ <span class="cline-any cline-yes">41x</span>
2826
+ <span class="cline-any cline-neutral">&nbsp;</span>
2827
+ <span class="cline-any cline-neutral">&nbsp;</span>
2828
+ <span class="cline-any cline-neutral">&nbsp;</span>
2829
+ <span class="cline-any cline-neutral">&nbsp;</span>
2830
+ <span class="cline-any cline-neutral">&nbsp;</span>
2831
+ <span class="cline-any cline-neutral">&nbsp;</span>
2832
+ <span class="cline-any cline-yes">48x</span>
2833
+ <span class="cline-any cline-no">&nbsp;</span>
2834
+ <span class="cline-any cline-yes">48x</span>
2835
+ <span class="cline-any cline-neutral">&nbsp;</span>
2836
+ <span class="cline-any cline-yes">6x</span>
2837
+ <span class="cline-any cline-neutral">&nbsp;</span>
2838
+ <span class="cline-any cline-neutral">&nbsp;</span>
2839
+ <span class="cline-any cline-yes">42x</span>
2840
+ <span class="cline-any cline-yes">42x</span>
2841
+ <span class="cline-any cline-neutral">&nbsp;</span>
2842
+ <span class="cline-any cline-yes">11x</span>
2843
+ <span class="cline-any cline-no">&nbsp;</span>
2844
+ <span class="cline-any cline-neutral">&nbsp;</span>
2845
+ <span class="cline-any cline-neutral">&nbsp;</span>
2846
+ <span class="cline-any cline-neutral">&nbsp;</span>
2847
+ <span class="cline-any cline-neutral">&nbsp;</span>
2848
+ <span class="cline-any cline-yes">11x</span>
2849
+ <span class="cline-any cline-yes">11x</span>
2850
+ <span class="cline-any cline-neutral">&nbsp;</span>
2851
+ <span class="cline-any cline-neutral">&nbsp;</span>
2852
+ <span class="cline-any cline-neutral">&nbsp;</span>
2853
+ <span class="cline-any cline-neutral">&nbsp;</span>
2854
+ <span class="cline-any cline-neutral">&nbsp;</span>
2855
+ <span class="cline-any cline-neutral">&nbsp;</span>
2856
+ <span class="cline-any cline-yes">48x</span>
2857
+ <span class="cline-any cline-neutral">&nbsp;</span>
2858
+ <span class="cline-any cline-neutral">&nbsp;</span>
2859
+ <span class="cline-any cline-neutral">&nbsp;</span>
2860
+ <span class="cline-any cline-neutral">&nbsp;</span>
2861
+ <span class="cline-any cline-yes">9x</span>
2862
+ <span class="cline-any cline-yes">2x</span>
2863
+ <span class="cline-any cline-yes">2x</span>
2864
+ <span class="cline-any cline-yes">10x</span>
2865
+ <span class="cline-any cline-neutral">&nbsp;</span>
2866
+ <span class="cline-any cline-yes">2x</span>
2867
+ <span class="cline-any cline-neutral">&nbsp;</span>
2868
+ <span class="cline-any cline-neutral">&nbsp;</span>
2869
+ <span class="cline-any cline-neutral">&nbsp;</span>
2870
+ <span class="cline-any cline-neutral">&nbsp;</span>
2871
+ <span class="cline-any cline-yes">7x</span>
2872
+ <span class="cline-any cline-neutral">&nbsp;</span>
2873
+ <span class="cline-any cline-neutral">&nbsp;</span>
2874
+ <span class="cline-any cline-yes">7x</span>
2875
+ <span class="cline-any cline-no">&nbsp;</span>
2876
+ <span class="cline-any cline-neutral">&nbsp;</span>
2877
+ <span class="cline-any cline-neutral">&nbsp;</span>
2878
+ <span class="cline-any cline-neutral">&nbsp;</span>
2879
+ <span class="cline-any cline-neutral">&nbsp;</span>
2880
+ <span class="cline-any cline-yes">7x</span>
2881
+ <span class="cline-any cline-yes">2x</span>
2882
+ <span class="cline-any cline-neutral">&nbsp;</span>
2883
+ <span class="cline-any cline-yes">5x</span>
2884
+ <span class="cline-any cline-neutral">&nbsp;</span>
2885
+ <span class="cline-any cline-yes">7x</span>
2886
+ <span class="cline-any cline-yes">7x</span>
2887
+ <span class="cline-any cline-yes">7x</span>
2888
+ <span class="cline-any cline-yes">7x</span>
2889
+ <span class="cline-any cline-neutral">&nbsp;</span>
2890
+ <span class="cline-any cline-neutral">&nbsp;</span>
2891
+ <span class="cline-any cline-yes">7x</span>
2892
+ <span class="cline-any cline-neutral">&nbsp;</span>
2893
+ <span class="cline-any cline-neutral">&nbsp;</span>
2894
+ <span class="cline-any cline-neutral">&nbsp;</span>
2895
+ <span class="cline-any cline-neutral">&nbsp;</span>
2896
+ <span class="cline-any cline-neutral">&nbsp;</span>
2897
+ <span class="cline-any cline-neutral">&nbsp;</span>
2898
+ <span class="cline-any cline-neutral">&nbsp;</span>
2899
+ <span class="cline-any cline-neutral">&nbsp;</span>
2900
+ <span class="cline-any cline-neutral">&nbsp;</span>
2901
+ <span class="cline-any cline-neutral">&nbsp;</span>
2902
+ <span class="cline-any cline-neutral">&nbsp;</span>
2903
+ <span class="cline-any cline-no">&nbsp;</span>
2904
+ <span class="cline-any cline-no">&nbsp;</span>
2905
+ <span class="cline-any cline-neutral">&nbsp;</span>
2906
+ <span class="cline-any cline-neutral">&nbsp;</span>
2907
+ <span class="cline-any cline-neutral">&nbsp;</span>
2908
+ <span class="cline-any cline-neutral">&nbsp;</span>
2909
+ <span class="cline-any cline-neutral">&nbsp;</span>
2910
+ <span class="cline-any cline-yes">55x</span>
2911
+ <span class="cline-any cline-neutral">&nbsp;</span>
2912
+ <span class="cline-any cline-yes">55x</span>
2913
+ <span class="cline-any cline-yes">55x</span>
2914
+ <span class="cline-any cline-neutral">&nbsp;</span>
2915
+ <span class="cline-any cline-yes">55x</span>
2916
+ <span class="cline-any cline-yes">75x</span>
2917
+ <span class="cline-any cline-neutral">&nbsp;</span>
2918
+ <span class="cline-any cline-neutral">&nbsp;</span>
2919
+ <span class="cline-any cline-yes">75x</span>
2920
+ <span class="cline-any cline-yes">75x</span>
2921
+ <span class="cline-any cline-yes">75x</span>
2922
+ <span class="cline-any cline-neutral">&nbsp;</span>
2923
+ <span class="cline-any cline-yes">75x</span>
2924
+ <span class="cline-any cline-neutral">&nbsp;</span>
2925
+ <span class="cline-any cline-yes">75x</span>
2926
+ <span class="cline-any cline-neutral">&nbsp;</span>
2927
+ <span class="cline-any cline-yes">12x</span>
2928
+ <span class="cline-any cline-yes">12x</span>
2929
+ <span class="cline-any cline-neutral">&nbsp;</span>
2930
+ <span class="cline-any cline-neutral">&nbsp;</span>
2931
+ <span class="cline-any cline-neutral">&nbsp;</span>
2932
+ <span class="cline-any cline-yes">55x</span>
2933
+ <span class="cline-any cline-neutral">&nbsp;</span>
2934
+ <span class="cline-any cline-neutral">&nbsp;</span>
2935
+ <span class="cline-any cline-neutral">&nbsp;</span>
2936
+ <span class="cline-any cline-neutral">&nbsp;</span>
2937
+ <span class="cline-any cline-no">&nbsp;</span>
2938
+ <span class="cline-any cline-neutral">&nbsp;</span>
2939
+ <span class="cline-any cline-neutral">&nbsp;</span>
2940
+ <span class="cline-any cline-neutral">&nbsp;</span>
2941
+ <span class="cline-any cline-neutral">&nbsp;</span>
2942
+ <span class="cline-any cline-neutral">&nbsp;</span>
2943
+ <span class="cline-any cline-yes">68x</span>
2944
+ <span class="cline-any cline-neutral">&nbsp;</span>
2945
+ <span class="cline-any cline-neutral">&nbsp;</span>
2946
+ <span class="cline-any cline-neutral">&nbsp;</span>
2947
+ <span class="cline-any cline-neutral">&nbsp;</span>
2948
+ <span class="cline-any cline-neutral">&nbsp;</span>
2949
+ <span class="cline-any cline-neutral">&nbsp;</span>
2950
+ <span class="cline-any cline-neutral">&nbsp;</span>
2951
+ <span class="cline-any cline-yes">1x</span>
2952
+ <span class="cline-any cline-neutral">&nbsp;</span>
2953
+ <span class="cline-any cline-neutral">&nbsp;</span>
2954
+ <span class="cline-any cline-neutral">&nbsp;</span>
2955
+ <span class="cline-any cline-neutral">&nbsp;</span>
2956
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as JSON5 from 'json5';
2957
+ import { TranslatorState, shiftState, withSourceMap } from '../translator';
2958
+ import Logic from './Logic__';
2959
+ import type Param from './Param__';
2960
+ import View from './View__';
2961
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
2962
+ import { findConceptKeyWordIndexFromNamespace } from '../utils';
2963
+ import { config } from '../config';
2964
+ import Identifier from './Identifier__';
2965
+ import type { ViewElement, ElementToVueOptions } from './ViewElement__';
2966
+ import type { MemberExpression } from './MemberExpression__';
2967
+ import type { TSPPosition } from '../translator';
2968
+ &nbsp;
2969
+ //================================================================================
2970
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2971
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
2972
+ //================================================================================
2973
+ import { EventPayload, Params } from '../common/EventEmitter';
2974
+ import { concept, excludedInJSON, property, className } from '../decorators';
2975
+ &nbsp;
2976
+ import * as utils from '../utils';
2977
+ import { v4 as uuidv4 } from 'uuid';
2978
+ import BaseNode from '../common/BaseNode';
2979
+ import TypeAnnotation from './TypeAnnotation__';
2980
+ import Argument from './Argument__';
2981
+ import BindAttribute from './BindAttribute__';
2982
+ import LogicItem from './LogicItem__';
2983
+ &nbsp;
2984
+ /**
2985
+ * 调用逻辑
2986
+ */
2987
+ @className
2988
+ @concept('调用逻辑')
2989
+ // @ts-ignore
2990
+ export class CallLogic extends LogicItem {
2991
+ /** 类名 */
2992
+ static readonly ConceptName = 'CallLogic';
2993
+ &nbsp;
2994
+ /**
2995
+ * 唯一标识
2996
+ */
2997
+ @property()
2998
+ uuid: string = uuidv4().replace(/-/g, '');
2999
+ &nbsp;
3000
+ /**
3001
+ * 产品概念
3002
+ */
3003
+ // @ts-ignore
3004
+ readonly concept!: 'CallLogic' | 'CallConnector';
3005
+ &nbsp;
3006
+ /**
3007
+ * 调用逻辑标题
3008
+ */
3009
+ @property()
3010
+ label: string = '调用逻辑';
3011
+ &nbsp;
3012
+ /**
3013
+ * calleeNamespace
3014
+ */
3015
+ @property()
3016
+ // @ts-ignore
3017
+ calleeNamespace!: string;
3018
+ &nbsp;
3019
+ /**
3020
+ * calleeName
3021
+ */
3022
+ @property()
3023
+ // @ts-ignore
3024
+ calleeName!: string;
3025
+ &nbsp;
3026
+ /**
3027
+ * shortcut
3028
+ */
3029
+ @property()
3030
+ // @ts-ignore
3031
+ shortcut!: boolean;
3032
+ &nbsp;
3033
+ /**
3034
+ * handleError
3035
+ */
3036
+ @property()
3037
+ // @ts-ignore
3038
+ handleError!: boolean;
3039
+ &nbsp;
3040
+ /**
3041
+ * 类型参数
3042
+ */
3043
+ @property('TypeAnnotation')
3044
+ typeArguments?: Array&lt;TypeAnnotation&gt; = null;
3045
+ &nbsp;
3046
+ /**
3047
+ * 实际参数
3048
+ */
3049
+ @property('Argument')
3050
+ arguments: Array&lt;Argument&gt; = [];
3051
+ &nbsp;
3052
+ /**
3053
+ * 验证规则
3054
+ */
3055
+ @property('BindAttribute')
3056
+ // @ts-ignore
3057
+ validation!: BindAttribute;
3058
+ &nbsp;
3059
+ /**
3060
+ * 是否被折叠
3061
+ */
3062
+ @property()
3063
+ // @ts-ignore
3064
+ isAdvancedSettingFolded!: boolean;
3065
+ &nbsp;
3066
+ /**
3067
+ * @param source 需要合并的部分参数
3068
+ */
3069
+ constructor(source?: Partial&lt;CallLogic&gt;) {
3070
+ source = Object.assign({}, CallLogic.getDefaultOptions(), source);
3071
+ super(source);
3072
+ super.subConstructor(source);
3073
+ }
3074
+ &nbsp;
3075
+ static from(source: any, parentNode?: any, parentKey?: string): CallLogic {
3076
+ return super.from(source, parentNode, parentKey) as CallLogic;
3077
+ }
3078
+ &nbsp;
3079
+ /**
3080
+ * 设置验证规则
3081
+ */
3082
+ <span class="fstat-no" title="function not covered" > setValidation(</span>validation: BindAttribute) {
3083
+ <span class="cstat-no" title="statement not covered" > validation._delete();</span>
3084
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'validation' };</span>
3085
+ <span class="cstat-no" title="statement not covered" > Object.assign(validation, relationOptions);</span>
3086
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
3087
+ validation,
3088
+ };
3089
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3090
+ ...object,
3091
+ });
3092
+ }
3093
+ &nbsp;
3094
+ /**
3095
+ * 设置是否被折叠
3096
+ */
3097
+ <span class="fstat-no" title="function not covered" > setIsAdvancedSettingFolded(</span>isAdvancedSettingFolded: boolean) {
3098
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
3099
+ isAdvancedSettingFolded,
3100
+ };
3101
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3102
+ ...object,
3103
+ });
3104
+ }
3105
+ &nbsp;
3106
+ /**
3107
+ * 插入类型标注
3108
+ * @internal
3109
+ * @param typeAnnotationOptions 类型标注参数
3110
+ */
3111
+ _insertTypeAnnotationAt(typeAnnotationOptions: Partial&lt;TypeAnnotation&gt;, index: number): TypeAnnotation;
3112
+ &nbsp;
3113
+ /**
3114
+ * 插入类型标注
3115
+ * @internal
3116
+ * @param typeAnnotation 已有的类型标注实例
3117
+ */
3118
+ _insertTypeAnnotationAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation;
3119
+ &nbsp;
3120
+ <span class="fstat-no" title="function not covered" > _insertTypeAnnotationAt(</span>options: Partial&lt;TypeAnnotation&gt; | TypeAnnotation, index: number) {
3121
+ const typeAnnotationOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
3122
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'typeArguments' };</span>
3123
+ let typeAnnotation: TypeAnnotation;
3124
+ <span class="cstat-no" title="statement not covered" > if (options instanceof TypeAnnotation) {</span>
3125
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
3126
+ <span class="cstat-no" title="statement not covered" > typeAnnotation = options;</span>
3127
+ <span class="cstat-no" title="statement not covered" > Object.assign(typeAnnotation, relationOptions);</span>
3128
+ } else {
3129
+ <span class="cstat-no" title="statement not covered" > typeAnnotation = TypeAnnotation.from(</span>
3130
+ {
3131
+ ...typeAnnotationOptions,
3132
+ ...options,
3133
+ },
3134
+ this,
3135
+ 'typeArguments',
3136
+ );
3137
+ }
3138
+ <span class="cstat-no" title="statement not covered" > this.typeArguments.splice(index, 0, typeAnnotation);</span>
3139
+ <span class="cstat-no" title="statement not covered" > return typeAnnotation;</span>
3140
+ }
3141
+ &nbsp;
3142
+ /**
3143
+ * 插入类型标注
3144
+ * @param typeAnnotationOptions 类型标注参数
3145
+ */
3146
+ insertTypeAnnotationAt(typeAnnotationOptions: Partial&lt;TypeAnnotation&gt;, index: number): TypeAnnotation;
3147
+ &nbsp;
3148
+ /**
3149
+ * 插入类型标注
3150
+ * @param typeAnnotation 已有的类型标注实例
3151
+ */
3152
+ insertTypeAnnotationAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation;
3153
+ &nbsp;
3154
+ <span class="fstat-no" title="function not covered" > insertTypeAnnotationAt(</span>options: Partial&lt;TypeAnnotation&gt; | TypeAnnotation, index: number) {
3155
+ const node = <span class="cstat-no" title="statement not covered" >this._insertTypeAnnotationAt(options as any, index);</span>
3156
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
3157
+ index,
3158
+ parentNode: this,
3159
+ parentKey: 'typeArguments',
3160
+ });
3161
+ <span class="cstat-no" title="statement not covered" > return node;</span>
3162
+ }
3163
+ &nbsp;
3164
+ /**
3165
+ * 添加类型标注
3166
+ * @internal
3167
+ * @param typeAnnotationOptions 类型标注参数
3168
+ */
3169
+ _addTypeAnnotation(typeAnnotationOptions: Partial&lt;TypeAnnotation&gt;): TypeAnnotation;
3170
+ &nbsp;
3171
+ /**
3172
+ * 添加类型标注
3173
+ * @internal
3174
+ * @param typeAnnotation 已有的类型标注实例
3175
+ */
3176
+ _addTypeAnnotation(typeAnnotation: TypeAnnotation): TypeAnnotation;
3177
+ &nbsp;
3178
+ <span class="fstat-no" title="function not covered" > _addTypeAnnotation(</span>options?: Partial&lt;TypeAnnotation&gt; | TypeAnnotation) {
3179
+ const index = <span class="cstat-no" title="statement not covered" >this.typeArguments.length;</span>
3180
+ <span class="cstat-no" title="statement not covered" > return this._insertTypeAnnotationAt(options as any, index);</span>
3181
+ }
3182
+ &nbsp;
3183
+ /**
3184
+ * 添加类型标注
3185
+ * @param typeAnnotationOptions 类型标注参数
3186
+ */
3187
+ addTypeAnnotation(typeAnnotationOptions: Partial&lt;TypeAnnotation&gt;): TypeAnnotation;
3188
+ &nbsp;
3189
+ /**
3190
+ * 添加类型标注
3191
+ * @param typeAnnotation 已有的类型标注实例
3192
+ */
3193
+ addTypeAnnotation(typeAnnotation: TypeAnnotation): TypeAnnotation;
3194
+ &nbsp;
3195
+ <span class="fstat-no" title="function not covered" > addTypeAnnotation(</span>options?: Partial&lt;TypeAnnotation&gt; | TypeAnnotation) {
3196
+ const node = <span class="cstat-no" title="statement not covered" >this._addTypeAnnotation(options as any);</span>
3197
+ const index = <span class="cstat-no" title="statement not covered" >this.typeArguments.indexOf(node);</span>
3198
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
3199
+ index,
3200
+ parentNode: this,
3201
+ parentKey: 'typeArguments',
3202
+ });
3203
+ <span class="cstat-no" title="statement not covered" > return node;</span>
3204
+ }
3205
+ &nbsp;
3206
+ /**
3207
+ * 插入实际参数
3208
+ * @internal
3209
+ * @param argumentOptions 实际参数参数
3210
+ */
3211
+ _insertArgumentAt(argumentOptions: Partial&lt;Argument&gt;, index: number): Argument;
3212
+ &nbsp;
3213
+ /**
3214
+ * 插入实际参数
3215
+ * @internal
3216
+ * @param argument 已有的实际参数实例
3217
+ */
3218
+ _insertArgumentAt(argument: Argument, index: number): Argument;
3219
+ &nbsp;
3220
+ <span class="fstat-no" title="function not covered" > _insertArgumentAt(</span>options: Partial&lt;Argument&gt; | Argument, index: number) {
3221
+ const argumentOptions: any = <span class="cstat-no" title="statement not covered" >{};</span>
3222
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'arguments' };</span>
3223
+ let argument: Argument;
3224
+ <span class="cstat-no" title="statement not covered" > if (options instanceof Argument) {</span>
3225
+ <span class="cstat-no" title="statement not covered" > options.ensureDelete(); </span>// 同一实例不支持多处存在
3226
+ <span class="cstat-no" title="statement not covered" > argument = options;</span>
3227
+ <span class="cstat-no" title="statement not covered" > Object.assign(argument, relationOptions);</span>
3228
+ } else {
3229
+ <span class="cstat-no" title="statement not covered" > argument = Argument.from(</span>
3230
+ {
3231
+ ...argumentOptions,
3232
+ ...options,
3233
+ },
3234
+ this,
3235
+ 'arguments',
3236
+ );
3237
+ }
3238
+ <span class="cstat-no" title="statement not covered" > this.arguments.splice(index, 0, argument);</span>
3239
+ <span class="cstat-no" title="statement not covered" > return argument;</span>
3240
+ }
3241
+ &nbsp;
3242
+ /**
3243
+ * 插入实际参数
3244
+ * @param argumentOptions 实际参数参数
3245
+ */
3246
+ insertArgumentAt(argumentOptions: Partial&lt;Argument&gt;, index: number): Argument;
3247
+ &nbsp;
3248
+ /**
3249
+ * 插入实际参数
3250
+ * @param argument 已有的实际参数实例
3251
+ */
3252
+ insertArgumentAt(argument: Argument, index: number): Argument;
3253
+ &nbsp;
3254
+ <span class="fstat-no" title="function not covered" > insertArgumentAt(</span>options: Partial&lt;Argument&gt; | Argument, index: number) {
3255
+ const node = <span class="cstat-no" title="statement not covered" >this._insertArgumentAt(options as any, index);</span>
3256
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
3257
+ index,
3258
+ parentNode: this,
3259
+ parentKey: 'arguments',
3260
+ });
3261
+ <span class="cstat-no" title="statement not covered" > return node;</span>
3262
+ }
3263
+ &nbsp;
3264
+ /**
3265
+ * 添加实际参数
3266
+ * @internal
3267
+ * @param argumentOptions 实际参数参数
3268
+ */
3269
+ _addArgument(argumentOptions: Partial&lt;Argument&gt;): Argument;
3270
+ &nbsp;
3271
+ /**
3272
+ * 添加实际参数
3273
+ * @internal
3274
+ * @param argument 已有的实际参数实例
3275
+ */
3276
+ _addArgument(argument: Argument): Argument;
3277
+ &nbsp;
3278
+ <span class="fstat-no" title="function not covered" > _addArgument(</span>options?: Partial&lt;Argument&gt; | Argument) {
3279
+ const index = <span class="cstat-no" title="statement not covered" >this.arguments.length;</span>
3280
+ <span class="cstat-no" title="statement not covered" > return this._insertArgumentAt(options as any, index);</span>
3281
+ }
3282
+ &nbsp;
3283
+ /**
3284
+ * 添加实际参数
3285
+ * @param argumentOptions 实际参数参数
3286
+ */
3287
+ addArgument(argumentOptions: Partial&lt;Argument&gt;): Argument;
3288
+ &nbsp;
3289
+ /**
3290
+ * 添加实际参数
3291
+ * @param argument 已有的实际参数实例
3292
+ */
3293
+ addArgument(argument: Argument): Argument;
3294
+ &nbsp;
3295
+ <span class="fstat-no" title="function not covered" > addArgument(</span>options?: Partial&lt;Argument&gt; | Argument) {
3296
+ const node = <span class="cstat-no" title="statement not covered" >this._addArgument(options as any);</span>
3297
+ const index = <span class="cstat-no" title="statement not covered" >this.arguments.indexOf(node);</span>
3298
+ <span class="cstat-no" title="statement not covered" > node.create({</span>
3299
+ index,
3300
+ parentNode: this,
3301
+ parentKey: 'arguments',
3302
+ });
3303
+ <span class="cstat-no" title="statement not covered" > return node;</span>
3304
+ }
3305
+ &nbsp;
3306
+ /**
3307
+ * 删除类型标注
3308
+ * @param typeAnnotation 已有的类型标注实例
3309
+ */
3310
+ removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
3311
+ &nbsp;
3312
+ <span class="fstat-no" title="function not covered" > removeTypeAnnotation(</span>options: TypeAnnotation) {
3313
+ let typeAnnotation: TypeAnnotation = <span class="cstat-no" title="statement not covered" >options;</span>
3314
+ <span class="cstat-no" title="statement not covered" > return typeAnnotation.delete();</span>
3315
+ }
3316
+ &nbsp;
3317
+ <span class="fstat-no" title="function not covered" > __removeTypeAnnotation(</span>typeAnnotation: TypeAnnotation) {
3318
+ const parentKey = <span class="cstat-no" title="statement not covered" >typeAnnotation.parentKey;</span>
3319
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
3320
+ parentNode: this,
3321
+ parentKey,
3322
+ index: -1,
3323
+ object: null,
3324
+ oldObject: typeAnnotation,
3325
+ };
3326
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
3327
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
3328
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
3329
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(typeAnnotation);</span>
3330
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
3331
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
3332
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === typeAnnotation) {</span>
3333
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
3334
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
3335
+ }
3336
+ }
3337
+ <span class="cstat-no" title="statement not covered" > return params;</span>
3338
+ }
3339
+ &nbsp;
3340
+ /**
3341
+ * 删除实际参数
3342
+ * @param argument 已有的实际参数实例
3343
+ */
3344
+ removeArgument(argument: Argument): void;
3345
+ &nbsp;
3346
+ <span class="fstat-no" title="function not covered" > removeArgument(</span>options: Argument) {
3347
+ let argument: Argument = <span class="cstat-no" title="statement not covered" >options;</span>
3348
+ <span class="cstat-no" title="statement not covered" > return argument.delete();</span>
3349
+ }
3350
+ &nbsp;
3351
+ <span class="fstat-no" title="function not covered" > __removeLogicItem(</span>logicItem: LogicItem) {
3352
+ const parentKey = <span class="cstat-no" title="statement not covered" >logicItem.parentKey;</span>
3353
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
3354
+ parentNode: this,
3355
+ parentKey,
3356
+ index: -1,
3357
+ object: null,
3358
+ oldObject: logicItem,
3359
+ };
3360
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
3361
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
3362
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
3363
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(logicItem);</span>
3364
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
3365
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
3366
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === logicItem) {</span>
3367
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
3368
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
3369
+ }
3370
+ }
3371
+ <span class="cstat-no" title="statement not covered" > return params;</span>
3372
+ }
3373
+ &nbsp;
3374
+ /**
3375
+ * 删除元素绑定属性
3376
+ * @param name 元素绑定属性名称
3377
+ */
3378
+ removeValidation(name: string): void;
3379
+ &nbsp;
3380
+ /**
3381
+ * 删除元素绑定属性
3382
+ * @param validation 已有的元素绑定属性实例
3383
+ */
3384
+ removeValidation(validation: BindAttribute): void;
3385
+ &nbsp;
3386
+ <span class="fstat-no" title="function not covered" > removeValidation(</span>options: string | BindAttribute) {
3387
+ let validation: BindAttribute;
3388
+ <span class="cstat-no" title="statement not covered" > if (typeof options === 'string') {</span>
3389
+ <span class="cstat-no" title="statement not covered" > validation = this.validation;</span>
3390
+ <span class="cstat-no" title="statement not covered" > if (!validation) {</span>
3391
+ <span class="cstat-no" title="statement not covered" > throw new Error('找不到元素绑定属性 ' + options);</span>
3392
+ }
3393
+ } else {
3394
+ <span class="cstat-no" title="statement not covered" > validation = options;</span>
3395
+ }
3396
+ <span class="cstat-no" title="statement not covered" > return validation.delete();</span>
3397
+ }
3398
+ &nbsp;
3399
+ <span class="fstat-no" title="function not covered" > __removeBindAttribute(</span>bindAttribute: BindAttribute) {
3400
+ const parentKey = <span class="cstat-no" title="statement not covered" >bindAttribute.parentKey;</span>
3401
+ const params: Params = <span class="cstat-no" title="statement not covered" >{</span>
3402
+ parentNode: this,
3403
+ parentKey,
3404
+ index: -1,
3405
+ object: null,
3406
+ oldObject: bindAttribute,
3407
+ };
3408
+ <span class="cstat-no" title="statement not covered" > if (parentKey) {</span>
3409
+ <span class="cstat-no" title="statement not covered" > params.parentKey = parentKey;</span>
3410
+ <span class="cstat-no" title="statement not covered" > if (Array.isArray((this as any)[parentKey])) {</span>
3411
+ const index = (<span class="cstat-no" title="statement not covered" >this as any)[parentKey].indexOf(bindAttribute);</span>
3412
+ <span class="cstat-no" title="statement not covered" > ~index &amp;&amp; (this as any)[parentKey].splice(index, 1);</span>
3413
+ <span class="cstat-no" title="statement not covered" > params.index = index;</span>
3414
+ } else <span class="cstat-no" title="statement not covered" >if ((this as any)[parentKey] === bindAttribute) {</span>
3415
+ <span class="cstat-no" title="statement not covered" > params.index = 0;</span>
3416
+ (<span class="cstat-no" title="statement not covered" >this as any)[parentKey] = undefined;</span>
3417
+ }
3418
+ }
3419
+ <span class="cstat-no" title="statement not covered" > return params;</span>
3420
+ }
3421
+ &nbsp;
3422
+ //================================================================================
3423
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
3424
+ // 自动生成的代码已结束。下面可以手动编写。
3425
+ //================================================================================
3426
+ &nbsp;
3427
+ get tsCalleeNamespace() {
3428
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this.calleeNamespace) {
3429
+ let tsCalleeNamespace = this.calleeNamespace;
3430
+ 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>;
3431
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
3432
+ return tsCalleeNamespace;
3433
+ }
3434
+ <span class="cstat-no" title="statement not covered" > return '';</span>
3435
+ }
3436
+ &nbsp;
3437
+ // 用于logic回填
3438
+ get calleewholeKey(): string {
3439
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.calleeNamespace &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this.calleeName </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >this.view)</span> {
3440
+ // 页面逻辑单独处理
3441
+ <span class="cstat-no" title="statement not covered" > return `${this.view.getNamespace()}.${this.view.name}.logics.${this.calleeName}`;</span>
3442
+ }
3443
+ // "app.logics"
3444
+ return `${this.calleeNamespace}.${this.calleeName}`;
3445
+ }
3446
+ &nbsp;
3447
+ get calleeKey(): string {
3448
+ const { tsCalleeNamespace } = this;
3449
+ const { calleeName } = this;
3450
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!tsCalleeNamespace) {
3451
+ <span class="cstat-no" title="statement not covered" > return calleeName ? `${calleeName}` : '__IDENTIFIER__';</span>
3452
+ }
3453
+ // elements单独处理相对路径,和后缀的问题
3454
+ if (tsCalleeNamespace.startsWith('elements') &amp;&amp; tsCalleeNamespace.endsWith('logics')) {
3455
+ const methodName = tsCalleeNamespace.substring(0, tsCalleeNamespace.length - '.logics'.length);
3456
+ return `__${methodName}.${calleeName}`;
3457
+ }
3458
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : <span class="branch-1 cbranch-no" title="branch not covered" >'__IDENTIFIER__';</span>
3459
+ }
3460
+ &nbsp;
3461
+ /**
3462
+ * 设置argment 触发别的地方的更新
3463
+ */
3464
+ <span class="fstat-no" title="function not covered" > setArgumentName(</span>{ argument }: { argument: Argument[] }) {
3465
+ // argument.setKeyword(newKeyword);
3466
+ // this.arguments = argument;
3467
+ }
3468
+ &nbsp;
3469
+ /**
3470
+ * 设置setCalleeName
3471
+ */
3472
+ <span class="fstat-no" title="function not covered" > setCalleeName(</span>calleeName: string) {
3473
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
3474
+ calleeName,
3475
+ };
3476
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3477
+ ...object,
3478
+ });
3479
+ }
3480
+ &nbsp;
3481
+ /**
3482
+ * 设置calleeNamespace
3483
+ */
3484
+ <span class="fstat-no" title="function not covered" > setCalleeNamespace(</span>calleeNamespace: string) {
3485
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
3486
+ calleeNamespace,
3487
+ };
3488
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3489
+ ...object,
3490
+ });
3491
+ }
3492
+ &nbsp;
3493
+ /**
3494
+ * 设置 handleError
3495
+ */
3496
+ <span class="fstat-no" title="function not covered" > setHandleError(</span>handleError: boolean) {
3497
+ const object = <span class="cstat-no" title="statement not covered" >{</span>
3498
+ handleError,
3499
+ };
3500
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3501
+ ...object,
3502
+ });
3503
+ }
3504
+ &nbsp;
3505
+ <span class="fstat-no" title="function not covered" > _setCallee(</span>logic: Logic) {
3506
+ <span class="cstat-no" title="statement not covered" > this.calleeNamespace = logic.getNamespace();</span>
3507
+ <span class="cstat-no" title="statement not covered" > if (logic.parentNode instanceof View) {</span>
3508
+ <span class="cstat-no" title="statement not covered" > this.calleeNamespace = '';</span>
3509
+ }
3510
+ <span class="cstat-no" title="statement not covered" > this.calleeName = logic.name;</span>
3511
+ <span class="cstat-no" title="statement not covered" > this.arguments = [];</span>
3512
+ <span class="cstat-no" title="statement not covered" > logic.params.forEach(<span class="fstat-no" title="function not covered" >(p</span>aram: any) =&gt; {</span>
3513
+ const argument = <span class="cstat-no" title="statement not covered" >this._addArgument({</span>
3514
+ keyword: param.name,
3515
+ });
3516
+ <span class="cstat-no" title="statement not covered" > if (param.defaultExpression) {</span>
3517
+ const exp: any = <span class="cstat-no" title="statement not covered" >BaseNode.from(param.defaultExpression.toJSON());</span>
3518
+ <span class="cstat-no" title="statement not covered" > argument.setExpression(exp);</span>
3519
+ }
3520
+ });
3521
+ <span class="cstat-no" title="statement not covered" > if (logic.typeParams) {</span>
3522
+ <span class="cstat-no" title="statement not covered" > this.typeArguments = [];</span>
3523
+ <span class="cstat-no" title="statement not covered" > logic.typeParams.forEach(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
3524
+ <span class="cstat-no" title="statement not covered" > this._addTypeAnnotation({});</span>
3525
+ });
3526
+ }
3527
+ }
3528
+ &nbsp;
3529
+ <span class="fstat-no" title="function not covered" > setCallee(</span>logic: Logic) {
3530
+ let calleeNamespace = <span class="cstat-no" title="statement not covered" >logic?.getNamespace() || '';</span>
3531
+ <span class="cstat-no" title="statement not covered" > if (logic.parentNode instanceof View) {</span>
3532
+ <span class="cstat-no" title="statement not covered" > calleeNamespace = '';</span>
3533
+ }
3534
+ const calleeName = <span class="cstat-no" title="statement not covered" >logic.name;</span>
3535
+ const params = <span class="cstat-no" title="statement not covered" >logic?.params?.map(<span class="fstat-no" title="function not covered" >(p</span>aram) =&gt; {</span>
3536
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'arguments' };</span>
3537
+ const argument = <span class="cstat-no" title="statement not covered" >Argument.from(</span>
3538
+ {
3539
+ keyword: param.name,
3540
+ expression: param.isFunction ? new Identifier() : param.defaultExpression,
3541
+ },
3542
+ this,
3543
+ );
3544
+ <span class="cstat-no" title="statement not covered" > Object.assign(argument, relationOptions);</span>
3545
+ <span class="cstat-no" title="statement not covered" > return argument;</span>
3546
+ });
3547
+ let typeArguments = <span class="cstat-no" title="statement not covered" >null;</span>
3548
+ <span class="cstat-no" title="statement not covered" > if (logic.typeParams) {</span>
3549
+ <span class="cstat-no" title="statement not covered" > typeArguments = logic.typeParams.map(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
3550
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'typeArguments' };</span>
3551
+ const typeArgu = <span class="cstat-no" title="statement not covered" >new TypeAnnotation();</span>
3552
+ <span class="cstat-no" title="statement not covered" > Object.assign(typeArgu, relationOptions);</span>
3553
+ <span class="cstat-no" title="statement not covered" > return typeArgu;</span>
3554
+ });
3555
+ }
3556
+ &nbsp;
3557
+ // 如果打开了处理error的开关 或者是 依赖库的逻辑引用,而且类型中携带了Error的
3558
+ let handleError = <span class="cstat-no" title="statement not covered" >false;</span>
3559
+ <span class="cstat-no" title="statement not covered" > if (calleeNamespace?.startsWith('extensions') &amp;&amp; Logic.checkLogicReturnTypeHasError(logic)) {</span>
3560
+ <span class="cstat-no" title="statement not covered" > handleError = true;</span>
3561
+ }
3562
+ <span class="cstat-no" title="statement not covered" > if (this.app) {</span>
3563
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:start', {</span>
3564
+ actionMsg: `切换调用逻辑`,
3565
+ });
3566
+ const { parentNode } = <span class="cstat-no" title="statement not covered" >this;</span>
3567
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3568
+ calleeNamespace,
3569
+ calleeName,
3570
+ arguments: params,
3571
+ typeArguments,
3572
+ folded: false,
3573
+ handleError,
3574
+ });
3575
+ <span class="cstat-no" title="statement not covered" > if (parentNode.concept === 'MemberExpression') {</span>
3576
+ const topNode = (<span class="cstat-no" title="statement not covered" >parentNode as MemberExpression).firstMemberExpressionNode();</span>
3577
+ <span class="cstat-no" title="statement not covered" > topNode.replaceNode(this);</span>
3578
+ }
3579
+ <span class="cstat-no" title="statement not covered" > this.app.emit('collect:end');</span>
3580
+ } else {
3581
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3582
+ calleeNamespace,
3583
+ calleeName,
3584
+ arguments: params,
3585
+ typeArguments,
3586
+ folded: false,
3587
+ handleError,
3588
+ });
3589
+ }
3590
+ }
3591
+ &nbsp;
3592
+ <span class="fstat-no" title="function not covered" > addCalleeArg(</span>logic: Logic) {
3593
+ const newArgs = <span class="cstat-no" title="statement not covered" >this.arguments.map(<span class="fstat-no" title="function not covered" >(a</span>rgument) =&gt;</span>
3594
+ <span class="cstat-no" title="statement not covered" > Argument.from(</span>
3595
+ {
3596
+ ...argument,
3597
+ },
3598
+ this,
3599
+ ),
3600
+ );
3601
+ const relationOptions = <span class="cstat-no" title="statement not covered" >{ parentNode: this, parentKey: 'arguments' };</span>
3602
+ /**
3603
+ * 当前两个参数对应上,添加的时候,logic会比参数位内容多,就添加一个 argment
3604
+ */
3605
+ <span class="cstat-no" title="statement not covered" > if (logic.params.length &gt;= newArgs.length) {</span>
3606
+ <span class="cstat-no" title="statement not covered" > logic.params.forEach(<span class="fstat-no" title="function not covered" >(p</span>aram: Param, index: number) =&gt; {</span>
3607
+ const arg = <span class="cstat-no" title="statement not covered" >newArgs[index];</span>
3608
+ <span class="cstat-no" title="statement not covered" > if (!arg) {</span>
3609
+ const newParam = <span class="cstat-no" title="statement not covered" >Argument.from(</span>
3610
+ {
3611
+ keyword: param.name,
3612
+ },
3613
+ this,
3614
+ );
3615
+ <span class="cstat-no" title="statement not covered" > Object.assign(newParam, relationOptions);</span>
3616
+ <span class="cstat-no" title="statement not covered" > newArgs.push(newParam);</span>
3617
+ } else {
3618
+ <span class="cstat-no" title="statement not covered" > arg.keyword = param.name;</span>
3619
+ }
3620
+ });
3621
+ } else {
3622
+ /**
3623
+ * 当前calllogic上数量比logic参数还多,他就需要找一个arg使他变成可用的参数
3624
+ */
3625
+ <span class="cstat-no" title="statement not covered" > newArgs.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg: Argument, index: number) =&gt; {</span>
3626
+ const param = <span class="cstat-no" title="statement not covered" >logic.params[index];</span>
3627
+ <span class="cstat-no" title="statement not covered" > if (param) {</span>
3628
+ <span class="cstat-no" title="statement not covered" > arg.keyword = param.name;</span>
3629
+ }
3630
+ });
3631
+ }
3632
+ <span class="cstat-no" title="statement not covered" > this.update({</span>
3633
+ arguments: newArgs,
3634
+ });
3635
+ }
3636
+ &nbsp;
3637
+ <span class="fstat-no" title="function not covered" > deleteCalleeArg(</span>argIndex: number) {
3638
+ /**
3639
+ * 传递过下标来,然后直接移动到最后结束
3640
+ * 如果原来就是最后一个位置就不移动了
3641
+ */
3642
+ <span class="cstat-no" title="statement not covered" > if (typeof argIndex === 'number') {</span>
3643
+ <span class="cstat-no" title="statement not covered" > if (!this.arguments[argIndex]?.expression) {</span>
3644
+ // 如果本身没有值就直接删除
3645
+ <span class="cstat-no" title="statement not covered" > return this.arguments[argIndex]?.delete();</span>
3646
+ }
3647
+ <span class="cstat-no" title="statement not covered" > if (argIndex !== this.arguments.length - 1) {</span>
3648
+ <span class="cstat-no" title="statement not covered" > this.arguments[argIndex]?.moveNode({</span>
3649
+ sourceNode: this.arguments[this.arguments.length - 1],
3650
+ position: 'insertAfter',
3651
+ });
3652
+ }
3653
+ }
3654
+ }
3655
+ &nbsp;
3656
+ toVue(options?: ElementToVueOptions): string {
3657
+ let code = '';
3658
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
3659
+ this.calleeNamespace === 'nasl.browser' ||
3660
+ this.calleeNamespace === 'nasl.auth' ||
3661
+ this.calleeNamespace === 'nasl.configuration' ||
3662
+ this.calleeNamespace === 'nasl.process'
3663
+ ) {
3664
+ <span class="cstat-no" title="statement not covered" > code += '$global.';</span>
3665
+ }
3666
+ const completeArguments = this.completeArguments;
3667
+ &nbsp;
3668
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this.concept === 'CallLogic' &amp;&amp; this.getAncestor('BindAttribute')?.name === 'data-source') {
3669
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this.calleeNamespace) {
3670
+ const currentElement = this.getAncestor('ViewElement') as ViewElement;
3671
+ code += '(params) =&gt; {\n';
3672
+ code += `this['__${currentElement.name}_params'] = {...params};\n`;
3673
+ code += `return this.$logics['${
3674
+ this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : <span class="branch-1 cbranch-no" title="branch not covered" >this.calleeName</span>
3675
+ }']`;
3676
+ code += `({
3677
+ config: {
3678
+ download: false,
3679
+ },
3680
+ query: {},`;
3681
+ code += `
3682
+ headers: {
3683
+ "lcap-calllogic-uuid": "${this.uuid}",
3684
+ },
3685
+ `;
3686
+ code += `path: {},
3687
+ body: {`;
3688
+ const logic = getNodeByNodeCallee(this.app, this.calleewholeKey, <span class="fstat-no" title="function not covered" >(k</span>ey: string, tempPoint: any) =&gt; {
3689
+ // 处理 NASL 中未定义的假的节点
3690
+ <span class="cstat-no" title="statement not covered" > if (key === tempPoint?.name) {</span>
3691
+ <span class="cstat-no" title="statement not covered" > return {</span>
3692
+ tempPoint,
3693
+ state: 1,
3694
+ };
3695
+ }
3696
+ const t = <span class="cstat-no" title="statement not covered" >tempPoint?.[key];</span>
3697
+ <span class="cstat-no" title="statement not covered" > return {</span>
3698
+ tempPoint: t,
3699
+ state: Array.isArray(t) ? 2 : 1,
3700
+ };
3701
+ });
3702
+ const args = logic?.params || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
3703
+ const argsStr = args
3704
+ .map((arg: any, index: number) =&gt; {
3705
+ const actualArg = completeArguments[index];
3706
+ return {
3707
+ keyword: arg?.name,
3708
+ arg: actualArg,
3709
+ };
3710
+ })
3711
+ .map((obj: any) =&gt; `\n${obj?.keyword}: ${obj?.arg?.toVue(options)}`)
3712
+ .join(', ');
3713
+ code += argsStr;
3714
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(this.typeArguments) &amp;&amp; this.typeArguments.length) {
3715
+ <span class="cstat-no" title="statement not covered" > code += `,\n__typeArguments: ${JSON5.stringify(this.typeArguments)}`;</span>
3716
+ }
3717
+ code += '\n}';
3718
+ code += '}';
3719
+ } else {
3720
+ // 前端逻辑的calleeNamespace一直为空字符串
3721
+ <span class="cstat-no" title="statement not covered" > code += this.calleeName;</span>
3722
+ <span class="cstat-no" title="statement not covered" > return code;</span>
3723
+ }
3724
+ } else {
3725
+ <span class="cstat-no" title="statement not covered" > code += this.calleeName;</span>
3726
+ <span class="cstat-no" title="statement not covered" > code += '(';</span>
3727
+ <span class="cstat-no" title="statement not covered" > completeArguments.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
3728
+ <span class="cstat-no" title="statement not covered" > code += arg?.toVue(options);</span>
3729
+ <span class="cstat-no" title="statement not covered" > if (index !== completeArguments.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
3730
+ });
3731
+ }
3732
+ code += ')}';
3733
+ return code;
3734
+ }
3735
+ &nbsp;
3736
+ <span class="fstat-no" title="function not covered" > toUI(</span>state?: TranslatorState): string {
3737
+ let code = <span class="cstat-no" title="statement not covered" >this.calleeName;</span>
3738
+ <span class="cstat-no" title="statement not covered" > code += '(';</span>
3739
+ &nbsp;
3740
+ const node = <span class="cstat-no" title="statement not covered" >this.getCallNode();</span>
3741
+ let logicParam: Param[] = <span class="cstat-no" title="statement not covered" >[];</span>
3742
+ <span class="cstat-no" title="statement not covered" > if (node?.params) {</span>
3743
+ <span class="cstat-no" title="statement not covered" > logicParam = node.params;</span>
3744
+ }
3745
+ <span class="cstat-no" title="statement not covered" > if (this.arguments?.length) {</span>
3746
+ <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>
3747
+ const param = <span class="cstat-no" title="statement not covered" >logicParam[index] || ({} as any);</span>
3748
+ // 打开了必填,
3749
+ // 或者遗留问题,没有required = undefined 而且没有defaultValue,就是之前的必填项
3750
+ const paramRequired = <span class="cstat-no" title="statement not covered" >Boolean(param.required || (param.required === undefined &amp;&amp; !param.defaultValue));</span>
3751
+ // 取到是不是必填放入参数中
3752
+ <span class="cstat-no" title="statement not covered" > if (param &amp;&amp; !arg.expression &amp;&amp; !paramRequired) {</span>
3753
+ // 非必填时 才会有默认值
3754
+ <span class="cstat-no" title="statement not covered" > code += param.defaultValue;</span>
3755
+ } else {
3756
+ <span class="cstat-no" title="statement not covered" > code += arg?.toUI();</span>
3757
+ }
3758
+ <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>
3759
+ });
3760
+ }
3761
+ <span class="cstat-no" title="statement not covered" > code += ')';</span>
3762
+ <span class="cstat-no" title="statement not covered" > if (this.concept === 'CallLogic' &amp;&amp; this.getAncestor('BindAttribute')?.name === 'data-source') {</span>
3763
+ <span class="cstat-no" title="statement not covered" > return this.calleeName;</span>
3764
+ }
3765
+ &nbsp;
3766
+ <span class="cstat-no" title="statement not covered" > return code;</span>
3767
+ }
3768
+ &nbsp;
3769
+ // 是否属于页面逻辑
3770
+ get isViewLogic() {
3771
+ // 页面逻辑
3772
+ let flag = true;
3773
+ const { calleeNamespace } = this;
3774
+ // calleeNamespace不存在,一定是页面逻辑
3775
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (calleeNamespace) {
3776
+ const namespaceArr = calleeNamespace.split('.');
3777
+ const start = namespaceArr[0];
3778
+ const isFrontendLibrary = ~calleeNamespace.indexOf('frontends');
3779
+ if (start === 'app' || (start === 'extensions' &amp;&amp; !isFrontendLibrary)) {
3780
+ const keywordViewsIndex = findConceptKeyWordIndexFromNamespace(this.calleeNamespace, 'views');
3781
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (keywordViewsIndex === -1) {
3782
+ flag = false;
3783
+ }
3784
+ }
3785
+ }
3786
+ return flag;
3787
+ }
3788
+ &nbsp;
3789
+ // 是否属于组件逻辑
3790
+ get isComponentLogic() {
3791
+ // 组件逻辑
3792
+ let flag = false;
3793
+ const { calleeNamespace } = this;
3794
+ // calleeNamespace不存在,一定是页面逻辑
3795
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (calleeNamespace) {
3796
+ const namespaceArr = calleeNamespace.split('.');
3797
+ const start = namespaceArr[0];
3798
+ if (start === 'elements' &amp;&amp; namespaceArr.length === 3 &amp;&amp; namespaceArr[2] === 'logics') {
3799
+ flag = true;
3800
+ }
3801
+ }
3802
+ return flag;
3803
+ }
3804
+ &nbsp;
3805
+ toJS(state?: TranslatorState): string {
3806
+ let code = '';
3807
+ code += 'await (';
3808
+ let refName = '';
3809
+ let extensionName = '';
3810
+ &nbsp;
3811
+ const { calleeName, calleeNamespace, isComponentLogic, completeArguments, isViewLogic, typeArguments } = this;
3812
+ &nbsp;
3813
+ const isShowArgument = (arg?: Argument) =&gt; {
3814
+ return arg.expression || (arg.paramDefaultValue &amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >arg.paramTypeAnnotation)</span>;
3815
+ };
3816
+ &nbsp;
3817
+ const keywordProcessIndex = findConceptKeyWordIndexFromNamespace(calleeNamespace, 'processes');
3818
+ const isProcessLogic = keywordProcessIndex !== -1;
3819
+ const isFrontendLibrary = calleeNamespace.startsWith('extensions') &amp;&amp; calleeNamespace.indexOf('frontends');
3820
+ // calleeNamespace不存在,一定是页面逻辑
3821
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (calleeNamespace) {
3822
+ const namespaceArr = calleeNamespace.split('.');
3823
+ if (isComponentLogic) {
3824
+ const componentName = namespaceArr[1];
3825
+ const viewElement = this.view?.findElementByName(componentName);
3826
+ refName = viewElement?.refName ?? <span class="branch-1 cbranch-no" title="branch not covered" >componentName;</span>
3827
+ }
3828
+ if (isFrontendLibrary) {
3829
+ extensionName = namespaceArr[1];
3830
+ }
3831
+ }
3832
+ // 全局逻辑
3833
+ if (!isViewLogic) {
3834
+ const logic = this.getCallNode();
3835
+ const args = logic?.params || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
3836
+ const keywordEntitiesIndex = findConceptKeyWordIndexFromNamespace(this.calleeNamespace, 'entities');
3837
+ code += `this.$logics['${
3838
+ this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : <span class="branch-1 cbranch-no" title="branch not covered" >this.calleeName</span>
3839
+ }']`;
3840
+ code += `({
3841
+ config: {
3842
+ download: false,
3843
+ },
3844
+ query: {`;
3845
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (isProcessLogic) {
3846
+ const argsStr = <span class="cstat-no" title="statement not covered" >args</span>
3847
+ .map(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {
3848
+ const actualArg = <span class="cstat-no" title="statement not covered" >completeArguments[index];</span>
3849
+ <span class="cstat-no" title="statement not covered" > return {</span>
3850
+ keyword: arg?.name,
3851
+ arg: actualArg,
3852
+ };
3853
+ })
3854
+ .filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >isShowArgument(item.arg))</span>
3855
+ .map(<span class="fstat-no" title="function not covered" >(o</span>bj: any) =&gt; <span class="cstat-no" title="statement not covered" >`\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`)</span>
3856
+ .join(', ');
3857
+ <span class="cstat-no" title="statement not covered" > code += argsStr;</span>
3858
+ }
3859
+ code += `},
3860
+ headers: {
3861
+ "lcap-calllogic-uuid": "${this.uuid}",
3862
+ },
3863
+ `;
3864
+ &nbsp;
3865
+ if (keywordEntitiesIndex !== -1) {
3866
+ let logicArgs = this.arguments;
3867
+ let breakBody = false;
3868
+ switch (calleeName) {
3869
+ case 'get':
3870
+ case 'delete': {
3871
+ logicArgs = [];
3872
+ code += `query: {`;
3873
+ const argsStr = args
3874
+ .map((arg, index) =&gt; {
3875
+ const actualArg = this.arguments?.[index];
3876
+ return {
3877
+ keyword: arg?.name,
3878
+ arg: actualArg,
3879
+ };
3880
+ })
3881
+ .map((obj: any) =&gt; `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`)
3882
+ .join(', ');
3883
+ code += argsStr;
3884
+ code += `},\n`;
3885
+ break;
3886
+ }
3887
+ case 'update':
3888
+ case 'createOrUpdate':
3889
+ case 'batchUpdate': {
3890
+ code += `body: {\n`;
3891
+ const argsStr = logicArgs
3892
+ .map((arg) =&gt; {
3893
+ const name =
3894
+ arg.keyword === 'body' ? (this.calleeName === 'batchUpdate' ? <span class="branch-0 cbranch-no" title="branch not covered" >'entities' </span>: 'entity') : <span class="branch-1 cbranch-no" title="branch not covered" >arg.keyword;</span>
3895
+ return `${name}: ${arg.expression.toJS(shiftState(state, code))}`;
3896
+ })
3897
+ .join(',\n');
3898
+ code += argsStr;
3899
+ code += `},\n`;
3900
+ logicArgs = [];
3901
+ breakBody = true;
3902
+ break;
3903
+ }
3904
+ <span class="branch-5 cbranch-no" title="branch not covered" > case 'updateBy': {</span>
3905
+ <span class="cstat-no" title="statement not covered" > code += `body: {`;</span>
3906
+ const argsStr = <span class="cstat-no" title="statement not covered" >logicArgs</span>
3907
+ .map(<span class="fstat-no" title="function not covered" >(a</span>rg: any) =&gt; {
3908
+ const name = <span class="cstat-no" title="statement not covered" >arg.keyword === 'body' ? 'entity' : arg.keyword;</span>
3909
+ // filter回调函数
3910
+ <span class="cstat-no" title="statement not covered" > if (arg.expression.returnExpression) {</span>
3911
+ const argsStr = <span class="cstat-no" title="statement not covered" >JSON.stringify(handleMember(arg.expression.returnExpression)).replace(</span>
3912
+ /"__@@(.*?)@@__"/g,
3913
+ '$1',
3914
+ );
3915
+ <span class="cstat-no" title="statement not covered" > return `${name}: {</span>
3916
+ concept: 'Function',
3917
+ name: 'filter',
3918
+ returnExpression: this.$resolveRequestData(${argsStr})
3919
+ }`;
3920
+ }
3921
+ <span class="cstat-no" title="statement not covered" > return `${name}: ${arg.expression.toJS(shiftState(state, code))}`;</span>
3922
+ })
3923
+ .join(',');
3924
+ <span class="cstat-no" title="statement not covered" > code += argsStr;</span>
3925
+ <span class="cstat-no" title="statement not covered" > code += `},\n`;</span>
3926
+ <span class="cstat-no" title="statement not covered" > logicArgs = [];</span>
3927
+ <span class="cstat-no" title="statement not covered" > breakBody = true;</span>
3928
+ <span class="cstat-no" title="statement not covered" > break;</span>
3929
+ }
3930
+ <span class="branch-6 cbranch-no" title="branch not covered" > case 'deleteBy': {</span>
3931
+ <span class="cstat-no" title="statement not covered" > code += `body: `;</span>
3932
+ const argsStr = <span class="cstat-no" title="statement not covered" >JSON.stringify(handleMember((logicArgs[0].expression as any).returnExpression)).replace(</span>
3933
+ /"__@@(.*?)@@__"/g,
3934
+ '$1',
3935
+ );
3936
+ <span class="cstat-no" title="statement not covered" > code += `{</span>
3937
+ concept: 'Function',
3938
+ name: 'filter',
3939
+ returnExpression: this.$resolveRequestData(${argsStr})
3940
+ }`;
3941
+ <span class="cstat-no" title="statement not covered" > code += `,\n`;</span>
3942
+ <span class="cstat-no" title="statement not covered" > logicArgs = [];</span>
3943
+ <span class="cstat-no" title="statement not covered" > breakBody = true;</span>
3944
+ <span class="cstat-no" title="statement not covered" > break;</span>
3945
+ }
3946
+ }
3947
+ const bodyArgument = logicArgs.find(<span class="fstat-no" title="function not covered" >(a</span>rg) =&gt; <span class="cstat-no" title="statement not covered" >arg.keyword === 'body')</span>;
3948
+ if (!breakBody) {
3949
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (bodyArgument) {
3950
+ <span class="cstat-no" title="statement not covered" > code += `\n${bodyArgument?.keyword}: ${bodyArgument?.toJS(shiftState(state, code))}`;</span>
3951
+ } else {
3952
+ code += `body: {}`;
3953
+ }
3954
+ }
3955
+ } else {
3956
+ code += `path: {},
3957
+ body: {`;
3958
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!isProcessLogic) {
3959
+ const argsStr = args
3960
+ .map((arg, index) =&gt; {
3961
+ const actualArg = completeArguments[index];
3962
+ return {
3963
+ keyword: arg?.name,
3964
+ arg: actualArg,
3965
+ };
3966
+ })
3967
+ .filter((item) =&gt; isShowArgument(item.arg))
3968
+ .map((obj) =&gt; `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`)
3969
+ .join(', ');
3970
+ code += argsStr;
3971
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(typeArguments) &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >typeArguments.length)</span> {
3972
+ <span class="cstat-no" title="statement not covered" > code += `,\n__typeArguments: ${JSON5.stringify(this.typeArguments)}`;</span>
3973
+ }
3974
+ }
3975
+ code += '\n}';
3976
+ }
3977
+ code += '\n})';
3978
+ } else {
3979
+ if (isComponentLogic) {
3980
+ // 组件ref元素的对象没有qu dao的容错
3981
+ code += `this.$refs &amp;&amp; this.$refs[\`${refName}\`] &amp;&amp; this.$refs[\`${refName}\`].${this.calleeName} &amp;&amp; this.$refs[\`${refName}\`].${this.calleeName}`;
3982
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (calleeNamespace === 'nasl.ui' || calleeNamespace === 'nasl.util') {
3983
+ <span class="cstat-no" title="statement not covered" > switch (this.calleeName) {</span>
3984
+ case 'showMessage':
3985
+ <span class="cstat-no" title="statement not covered" > code += `this.$toast.show`;</span>
3986
+ <span class="cstat-no" title="statement not covered" > break;</span>
3987
+ case 'consoleLog':
3988
+ <span class="cstat-no" title="statement not covered" > code += `console.log`;</span>
3989
+ <span class="cstat-no" title="statement not covered" > break;</span>
3990
+ case 'jsonSerialize':
3991
+ <span class="cstat-no" title="statement not covered" > code += `JSON.stringify`;</span>
3992
+ <span class="cstat-no" title="statement not covered" > break;</span>
3993
+ case 'jsonDeserialize':
3994
+ <span class="cstat-no" title="statement not covered" > code += `JSON.parse`;</span>
3995
+ <span class="cstat-no" title="statement not covered" > break;</span>
3996
+ }
3997
+ } else if (
3998
+ calleeNamespace === 'nasl.browser' ||
3999
+ calleeNamespace === 'nasl.auth' ||
4000
+ calleeNamespace === 'nasl.configuration' ||
4001
+ calleeNamespace === 'nasl.process' ||
4002
+ calleeNamespace === 'nasl.io'
4003
+ ) {
4004
+ code += `this.$global.${this.calleeName}`;
4005
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (calleeNamespace === 'nasl.event') {
4006
+ <span class="cstat-no" title="statement not covered" > code += `event &amp;&amp; event.${this.calleeName} &amp;&amp; event.${this.calleeName}`; </span>// 防止万一event不存在
4007
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (isFrontendLibrary) {
4008
+ <span class="cstat-no" title="statement not covered" > code += `this.$library['${extensionName}'].${this.calleeName}`;</span>
4009
+ } else {
4010
+ code += `this.${this.calleeName}`;
4011
+ }
4012
+ if (calleeNamespace === 'nasl.process' || calleeNamespace === 'nasl.auth') {
4013
+ code += '({';
4014
+ this.arguments
4015
+ ?.filter(<span class="fstat-no" title="function not covered" >(a</span>rg) =&gt; <span class="cstat-no" title="statement not covered" >arg?.expression)</span>
4016
+ .forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {
4017
+ <span class="cstat-no" title="statement not covered" > code += `${arg.keyword}: ${arg?.toJS(shiftState(state, code))}`;</span>
4018
+ <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>
4019
+ });
4020
+ code += '})';
4021
+ } else {
4022
+ code += '(';
4023
+ const needToString = ['showMessage', 'consoleLog'].includes(this.calleeName);
4024
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (needToString) {
4025
+ <span class="cstat-no" title="statement not covered" > code += `this.$utils['ToString'](`;</span>
4026
+ }
4027
+ if (Array.isArray(completeArguments) &amp;&amp; completeArguments.length) {
4028
+ completeArguments.forEach((arg, index) =&gt; {
4029
+ code += arg?.toJS(shiftState(state, code));
4030
+ if (index !== completeArguments?.length - 1) code += ', ';
4031
+ });
4032
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (needToString) {
4033
+ const arg = <span class="cstat-no" title="statement not covered" >this.arguments[0];</span>
4034
+ const argTypeAnnotation = (<span class="cstat-no" title="statement not covered" >arg as any).typeAnnotation || arg.__TypeAnnotation;</span>
4035
+ <span class="cstat-no" title="statement not covered" > if (argTypeAnnotation) {</span>
4036
+ <span class="cstat-no" title="statement not covered" > code += `, '${argTypeAnnotation?.sortedTypeKey}'`;</span>
4037
+ }
4038
+ }
4039
+ }
4040
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (needToString) {
4041
+ <span class="cstat-no" title="statement not covered" > code += `)`;</span>
4042
+ }
4043
+ code += ')';
4044
+ }
4045
+ }
4046
+ &nbsp;
4047
+ function <span class="fstat-no" title="function not covered" >handleMember(</span>root: any): any {
4048
+ <span class="cstat-no" title="statement not covered" > if (!root) <span class="cstat-no" title="statement not covered" >return;</span></span>
4049
+ <span class="cstat-no" title="statement not covered" > if (root.concept === 'Identifier') {</span>
4050
+ <span class="cstat-no" title="statement not covered" > return {</span>
4051
+ concept: root.concept,
4052
+ name: root.name,
4053
+ value: `__@@${root.toJS()}@@__`,
4054
+ expression: root.toJS(),
4055
+ };
4056
+ }
4057
+ <span class="cstat-no" title="statement not covered" > if (root.concept === 'MemberExpression') {</span>
4058
+ let { concept } = <span class="cstat-no" title="statement not covered" >root;</span>
4059
+ let { value } = <span class="cstat-no" title="statement not covered" >root;</span>
4060
+ <span class="cstat-no" title="statement not covered" > if (root?.object.name === '_') {</span>
4061
+ <span class="cstat-no" title="statement not covered" > return {</span>
4062
+ concept,
4063
+ name: root.name,
4064
+ value,
4065
+ object: root.object,
4066
+ property: root.property,
4067
+ };
4068
+ }
4069
+ let expression = <span class="cstat-no" title="statement not covered" >root.toJS();</span>
4070
+ <span class="cstat-no" title="statement not covered" > if (root.object?.namespace === 'app.enums') {</span>
4071
+ <span class="cstat-no" title="statement not covered" > value = expression.replace(/^"(.+)"$/, '$1');</span>
4072
+ <span class="cstat-no" title="statement not covered" > expression = undefined;</span>
4073
+ <span class="cstat-no" title="statement not covered" > concept = 'StringLiteral';</span>
4074
+ } else {
4075
+ <span class="cstat-no" title="statement not covered" > value = `__@@${expression}@@__`;</span>
4076
+ }
4077
+ <span class="cstat-no" title="statement not covered" > return {</span>
4078
+ concept,
4079
+ name: root.name,
4080
+ value,
4081
+ expression,
4082
+ };
4083
+ }
4084
+ &nbsp;
4085
+ let left;
4086
+ <span class="cstat-no" title="statement not covered" > if (root.concept === 'UnaryExpression') {</span>
4087
+ <span class="cstat-no" title="statement not covered" > left = handleMember(root.argument);</span>
4088
+ } else {
4089
+ <span class="cstat-no" title="statement not covered" > left = handleMember(root.left);</span>
4090
+ }
4091
+ const right = <span class="cstat-no" title="statement not covered" >handleMember(root.right);</span>
4092
+ <span class="cstat-no" title="statement not covered" > return {</span>
4093
+ concept: root.concept,
4094
+ name: root.name,
4095
+ value: root.value,
4096
+ expression: root.expression,
4097
+ operator: root.operator,
4098
+ left,
4099
+ right,
4100
+ };
4101
+ }
4102
+ const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
4103
+ const needGenInitFromSchema =
4104
+ typeAnnotation &amp;&amp;
4105
+ (!['primitive', 'union'].includes(typeAnnotation.typeKind) || typeAnnotation.typeName === 'DateTime');
4106
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (needGenInitFromSchema) {
4107
+ <span class="cstat-no" title="statement not covered" > code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;</span>
4108
+ }
4109
+ code += ')';
4110
+ return code;
4111
+ }
4112
+ &nbsp;
4113
+ <span class="fstat-no" title="function not covered" > toBrief(</span>): string {
4114
+ <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>
4115
+ }
4116
+ &nbsp;
4117
+ get useValidation() {
4118
+ const { validation, rootNode } = this;
4119
+ &nbsp;
4120
+ return rootNode?.preferenceMap.serverValidationRules === 'custom' &amp;&amp; Boolean(validation);
4121
+ }
4122
+ &nbsp;
4123
+ get useIife() {
4124
+ return Boolean(this.handleError || this.useValidation);
4125
+ }
4126
+ &nbsp;
4127
+ @withSourceMap()
4128
+ toEmbeddedTS(state?: TranslatorState): string {
4129
+ let code = '';
4130
+ &nbsp;
4131
+ const {
4132
+ handleError,
4133
+ calleeKey,
4134
+ calleeName,
4135
+ parentKey,
4136
+ typeArguments,
4137
+ tsCalleeNamespace,
4138
+ completeArguments,
4139
+ parentNode,
4140
+ validation,
4141
+ useIife,
4142
+ useValidation,
4143
+ arguments: logicArgs,
4144
+ } = this;
4145
+ &nbsp;
4146
+ /** 设置函数范型参数 */
4147
+ const setTypeArguments = () =&gt; {
4148
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(typeArguments) &amp;&amp; typeArguments.length) {
4149
+ // 如果有内容
4150
+ <span class="cstat-no" title="statement not covered" > code += `&lt;`;</span>
4151
+ <span class="cstat-no" title="statement not covered" > typeArguments.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, i, arr) =&gt; {</span>
4152
+ <span class="cstat-no" title="statement not covered" > code += arg.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));</span>
4153
+ <span class="cstat-no" title="statement not covered" > if (i !== arr.length - 1) {</span>
4154
+ <span class="cstat-no" title="statement not covered" > code += ', ';</span>
4155
+ }
4156
+ });
4157
+ <span class="cstat-no" title="statement not covered" > code += `&gt;`;</span>
4158
+ }
4159
+ };
4160
+ /** 设置输入参数 */
4161
+ const setInputParam = () =&gt; {
4162
+ const paramRequired = ['showMessage', 'consoleLog'].includes(calleeName);
4163
+ if (
4164
+ (tsCalleeNamespace.startsWith('elements') &amp;&amp; tsCalleeNamespace.endsWith('logics')) ||
4165
+ tsCalleeNamespace.startsWith('nasl.')
4166
+ ) {
4167
+ code += '(';
4168
+ logicArgs.forEach((arg, index) =&gt; {
4169
+ // 页面逻辑先都非必填
4170
+ code += arg.toEmbeddedTS(shiftState(state, code), paramRequired);
4171
+ if (index !== logicArgs.length - 1) code += ', ';
4172
+ });
4173
+ code += ')';
4174
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>if (completeArguments.length) {
4175
+ if (
4176
+ ['expression'].includes(parentKey) &amp;&amp;
4177
+ this.getAncestor('BindAttribute')?.name === 'data-source' &amp;&amp;
4178
+ (state as any)?.noNeedParams
4179
+ ) {
4180
+ return;
4181
+ }
4182
+ code += '(';
4183
+ completeArguments.forEach((arg, index) =&gt; {
4184
+ // 取到是不是必填放入参数中
4185
+ code += arg.toEmbeddedTS(shiftState(state, code), arg?.paramRequired);
4186
+ if (index !== logicArgs.length - 1) code += ', ';
4187
+ });
4188
+ code += ')';
4189
+ } else {
4190
+ <span class="cstat-no" title="statement not covered" > if (</span>
4191
+ ['expression'].includes(parentKey) &amp;&amp;
4192
+ this.getAncestor('BindAttribute')?.name === 'data-source' &amp;&amp;
4193
+ (state as any)?.noNeedParams
4194
+ ) {
4195
+ <span class="cstat-no" title="statement not covered" > return;</span>
4196
+ }
4197
+ <span class="cstat-no" title="statement not covered" > if (completeArguments.length) {</span>
4198
+ <span class="cstat-no" title="statement not covered" > code += '(';</span>
4199
+ <span class="cstat-no" title="statement not covered" > completeArguments.forEach(<span class="fstat-no" title="function not covered" >(a</span>rg, index) =&gt; {</span>
4200
+ // 取到是不是必填放入参数中
4201
+ <span class="cstat-no" title="statement not covered" > code += arg.toEmbeddedTS(shiftState(state, code), arg?.paramRequired);</span>
4202
+ <span class="cstat-no" title="statement not covered" > if (index !== logicArgs.length - 1) <span class="cstat-no" title="statement not covered" >code += ', ';</span></span>
4203
+ });
4204
+ <span class="cstat-no" title="statement not covered" > code += ')';</span>
4205
+ } else {
4206
+ <span class="cstat-no" title="statement not covered" > code += '()';</span>
4207
+ }
4208
+ }
4209
+ };
4210
+ &nbsp;
4211
+ /** 设置表达式末尾分号 */
4212
+ const setEndSemi = () =&gt; {
4213
+ const { concept: parentConcept } = parentNode ?? {};
4214
+ if (
4215
+ !['test', 'patterns', 'returnExpression', 'expression'].includes(parentKey) &amp;&amp;
4216
+ ![
4217
+ 'Argument',
4218
+ 'Assignment',
4219
+ 'ForEachStatement',
4220
+ 'SelectMembers',
4221
+ 'UnaryExpression',
4222
+ 'BinaryExpression',
4223
+ 'StringInterpolation',
4224
+ 'MemberExpression',
4225
+ 'NewMap',
4226
+ 'NewList',
4227
+ ].includes(parentConcept)
4228
+ ) {
4229
+ code += ';';
4230
+ }
4231
+ };
4232
+ &nbsp;
4233
+ if (useIife) {
4234
+ code += '(() =&gt;{\nconst wrapper = ';
4235
+ &nbsp;
4236
+ if (handleError) {
4237
+ code += 'nasl.util.autoHandleError(';
4238
+ }
4239
+ &nbsp;
4240
+ if (useValidation) {
4241
+ code += 'nasl.util.callLogicWithChecker(';
4242
+ }
4243
+ &nbsp;
4244
+ code += calleeKey;
4245
+ setTypeArguments();
4246
+ &nbsp;
4247
+ if (useValidation) {
4248
+ code += ', (';
4249
+ code += completeArguments.map((item) =&gt; item.keyword).join(', ');
4250
+ code += ') =&gt; {\n';
4251
+ code += validation.toEmbeddedTS(shiftState(state, code));
4252
+ code += ';\n})';
4253
+ }
4254
+ &nbsp;
4255
+ if (handleError) {
4256
+ code += ')';
4257
+ }
4258
+ &nbsp;
4259
+ code += ';\nreturn wrapper';
4260
+ setInputParam();
4261
+ code += ';\n})()';
4262
+ } else {
4263
+ code += calleeKey;
4264
+ setTypeArguments();
4265
+ setInputParam();
4266
+ }
4267
+ &nbsp;
4268
+ setEndSemi();
4269
+ &nbsp;
4270
+ return code;
4271
+ }
4272
+ &nbsp;
4273
+ // 通过内容过去节点
4274
+ getCallNode(): Logic | undefined {
4275
+ let node;
4276
+ // 如果是页面局部逻辑
4277
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.calleeNamespace &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this.calleeName </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >this.view)</span> {
4278
+ <span class="cstat-no" title="statement not covered" > node = this.view.logics.find(<span class="fstat-no" title="function not covered" >(l</span>) =&gt; <span class="cstat-no" title="statement not covered" >l.name === this.calleeName)</span>;</span>
4279
+ } else if (this.calleeNamespace?.startsWith('nasl.')) {
4280
+ // 如果是页面组件
4281
+ node = getNaslNodeByNodeCallee(this.calleeNamespace, this.calleeName);
4282
+ } else {
4283
+ // 如果是其余app下自定义逻辑
4284
+ try {
4285
+ node = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: any, tempPoint: any) =&gt; {
4286
+ // 处理 NASL 中未定义的假的节点
4287
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (key === tempPoint.name) {
4288
+ <span class="cstat-no" title="statement not covered" > return {</span>
4289
+ tempPoint,
4290
+ state: 1,
4291
+ };
4292
+ }
4293
+ const t = tempPoint[key];
4294
+ return {
4295
+ tempPoint: t,
4296
+ state: Array.isArray(t) ? 2 : <span class="branch-1 cbranch-no" title="branch not covered" >1,</span>
4297
+ };
4298
+ });
4299
+ } catch (err) {}
4300
+ }
4301
+ return node;
4302
+ }
4303
+ &nbsp;
4304
+ /** 获取类型标注时的偏移量 */
4305
+ getQuickInfoOffset(detail: TSPPosition, code: string): TSPPosition {
4306
+ if (this.useIife) {
4307
+ const characterOffset = 8;
4308
+ const lines = code.split('\n');
4309
+ const lineOffset = lines.findIndex((item) =&gt; item.startsWith('return wrapper'));
4310
+ &nbsp;
4311
+ return {
4312
+ line: detail.line + lineOffset,
4313
+ offset: characterOffset,
4314
+ };
4315
+ } else {
4316
+ let indexOf = 0;
4317
+ &nbsp;
4318
+ // 没有括号,表示括号在外面
4319
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!code.includes('(')) {
4320
+ <span class="cstat-no" title="statement not covered" > indexOf = -1;</span>
4321
+ }
4322
+ // 有括号就找到括号的位置
4323
+ else {
4324
+ // 如果有泛型先往前找一找
4325
+ if (code.includes('&lt;')) {
4326
+ indexOf = Math.min(code.indexOf('&lt;'), code.indexOf('('));
4327
+ } else {
4328
+ indexOf = code.indexOf('(');
4329
+ }
4330
+ const subStr = code.substring(0, indexOf);
4331
+ const codeArr = subStr?.split('.');
4332
+ const lastLen = codeArr?.[codeArr.length - 1]?.length;
4333
+ indexOf = subStr.length - lastLen;
4334
+ }
4335
+ &nbsp;
4336
+ return {
4337
+ ...detail,
4338
+ offset: detail.offset + indexOf,
4339
+ };
4340
+ }
4341
+ }
4342
+ &nbsp;
4343
+ /**
4344
+ * 是否允许验证规则
4345
+ * - 当前元素在前端,但是调用的函数在后端
4346
+ */
4347
+ <span class="fstat-no" title="function not covered" > enableValidation(</span>) {
4348
+ const calledLogic = <span class="cstat-no" title="statement not covered" >this.getCallNode();</span>
4349
+ <span class="cstat-no" title="statement not covered" > return Boolean(this.view) &amp;&amp; calledLogic &amp;&amp; !calledLogic.view;</span>
4350
+ }
4351
+ &nbsp;
4352
+ // 可以设置默认值的节点
4353
+ // 目前只开放了app下的,所以这些节点,查找引用吧默认值塞回来
4354
+ get completeArguments() {
4355
+ const callArguments = (this.arguments ?? <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.slice();
4356
+ // 没有参数时可以跳过查询原逻辑标签
4357
+ const node = callArguments.length &gt; 0 ? this.getCallNode() : undefined;
4358
+ const logicParams = node?.params ?? [];
4359
+ &nbsp;
4360
+ callArguments.forEach((arg, index) =&gt; {
4361
+ const param = logicParams[index] || ({} as Param);
4362
+ // 打开了必填,
4363
+ // 或者遗留问题,没有required = undefined 而且没有defaultValue,就是之前的必填项
4364
+ arg.paramRequired = Boolean(param.required || (param.required === undefined &amp;&amp; !param.defaultValue));
4365
+ arg.paramTypeAnnotation = undefined;
4366
+ arg.paramDefaultValue = undefined;
4367
+ // 强制更新当前的 keyword
4368
+ arg.keyword = param?.name &amp;&amp; param.name.length &gt; 0 ? param.name : arg.keyword;
4369
+ // 取到是不是必填放入参数中
4370
+ if (param &amp;&amp; !arg.expression) {
4371
+ // 非必填时 才会有默认值
4372
+ arg.paramTypeAnnotation = param.typeAnnotation;
4373
+ arg.paramDefaultValue = param.defaultValue;
4374
+ }
4375
+ });
4376
+ &nbsp;
4377
+ return callArguments;
4378
+ }
4379
+ &nbsp;
4380
+ <span class="fstat-no" title="function not covered" > static </span>isSystem(node: CallLogic) {
4381
+ // 如此处需要更新,则需同时更新 menu-poppup 组件下的 includesSystemLogic 校验逻辑
4382
+ <span class="cstat-no" title="statement not covered" > return ['nasl.process', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.io'].includes(</span>
4383
+ node?.calleeNamespace,
4384
+ );
4385
+ }
4386
+ &nbsp;
4387
+ public static getDefaultOptions() {
4388
+ return {};
4389
+ }
4390
+ //================================================================================
4391
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
4392
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
4393
+ //================================================================================
4394
+ }
4395
+ &nbsp;
4396
+ export default CallLogic;
4397
+ //================================================================================
4398
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
4399
+ // 自动生成的代码已结束。下面可以手动编写。
4400
+ //================================================================================
4401
+ &nbsp;</pre></td></tr></table></pre>
4402
+
4403
+ <div class='push'></div><!-- for sticky footer -->
4404
+ </div><!-- /wrapper -->
4405
+ <div class='footer quiet pad2 space-top1 center small'>
4406
+ Code coverage generated by
4407
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
4408
+ at 2023-10-19T09:18:56.902Z
4409
+ </div>
4410
+ <script src="../../prettify.js"></script>
4411
+ <script>
4412
+ window.onload = function () {
4413
+ prettyPrint();
4414
+ };
4415
+ </script>
4416
+ <script src="../../sorter.js"></script>
4417
+ <script src="../../block-navigation.js"></script>
4418
+ </body>
4419
+ </html>
4420
+