@lcap/nasl 3.3.0-beta.2 → 3.3.2-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/.nyc_output/d58d92d8-c0d6-479b-9f82-1f4da8e73ff3.json +1 -0
  2. package/.nyc_output/processinfo/d58d92d8-c0d6-479b-9f82-1f4da8e73ff3.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 +461 -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 +622 -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 +1246 -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 +436 -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 +1297 -0
  29. package/coverage/src/breakpoint/shared/utils.ts.html +1087 -0
  30. package/coverage/src/breakpoint/store/core.ts.html +1600 -0
  31. package/coverage/src/breakpoint/store/dock.ts.html +733 -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 +3874 -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 +646 -0
  43. package/coverage/src/concepts/AnonymousFunction__.ts.html +2029 -0
  44. package/coverage/src/concepts/App__.ts.html +13252 -0
  45. package/coverage/src/concepts/Argument__.ts.html +964 -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 +1123 -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 +3301 -0
  56. package/coverage/src/concepts/BinaryExpression__.ts.html +1441 -0
  57. package/coverage/src/concepts/BindAttribute__.ts.html +3835 -0
  58. package/coverage/src/concepts/BindDirective__.ts.html +1921 -0
  59. package/coverage/src/concepts/BindEvent__.ts.html +3406 -0
  60. package/coverage/src/concepts/BindStyle__.ts.html +1612 -0
  61. package/coverage/src/concepts/BooleanLiteral__.ts.html +418 -0
  62. package/coverage/src/concepts/CallAuthInterface__.ts.html +1615 -0
  63. package/coverage/src/concepts/CallConnector__.ts.html +922 -0
  64. package/coverage/src/concepts/CallFunction__.ts.html +2122 -0
  65. package/coverage/src/concepts/CallInterface__.ts.html +2719 -0
  66. package/coverage/src/concepts/CallLogic__.ts.html +4807 -0
  67. package/coverage/src/concepts/CallQueryComponent__.ts.html +5308 -0
  68. package/coverage/src/concepts/Comment__.ts.html +394 -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 +2731 -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 +2668 -0
  84. package/coverage/src/concepts/Entity__.ts.html +2950 -0
  85. package/coverage/src/concepts/EnumItem__.ts.html +550 -0
  86. package/coverage/src/concepts/Enum__.ts.html +1231 -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 +1957 -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 +3598 -0
  94. package/coverage/src/concepts/Identifier__.ts.html +1057 -0
  95. package/coverage/src/concepts/IfStatement__.ts.html +1594 -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 +421 -0
  100. package/coverage/src/concepts/JavaLogic__.ts.html +460 -0
  101. package/coverage/src/concepts/LogicItem__.ts.html +1171 -0
  102. package/coverage/src/concepts/Logic__.ts.html +7408 -0
  103. package/coverage/src/concepts/MatchCase__.ts.html +2929 -0
  104. package/coverage/src/concepts/Match__.ts.html +2455 -0
  105. package/coverage/src/concepts/MemberExpression__.ts.html +1726 -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 +4729 -0
  112. package/coverage/src/concepts/NewList__.ts.html +1618 -0
  113. package/coverage/src/concepts/NewMap__.ts.html +2326 -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 +676 -0
  117. package/coverage/src/concepts/OqlQueryComponent__.ts.html +1141 -0
  118. package/coverage/src/concepts/OverriddenLogic__.ts.html +6817 -0
  119. package/coverage/src/concepts/Param__.ts.html +1726 -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 +1312 -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 +982 -0
  140. package/coverage/src/concepts/Start__.ts.html +304 -0
  141. package/coverage/src/concepts/StringInterpolation__.ts.html +1129 -0
  142. package/coverage/src/concepts/StringLiteral__.ts.html +505 -0
  143. package/coverage/src/concepts/StructureProperty__.ts.html +1132 -0
  144. package/coverage/src/concepts/Structure__.ts.html +2092 -0
  145. package/coverage/src/concepts/SwitchCase__.ts.html +1174 -0
  146. package/coverage/src/concepts/SwitchStatement__.ts.html +877 -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 +3718 -0
  152. package/coverage/src/concepts/TypeParam__.ts.html +319 -0
  153. package/coverage/src/concepts/UnaryExpression__.ts.html +697 -0
  154. package/coverage/src/concepts/Unparsed__.ts.html +394 -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 +1489 -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 +8803 -0
  161. package/coverage/src/concepts/View__.ts.html +8620 -0
  162. package/coverage/src/concepts/WhileStatement__.ts.html +1063 -0
  163. package/coverage/src/concepts/basics/stdlib/index.html +356 -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 +6844 -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/stdlib/timeZone.ts.html +664 -0
  181. package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
  182. package/coverage/src/concepts/basics/types/index.html +131 -0
  183. package/coverage/src/concepts/basics/types/index.ts.html +160 -0
  184. package/coverage/src/concepts/index.html +1961 -0
  185. package/coverage/src/concepts/index.ts.html +103 -0
  186. package/coverage/src/concepts/index__.ts.html +451 -0
  187. package/coverage/src/config.ts.html +325 -0
  188. package/coverage/src/decorators/index.html +131 -0
  189. package/coverage/src/decorators/index.ts.html +574 -0
  190. package/coverage/src/decorators/promise.ts.html +169 -0
  191. package/coverage/src/eventBus.ts.html +100 -0
  192. package/coverage/src/generator/compileComponent.ts.html +142 -0
  193. package/coverage/src/generator/genBundleFiles.ts.html +1828 -0
  194. package/coverage/src/generator/genHash.ts.html +124 -0
  195. package/coverage/src/generator/genMetaData.ts.html +1042 -0
  196. package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
  197. package/coverage/src/generator/icestark.ts.html +220 -0
  198. package/coverage/src/generator/index.html +266 -0
  199. package/coverage/src/generator/index.ts.html +106 -0
  200. package/coverage/src/generator/microApp.ts.html +172 -0
  201. package/coverage/src/generator/permission.ts.html +1036 -0
  202. package/coverage/src/generator/qiankun.ts.html +232 -0
  203. package/coverage/src/generator/styleReplacer.ts.html +199 -0
  204. package/coverage/src/index.html +146 -0
  205. package/coverage/src/index.ts.html +121 -0
  206. package/coverage/src/manager/diagnostic.ts.html +442 -0
  207. package/coverage/src/manager/index.html +131 -0
  208. package/coverage/src/manager/stepRecorder.ts.html +457 -0
  209. package/coverage/src/natural/genNaturalTS.ts.html +355 -0
  210. package/coverage/src/natural/index.html +161 -0
  211. package/coverage/src/natural/index.ts.html +91 -0
  212. package/coverage/src/natural/naslStdlibMap.ts.html +157 -0
  213. package/coverage/src/natural/transformTSCode.ts.html +2647 -0
  214. package/coverage/src/sentry/index.html +116 -0
  215. package/coverage/src/sentry/index.ts.html +676 -0
  216. package/coverage/src/server/createUiTs.ts.html +910 -0
  217. package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
  218. package/coverage/src/server/event.js.html +526 -0
  219. package/coverage/src/server/extendBaseNode.ts.html +1762 -0
  220. package/coverage/src/server/formatTsUtils.ts.html +2689 -0
  221. package/coverage/src/server/getConnector.ts.html +316 -0
  222. package/coverage/src/server/getExtensionModules.ts.html +178 -0
  223. package/coverage/src/server/getFunctions.ts.html +133 -0
  224. package/coverage/src/server/getInterfaces.ts.html +229 -0
  225. package/coverage/src/server/getLogging.ts.html +100 -0
  226. package/coverage/src/server/getLogics.ts.html +1363 -0
  227. package/coverage/src/server/getMemberIdentifier.ts.html +1561 -0
  228. package/coverage/src/server/getProcessComponents.ts.html +112 -0
  229. package/coverage/src/server/getProcesses.ts.html +2023 -0
  230. package/coverage/src/server/getValidates.ts.html +115 -0
  231. package/coverage/src/server/index.html +401 -0
  232. package/coverage/src/server/index.ts.html +229 -0
  233. package/coverage/src/server/naslServer.ts.html +14401 -0
  234. package/coverage/src/server/naslStdlibMap.ts.html +241 -0
  235. package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
  236. package/coverage/src/server/translator.ts.html +2566 -0
  237. package/coverage/src/service/creator/add.configs.js.html +379 -0
  238. package/coverage/src/service/creator/errHandles.js.html +322 -0
  239. package/coverage/src/service/creator/index.html +146 -0
  240. package/coverage/src/service/creator/index.js.html +352 -0
  241. package/coverage/src/service/datasource/api.js.html +118 -0
  242. package/coverage/src/service/datasource/index.html +131 -0
  243. package/coverage/src/service/datasource/index.js.html +103 -0
  244. package/coverage/src/service/logic/api.js.html +109 -0
  245. package/coverage/src/service/logic/index.html +131 -0
  246. package/coverage/src/service/logic/index.js.html +103 -0
  247. package/coverage/src/service/storage/api.js.html +202 -0
  248. package/coverage/src/service/storage/index.html +206 -0
  249. package/coverage/src/service/storage/index.ts.html +103 -0
  250. package/coverage/src/service/storage/init.ts.html +2761 -0
  251. package/coverage/src/service/storage/jsoner.ts.html +502 -0
  252. package/coverage/src/service/storage/map.ts.html +256 -0
  253. package/coverage/src/service/storage/service.ts.html +331 -0
  254. package/coverage/src/service/storage/storagePoint.ts.html +304 -0
  255. package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
  256. package/coverage/src/templator/genCreateBlock.ts.html +1093 -0
  257. package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
  258. package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2254 -0
  259. package/coverage/src/templator/genEditTableBlock.ts.html +955 -0
  260. package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
  261. package/coverage/src/templator/genGetBlock.ts.html +451 -0
  262. package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
  263. package/coverage/src/templator/genListViewBlock.ts.html +475 -0
  264. package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
  265. package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
  266. package/coverage/src/templator/genTableBlock.ts.html +910 -0
  267. package/coverage/src/templator/genUpdateBlock.ts.html +1192 -0
  268. package/coverage/src/templator/index.html +326 -0
  269. package/coverage/src/templator/index.ts.html +154 -0
  270. package/coverage/src/templator/utils.ts.html +1861 -0
  271. package/coverage/src/translator/constant.ts.html +106 -0
  272. package/coverage/src/translator/index.html +146 -0
  273. package/coverage/src/translator/index.ts.html +94 -0
  274. package/coverage/src/translator/utils.ts.html +436 -0
  275. package/coverage/src/utils/cookie.ts.html +265 -0
  276. package/coverage/src/utils/env.ts.html +91 -0
  277. package/coverage/src/utils/index.html +236 -0
  278. package/coverage/src/utils/index.ts.html +655 -0
  279. package/coverage/src/utils/logger.ts.html +145 -0
  280. package/coverage/src/utils/sortTsString.ts.html +187 -0
  281. package/coverage/src/utils/string.ts.html +400 -0
  282. package/coverage/src/utils/time-slicing.ts.html +418 -0
  283. package/coverage/src/utils/traverse.ts.html +568 -0
  284. package/coverage/src/utils/window.ts.html +112 -0
  285. package/out/bak/translator.js +16 -18
  286. package/out/bak/translator.js.map +1 -1
  287. package/out/breakpoint/generator/BreakpointNode.js +1 -0
  288. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  289. package/out/breakpoint/shared/constants.d.ts +2 -0
  290. package/out/breakpoint/shared/constants.js +3 -1
  291. package/out/breakpoint/shared/constants.js.map +1 -1
  292. package/out/breakpoint/shared/socket.d.ts +1 -0
  293. package/out/breakpoint/shared/socket.js +35 -17
  294. package/out/breakpoint/shared/socket.js.map +1 -1
  295. package/out/breakpoint/shared/utils.js +33 -1
  296. package/out/breakpoint/shared/utils.js.map +1 -1
  297. package/out/breakpoint/store/core.d.ts +2 -0
  298. package/out/breakpoint/store/core.js +5 -3
  299. package/out/breakpoint/store/core.js.map +1 -1
  300. package/out/breakpoint/store/dock.js +33 -0
  301. package/out/breakpoint/store/dock.js.map +1 -1
  302. package/out/concepts/AuthLogicForCallInterface__.js +2 -1
  303. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  304. package/out/concepts/BinaryExpression__.js +5 -5
  305. package/out/concepts/BinaryExpression__.js.map +1 -1
  306. package/out/concepts/BindAttribute__.js +3 -3
  307. package/out/concepts/BindAttribute__.js.map +1 -1
  308. package/out/concepts/CallConnector__.d.ts +2 -0
  309. package/out/concepts/CallConnector__.js +17 -1
  310. package/out/concepts/CallConnector__.js.map +1 -1
  311. package/out/concepts/CallFunction__.js +31 -24
  312. package/out/concepts/CallFunction__.js.map +1 -1
  313. package/out/concepts/CallLogic__.js +53 -46
  314. package/out/concepts/CallLogic__.js.map +1 -1
  315. package/out/concepts/Connection__.js +1 -1
  316. package/out/concepts/Connection__.js.map +1 -1
  317. package/out/concepts/ForEachStatement__.d.ts +1 -20
  318. package/out/concepts/ForEachStatement__.js +16 -14
  319. package/out/concepts/ForEachStatement__.js.map +1 -1
  320. package/out/concepts/IfStatement__.js +24 -25
  321. package/out/concepts/IfStatement__.js.map +1 -1
  322. package/out/concepts/Logic__.js +8 -20
  323. package/out/concepts/Logic__.js.map +1 -1
  324. package/out/concepts/MatchCase__.js +12 -7
  325. package/out/concepts/MatchCase__.js.map +1 -1
  326. package/out/concepts/MemberExpression__.js +11 -14
  327. package/out/concepts/MemberExpression__.js.map +1 -1
  328. package/out/concepts/NewComposite__.d.ts +1 -1
  329. package/out/concepts/NewComposite__.js +11 -83
  330. package/out/concepts/NewComposite__.js.map +1 -1
  331. package/out/concepts/NewList__.js +11 -9
  332. package/out/concepts/NewList__.js.map +1 -1
  333. package/out/concepts/NewMap__.d.ts +1 -1
  334. package/out/concepts/NewMap__.js +12 -4
  335. package/out/concepts/NewMap__.js.map +1 -1
  336. package/out/concepts/New__.js +3 -1
  337. package/out/concepts/New__.js.map +1 -1
  338. package/out/concepts/StringInterpolation__.js +2 -2
  339. package/out/concepts/StringInterpolation__.js.map +1 -1
  340. package/out/concepts/SwitchCase__.js +8 -4
  341. package/out/concepts/SwitchCase__.js.map +1 -1
  342. package/out/concepts/ViewElement__.d.ts +4 -2
  343. package/out/concepts/ViewElement__.js +7 -21
  344. package/out/concepts/ViewElement__.js.map +1 -1
  345. package/out/concepts/WhileStatement__.js +6 -4
  346. package/out/concepts/WhileStatement__.js.map +1 -1
  347. package/out/concepts/basics/stdlib/nasl.browser.js +19 -3
  348. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  349. package/out/concepts/basics/stdlib/nasl.util.d.ts +2 -0
  350. package/out/concepts/basics/stdlib/nasl.util.js +36 -11
  351. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  352. package/out/concepts/basics/stdlib/timeZone.d.ts +5 -0
  353. package/out/concepts/basics/stdlib/timeZone.js +196 -0
  354. package/out/concepts/basics/stdlib/timeZone.js.map +1 -0
  355. package/out/generator/genBundleFiles.js +12 -4
  356. package/out/generator/genBundleFiles.js.map +1 -1
  357. package/out/generator/genReleaseBody.js +1 -1
  358. package/out/generator/genReleaseBody.js.map +1 -1
  359. package/out/natural/genNaturalTS.d.ts +2 -2
  360. package/out/natural/genNaturalTS.js +5 -5
  361. package/out/natural/genNaturalTS.js.map +1 -1
  362. package/out/natural/transformTSCode.js +18 -3
  363. package/out/natural/transformTSCode.js.map +1 -1
  364. package/out/server/createUiTs.js +3 -0
  365. package/out/server/createUiTs.js.map +1 -1
  366. package/out/server/getLogics.js +3 -1
  367. package/out/server/getLogics.js.map +1 -1
  368. package/out/server/getMemberIdentifier.js +15 -0
  369. package/out/server/getMemberIdentifier.js.map +1 -1
  370. package/out/server/naslServer.js +35 -9
  371. package/out/server/naslServer.js.map +1 -1
  372. package/out/service/creator/errHandles.js +10 -19
  373. package/out/service/creator/errHandles.js.map +1 -1
  374. package/out/service/storage/init.js +7 -2
  375. package/out/service/storage/init.js.map +1 -1
  376. package/out/service/storage/jsoner.js +1 -3
  377. package/out/service/storage/jsoner.js.map +1 -1
  378. package/out/templator/genEditTableBlock.js +24 -2
  379. package/out/templator/genEditTableBlock.js.map +1 -1
  380. package/out/templator/genTableBlock.js +22 -1
  381. package/out/templator/genTableBlock.js.map +1 -1
  382. package/out/translator/types.d.ts +1 -0
  383. package/out/translator/utils.js +13 -0
  384. package/out/translator/utils.js.map +1 -1
  385. package/package.json +2 -2
  386. package/sandbox/stdlib/nasl.browser.ts +2 -0
  387. package/sandbox/stdlib/nasl.ui.definition.ts +2220 -2218
  388. package/sandbox/stdlib/nasl.util.ts +20 -10
  389. package/sandbox-natural/stdlib/nasl.core.ts +6 -3
  390. package/sandbox-natural/stdlib/nasl.oql.ts +6 -0
  391. package/sandbox-natural/stdlib/nasl.util.ts +1 -1
  392. package/src/bak/translator.js +16 -17
  393. package/src/breakpoint/generator/BreakpointNode.ts +1 -0
  394. package/src/breakpoint/shared/constants.ts +2 -0
  395. package/src/breakpoint/shared/socket.ts +41 -17
  396. package/src/breakpoint/shared/utils.ts +43 -1
  397. package/src/breakpoint/store/core.ts +2 -2
  398. package/src/breakpoint/store/dock.ts +50 -0
  399. package/src/breakpoint/types/index.d.ts +1 -0
  400. package/src/concepts/AuthLogicForCallInterface__.ts +2 -1
  401. package/src/concepts/BinaryExpression__.ts +6 -6
  402. package/src/concepts/BindAttribute__.ts +5 -4
  403. package/src/concepts/CallConnector__.ts +19 -1
  404. package/src/concepts/CallFunction__.ts +40 -22
  405. package/src/concepts/CallLogic__.ts +39 -32
  406. package/src/concepts/Connection__.ts +1 -1
  407. package/src/concepts/ForEachStatement__.ts +17 -15
  408. package/src/concepts/IfStatement__.ts +30 -30
  409. package/src/concepts/Logic__.ts +13 -27
  410. package/src/concepts/MatchCase__.ts +15 -7
  411. package/src/concepts/MemberExpression__.ts +11 -14
  412. package/src/concepts/NewComposite__.ts +15 -83
  413. package/src/concepts/NewList__.ts +11 -9
  414. package/src/concepts/NewMap__.ts +12 -4
  415. package/src/concepts/New__.ts +1 -0
  416. package/src/concepts/StringInterpolation__.ts +2 -2
  417. package/src/concepts/SwitchCase__.ts +9 -5
  418. package/src/concepts/ViewElement__.ts +8 -22
  419. package/src/concepts/WhileStatement__.ts +7 -5
  420. package/src/concepts/basics/stdlib/nasl.browser.ts +19 -3
  421. package/src/concepts/basics/stdlib/nasl.util.ts +38 -19
  422. package/src/concepts/basics/stdlib/timeZone.ts +193 -0
  423. package/src/generator/genBundleFiles.ts +12 -4
  424. package/src/generator/genReleaseBody.ts +1 -1
  425. package/src/natural/genNaturalTS.ts +5 -5
  426. package/src/natural/transformTSCode.ts +18 -4
  427. package/src/server/createUiTs.ts +3 -0
  428. package/src/server/getLogics.ts +3 -1
  429. package/src/server/getMemberIdentifier.ts +15 -0
  430. package/src/server/naslServer.ts +126 -83
  431. package/src/service/creator/errHandles.js +10 -16
  432. package/src/service/storage/init.ts +10 -3
  433. package/src/service/storage/jsoner.ts +2 -2
  434. package/src/templator/genEditTableBlock.ts +24 -2
  435. package/src/templator/genTableBlock.ts +22 -1
  436. package/src/translator/types.ts +1 -0
  437. package/src/translator/utils.ts +15 -0
  438. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +20 -20
  439. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +1 -1
  440. package/test/concepts/member-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +1 -1
  441. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +10 -10
@@ -0,0 +1,1561 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/server/getMemberIdentifier.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/server</a> getMemberIdentifier.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">6.28% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>13/207</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/93</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/34</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">6.5% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>13/200</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-yes">1x</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-yes">1x</span>
579
+ <span class="cline-any cline-no">&nbsp;</span>
580
+ <span class="cline-any cline-no">&nbsp;</span>
581
+ <span class="cline-any cline-no">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-no">&nbsp;</span>
591
+ <span class="cline-any cline-no">&nbsp;</span>
592
+ <span class="cline-any cline-no">&nbsp;</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-no">&nbsp;</span>
597
+ <span class="cline-any cline-no">&nbsp;</span>
598
+ <span class="cline-any cline-no">&nbsp;</span>
599
+ <span class="cline-any cline-no">&nbsp;</span>
600
+ <span class="cline-any cline-no">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-no">&nbsp;</span>
603
+ <span class="cline-any cline-no">&nbsp;</span>
604
+ <span class="cline-any cline-no">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-no">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-no">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-no">&nbsp;</span>
645
+ <span class="cline-any cline-no">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-no">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-no">&nbsp;</span>
652
+ <span class="cline-any cline-no">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-neutral">&nbsp;</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-no">&nbsp;</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-no">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-neutral">&nbsp;</span>
692
+ <span class="cline-any cline-no">&nbsp;</span>
693
+ <span class="cline-any cline-no">&nbsp;</span>
694
+ <span class="cline-any cline-no">&nbsp;</span>
695
+ <span class="cline-any cline-no">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-neutral">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-no">&nbsp;</span>
700
+ <span class="cline-any cline-no">&nbsp;</span>
701
+ <span class="cline-any cline-no">&nbsp;</span>
702
+ <span class="cline-any cline-no">&nbsp;</span>
703
+ <span class="cline-any cline-no">&nbsp;</span>
704
+ <span class="cline-any cline-no">&nbsp;</span>
705
+ <span class="cline-any cline-no">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-no">&nbsp;</span>
710
+ <span class="cline-any cline-no">&nbsp;</span>
711
+ <span class="cline-any cline-no">&nbsp;</span>
712
+ <span class="cline-any cline-no">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-no">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-no">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-no">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-no">&nbsp;</span>
733
+ <span class="cline-any cline-neutral">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-no">&nbsp;</span>
739
+ <span class="cline-any cline-no">&nbsp;</span>
740
+ <span class="cline-any cline-no">&nbsp;</span>
741
+ <span class="cline-any cline-no">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-no">&nbsp;</span>
746
+ <span class="cline-any cline-no">&nbsp;</span>
747
+ <span class="cline-any cline-no">&nbsp;</span>
748
+ <span class="cline-any cline-no">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-no">&nbsp;</span>
751
+ <span class="cline-any cline-neutral">&nbsp;</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-yes">1x</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-no">&nbsp;</span>
758
+ <span class="cline-any cline-no">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-no">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-no">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-no">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
+ <span class="cline-any cline-no">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-no">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-no">&nbsp;</span>
786
+ <span class="cline-any cline-no">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-no">&nbsp;</span>
789
+ <span class="cline-any cline-no">&nbsp;</span>
790
+ <span class="cline-any cline-no">&nbsp;</span>
791
+ <span class="cline-any cline-neutral">&nbsp;</span>
792
+ <span class="cline-any cline-no">&nbsp;</span>
793
+ <span class="cline-any cline-no">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-no">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-yes">1x</span>
801
+ <span class="cline-any cline-no">&nbsp;</span>
802
+ <span class="cline-any cline-no">&nbsp;</span>
803
+ <span class="cline-any cline-no">&nbsp;</span>
804
+ <span class="cline-any cline-no">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-yes">1x</span>
809
+ <span class="cline-any cline-no">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-yes">1x</span>
814
+ <span class="cline-any cline-no">&nbsp;</span>
815
+ <span class="cline-any cline-no">&nbsp;</span>
816
+ <span class="cline-any cline-no">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-no">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
820
+ <span class="cline-any cline-no">&nbsp;</span>
821
+ <span class="cline-any cline-no">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-no">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-neutral">&nbsp;</span>
830
+ <span class="cline-any cline-yes">1x</span>
831
+ <span class="cline-any cline-no">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
833
+ <span class="cline-any cline-no">&nbsp;</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-no">&nbsp;</span>
836
+ <span class="cline-any cline-neutral">&nbsp;</span>
837
+ <span class="cline-any cline-neutral">&nbsp;</span>
838
+ <span class="cline-any cline-yes">1x</span>
839
+ <span class="cline-any cline-no">&nbsp;</span>
840
+ <span class="cline-any cline-neutral">&nbsp;</span>
841
+ <span class="cline-any cline-no">&nbsp;</span>
842
+ <span class="cline-any cline-no">&nbsp;</span>
843
+ <span class="cline-any cline-no">&nbsp;</span>
844
+ <span class="cline-any cline-no">&nbsp;</span>
845
+ <span class="cline-any cline-no">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-no">&nbsp;</span>
848
+ <span class="cline-any cline-no">&nbsp;</span>
849
+ <span class="cline-any cline-no">&nbsp;</span>
850
+ <span class="cline-any cline-no">&nbsp;</span>
851
+ <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-no">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-neutral">&nbsp;</span>
855
+ <span class="cline-any cline-no">&nbsp;</span>
856
+ <span class="cline-any cline-no">&nbsp;</span>
857
+ <span class="cline-any cline-neutral">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-neutral">&nbsp;</span>
860
+ <span class="cline-any cline-yes">1x</span>
861
+ <span class="cline-any cline-no">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-no">&nbsp;</span>
864
+ <span class="cline-any cline-no">&nbsp;</span>
865
+ <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-no">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-yes">1x</span>
871
+ <span class="cline-any cline-no">&nbsp;</span>
872
+ <span class="cline-any cline-no">&nbsp;</span>
873
+ <span class="cline-any cline-no">&nbsp;</span>
874
+ <span class="cline-any cline-no">&nbsp;</span>
875
+ <span class="cline-any cline-no">&nbsp;</span>
876
+ <span class="cline-any cline-no">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-no">&nbsp;</span>
880
+ <span class="cline-any cline-no">&nbsp;</span>
881
+ <span class="cline-any cline-no">&nbsp;</span>
882
+ <span class="cline-any cline-no">&nbsp;</span>
883
+ <span class="cline-any cline-no">&nbsp;</span>
884
+ <span class="cline-any cline-neutral">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-neutral">&nbsp;</span>
887
+ <span class="cline-any cline-neutral">&nbsp;</span>
888
+ <span class="cline-any cline-yes">1x</span>
889
+ <span class="cline-any cline-no">&nbsp;</span>
890
+ <span class="cline-any cline-no">&nbsp;</span>
891
+ <span class="cline-any cline-no">&nbsp;</span>
892
+ <span class="cline-any cline-no">&nbsp;</span>
893
+ <span class="cline-any cline-no">&nbsp;</span>
894
+ <span class="cline-any cline-no">&nbsp;</span>
895
+ <span class="cline-any cline-neutral">&nbsp;</span>
896
+ <span class="cline-any cline-no">&nbsp;</span>
897
+ <span class="cline-any cline-no">&nbsp;</span>
898
+ <span class="cline-any cline-no">&nbsp;</span>
899
+ <span class="cline-any cline-no">&nbsp;</span>
900
+ <span class="cline-any cline-no">&nbsp;</span>
901
+ <span class="cline-any cline-no">&nbsp;</span>
902
+ <span class="cline-any cline-no">&nbsp;</span>
903
+ <span class="cline-any cline-no">&nbsp;</span>
904
+ <span class="cline-any cline-neutral">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-neutral">&nbsp;</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-neutral">&nbsp;</span>
911
+ <span class="cline-any cline-no">&nbsp;</span>
912
+ <span class="cline-any cline-neutral">&nbsp;</span>
913
+ <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-no">&nbsp;</span>
915
+ <span class="cline-any cline-no">&nbsp;</span>
916
+ <span class="cline-any cline-no">&nbsp;</span>
917
+ <span class="cline-any cline-no">&nbsp;</span>
918
+ <span class="cline-any cline-neutral">&nbsp;</span>
919
+ <span class="cline-any cline-neutral">&nbsp;</span>
920
+ <span class="cline-any cline-neutral">&nbsp;</span>
921
+ <span class="cline-any cline-neutral">&nbsp;</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-neutral">&nbsp;</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-no">&nbsp;</span>
927
+ <span class="cline-any cline-no">&nbsp;</span>
928
+ <span class="cline-any cline-no">&nbsp;</span>
929
+ <span class="cline-any cline-no">&nbsp;</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-neutral">&nbsp;</span>
935
+ <span class="cline-any cline-no">&nbsp;</span>
936
+ <span class="cline-any cline-no">&nbsp;</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
938
+ <span class="cline-any cline-no">&nbsp;</span>
939
+ <span class="cline-any cline-neutral">&nbsp;</span>
940
+ <span class="cline-any cline-neutral">&nbsp;</span>
941
+ <span class="cline-any cline-neutral">&nbsp;</span>
942
+ <span class="cline-any cline-neutral">&nbsp;</span>
943
+ <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-neutral">&nbsp;</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-neutral">&nbsp;</span>
947
+ <span class="cline-any cline-neutral">&nbsp;</span>
948
+ <span class="cline-any cline-neutral">&nbsp;</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-no">&nbsp;</span>
951
+ <span class="cline-any cline-no">&nbsp;</span>
952
+ <span class="cline-any cline-no">&nbsp;</span>
953
+ <span class="cline-any cline-no">&nbsp;</span>
954
+ <span class="cline-any cline-neutral">&nbsp;</span>
955
+ <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-no">&nbsp;</span>
957
+ <span class="cline-any cline-no">&nbsp;</span>
958
+ <span class="cline-any cline-neutral">&nbsp;</span>
959
+ <span class="cline-any cline-neutral">&nbsp;</span>
960
+ <span class="cline-any cline-neutral">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-neutral">&nbsp;</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
964
+ <span class="cline-any cline-neutral">&nbsp;</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-neutral">&nbsp;</span>
968
+ <span class="cline-any cline-no">&nbsp;</span>
969
+ <span class="cline-any cline-no">&nbsp;</span>
970
+ <span class="cline-any cline-no">&nbsp;</span>
971
+ <span class="cline-any cline-no">&nbsp;</span>
972
+ <span class="cline-any cline-no">&nbsp;</span>
973
+ <span class="cline-any cline-no">&nbsp;</span>
974
+ <span class="cline-any cline-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&nbsp;</span>
976
+ <span class="cline-any cline-neutral">&nbsp;</span>
977
+ <span class="cline-any cline-neutral">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-neutral">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-no">&nbsp;</span>
985
+ <span class="cline-any cline-no">&nbsp;</span>
986
+ <span class="cline-any cline-no">&nbsp;</span>
987
+ <span class="cline-any cline-no">&nbsp;</span>
988
+ <span class="cline-any cline-no">&nbsp;</span>
989
+ <span class="cline-any cline-neutral">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-neutral">&nbsp;</span>
995
+ <span class="cline-any cline-neutral">&nbsp;</span>
996
+ <span class="cline-any cline-neutral">&nbsp;</span>
997
+ <span class="cline-any cline-neutral">&nbsp;</span>
998
+ <span class="cline-any cline-neutral">&nbsp;</span>
999
+ <span class="cline-any cline-no">&nbsp;</span>
1000
+ <span class="cline-any cline-no">&nbsp;</span>
1001
+ <span class="cline-any cline-no">&nbsp;</span>
1002
+ <span class="cline-any cline-no">&nbsp;</span>
1003
+ <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-no">&nbsp;</span>
1005
+ <span class="cline-any cline-no">&nbsp;</span>
1006
+ <span class="cline-any cline-no">&nbsp;</span>
1007
+ <span class="cline-any cline-no">&nbsp;</span>
1008
+ <span class="cline-any cline-neutral">&nbsp;</span>
1009
+ <span class="cline-any cline-no">&nbsp;</span>
1010
+ <span class="cline-any cline-neutral">&nbsp;</span>
1011
+ <span class="cline-any cline-neutral">&nbsp;</span>
1012
+ <span class="cline-any cline-no">&nbsp;</span>
1013
+ <span class="cline-any cline-no">&nbsp;</span>
1014
+ <span class="cline-any cline-neutral">&nbsp;</span>
1015
+ <span class="cline-any cline-neutral">&nbsp;</span>
1016
+ <span class="cline-any cline-neutral">&nbsp;</span>
1017
+ <span class="cline-any cline-neutral">&nbsp;</span>
1018
+ <span class="cline-any cline-yes">1x</span>
1019
+ <span class="cline-any cline-no">&nbsp;</span>
1020
+ <span class="cline-any cline-no">&nbsp;</span>
1021
+ <span class="cline-any cline-no">&nbsp;</span>
1022
+ <span class="cline-any cline-no">&nbsp;</span>
1023
+ <span class="cline-any cline-no">&nbsp;</span>
1024
+ <span class="cline-any cline-no">&nbsp;</span>
1025
+ <span class="cline-any cline-no">&nbsp;</span>
1026
+ <span class="cline-any cline-neutral">&nbsp;</span>
1027
+ <span class="cline-any cline-neutral">&nbsp;</span>
1028
+ <span class="cline-any cline-neutral">&nbsp;</span>
1029
+ <span class="cline-any cline-no">&nbsp;</span>
1030
+ <span class="cline-any cline-no">&nbsp;</span>
1031
+ <span class="cline-any cline-no">&nbsp;</span>
1032
+ <span class="cline-any cline-no">&nbsp;</span>
1033
+ <span class="cline-any cline-no">&nbsp;</span>
1034
+ <span class="cline-any cline-neutral">&nbsp;</span>
1035
+ <span class="cline-any cline-no">&nbsp;</span>
1036
+ <span class="cline-any cline-neutral">&nbsp;</span>
1037
+ <span class="cline-any cline-neutral">&nbsp;</span>
1038
+ <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-no">&nbsp;</span>
1041
+ <span class="cline-any cline-no">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&nbsp;</span>
1043
+ <span class="cline-any cline-no">&nbsp;</span>
1044
+ <span class="cline-any cline-no">&nbsp;</span>
1045
+ <span class="cline-any cline-neutral">&nbsp;</span>
1046
+ <span class="cline-any cline-no">&nbsp;</span>
1047
+ <span class="cline-any cline-neutral">&nbsp;</span>
1048
+ <span class="cline-any cline-neutral">&nbsp;</span>
1049
+ <span class="cline-any cline-neutral">&nbsp;</span>
1050
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
1051
+ BaseNode,
1052
+ CompletionProperty,
1053
+ App,
1054
+ Identifier,
1055
+ MemberExpression,
1056
+ Enum,
1057
+ NullLiteral,
1058
+ BooleanLiteral,
1059
+ BindAttribute,
1060
+ LogicItem,
1061
+ Frontend,
1062
+ View,
1063
+ SynatxNode,
1064
+ ViewElement,
1065
+ PAGE_COMPONENT_INCLUDE_TAG_MAP,
1066
+ } from '..';
1067
+ import { formatVariableData, formatFrontEndVariables, formatConfigProperties, formatBackendVariables } from './formatTsUtils';
1068
+ &nbsp;
1069
+ // 简单实现一版本的格式化nums
1070
+ export function <span class="fstat-no" title="function not covered" >formatEnums(</span>enums: Array&lt;Enum&gt;) {
1071
+ const result = <span class="cstat-no" title="statement not covered" >enums.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {</span>
1072
+ const namespace = <span class="cstat-no" title="statement not covered" >item.getNamespace();</span>
1073
+ const newItem: any = <span class="cstat-no" title="statement not covered" >{</span>
1074
+ name: item.name,
1075
+ value: item.name,
1076
+ expression: new Identifier({
1077
+ name: item.name,
1078
+ namespace,
1079
+ }),
1080
+ children: [],
1081
+ };
1082
+ <span class="cstat-no" title="statement not covered" > newItem.children = item.enumItems.map(<span class="fstat-no" title="function not covered" >(e</span>numItem) =&gt; {</span>
1083
+ const newEnumItem: any = <span class="cstat-no" title="statement not covered" >{ ...enumItem };</span>
1084
+ <span class="cstat-no" title="statement not covered" > newEnumItem.expression = new MemberExpression({</span>
1085
+ object: newItem.expression,
1086
+ property: new Identifier({ name: newEnumItem.value }),
1087
+ });
1088
+ <span class="cstat-no" title="statement not covered" > newEnumItem.name = `${newEnumItem.value}(${newEnumItem.label})`;</span>
1089
+ <span class="cstat-no" title="statement not covered" > newEnumItem.value = `${newItem.value}.${newEnumItem.value}`;</span>
1090
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(newEnumItem);</span>
1091
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'enumItem';</span>
1092
+ <span class="cstat-no" title="statement not covered" > return completionProperty;</span>
1093
+ });
1094
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(newItem);</span>
1095
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'enum';</span>
1096
+ <span class="cstat-no" title="statement not covered" > return completionProperty;</span>
1097
+ });
1098
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1099
+ }
1100
+ &nbsp;
1101
+ type LiteralDefination = {
1102
+ name: string;
1103
+ value: string;
1104
+ expression?: Identifier;
1105
+ };
1106
+ function <span class="fstat-no" title="function not covered" >formatLiterals(</span>) {
1107
+ // const list: Array&lt;LiteralDefination&gt; = [
1108
+ // { name: 'null', value: 'null' },
1109
+ // { name: 'true', value: 'true' },
1110
+ // { name: 'false', value: 'false' },
1111
+ // ];
1112
+ // const newList = list.map((item) =&gt; {
1113
+ // item.expression = new Identifier({ name: item.name });
1114
+ // const completionProperty = new CompletionProperty(item);
1115
+ // completionProperty.icon = 'literal';
1116
+ // return completionProperty;
1117
+ // });
1118
+ // return newList;
1119
+ const list = <span class="cstat-no" title="statement not covered" >[</span>
1120
+ new CompletionProperty({
1121
+ name: 'null',
1122
+ value: 'null',
1123
+ expression: new NullLiteral(),
1124
+ }),
1125
+ new CompletionProperty({
1126
+ name: 'true',
1127
+ value: 'true',
1128
+ expression: new BooleanLiteral({ value: 'true' }),
1129
+ }),
1130
+ new CompletionProperty({
1131
+ name: 'false',
1132
+ value: 'false',
1133
+ expression: new BooleanLiteral({ value: 'false' }),
1134
+ }),
1135
+ ];
1136
+ <span class="cstat-no" title="statement not covered" > list.forEach(<span class="fstat-no" title="function not covered" >(l</span>) =&gt; {</span>
1137
+ <span class="cstat-no" title="statement not covered" > l.icon = 'literal';</span>
1138
+ });
1139
+ <span class="cstat-no" title="statement not covered" > return list;</span>
1140
+ }
1141
+ &nbsp;
1142
+ function <span class="fstat-no" title="function not covered" >formatGlobalVariable(</span>) {
1143
+ const newList = <span class="cstat-no" title="statement not covered" >[];</span>
1144
+ const globalVariable = <span class="cstat-no" title="statement not covered" >{</span>
1145
+ name: 'userInfo',
1146
+ value: 'userInfo',
1147
+ children: [
1148
+ { name: 'Status', value: 'userInfo.Status' },
1149
+ {
1150
+ name: 'UserInfoExtend',
1151
+ value: 'userInfo.UserInfoExtend',
1152
+ children: [
1153
+ { name: 'Company', value: 'userInfo.UserInfoExtend.Company' },
1154
+ { name: 'JobLevel', value: 'userInfo.UserInfoExtend.JobLevel' },
1155
+ { name: 'JobNum', value: 'userInfo.UserInfoExtend.JobNum' },
1156
+ { name: 'JobYear', value: 'userInfo.UserInfoExtend.JobYear' },
1157
+ { name: 'RealName', value: 'userInfo.UserInfoExtend.RealName' },
1158
+ { name: 'NickName', value: 'userInfo.UserInfoExtend.NickName' },
1159
+ { name: 'NameAndEmail', value: 'userInfo.UserInfoExtend.NameAndEmail' },
1160
+ { name: 'Position', value: 'userInfo.UserInfoExtend.Position' },
1161
+ { name: 'Department', value: 'userInfo.UserInfoExtend.Department' },
1162
+ { name: 'EmployeeId', value: 'userInfo.UserInfoExtend.EmployeeId' },
1163
+ ],
1164
+ },
1165
+ { name: 'UserName', value: 'userInfo.UserName' },
1166
+ { name: 'Email', value: 'userInfo.Email' },
1167
+ { name: 'UserId', value: 'userInfo.UserId' },
1168
+ { name: 'Phone', value: 'userInfo.Phone' },
1169
+ { name: 'CreateTime', value: 'userInfo.CreateTime' },
1170
+ { name: 'UpdateTime', value: 'userInfo.UpdateTime' },
1171
+ { name: 'LoginCount', value: 'userInfo.LoginCount' },
1172
+ { name: 'Source', value: 'userInfo.Source' },
1173
+ ],
1174
+ };
1175
+ const userInfoIdentifier = <span class="cstat-no" title="statement not covered" >new Identifier({</span>
1176
+ name: 'userInfo',
1177
+ namespace: 'nasl.auth',
1178
+ });
1179
+ const userCompletionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty({</span>
1180
+ name: 'userInfo',
1181
+ expression: userInfoIdentifier,
1182
+ children: [],
1183
+ });
1184
+ <span class="cstat-no" title="statement not covered" > userCompletionProperty.icon = 'frontendVariable';</span>
1185
+ <span class="cstat-no" title="statement not covered" > newList.push(userCompletionProperty);</span>
1186
+ <span class="cstat-no" title="statement not covered" > globalVariable.children.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {</span>
1187
+ const expression = <span class="cstat-no" title="statement not covered" >new MemberExpression({</span>
1188
+ object: userInfoIdentifier,
1189
+ property: new Identifier({ name: item.name }),
1190
+ });
1191
+ (<span class="cstat-no" title="statement not covered" >item as any).expression = expression;</span>
1192
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(item as any);</span>
1193
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'literal';</span>
1194
+ <span class="cstat-no" title="statement not covered" > if (item.children) {</span>
1195
+ const children: LogicItem[] = <span class="cstat-no" title="statement not covered" >[];</span>
1196
+ <span class="cstat-no" title="statement not covered" > item.children.forEach(<span class="fstat-no" title="function not covered" >(c</span>hild) =&gt; {</span>
1197
+ const childExpression = <span class="cstat-no" title="statement not covered" >new MemberExpression({</span>
1198
+ object: expression,
1199
+ property: new Identifier({ name: child.name }),
1200
+ });
1201
+ (<span class="cstat-no" title="statement not covered" >child as any).expression = childExpression;</span>
1202
+ const childProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(child as any);</span>
1203
+ <span class="cstat-no" title="statement not covered" > childProperty.icon = 'literal';</span>
1204
+ <span class="cstat-no" title="statement not covered" > children.push(childProperty as any);</span>
1205
+ });
1206
+ <span class="cstat-no" title="statement not covered" > completionProperty.children = children as unknown as Array&lt;CompletionProperty&gt;;</span>
1207
+ }
1208
+ <span class="cstat-no" title="statement not covered" > userCompletionProperty.children.push(completionProperty as any);</span>
1209
+ });
1210
+ <span class="cstat-no" title="statement not covered" > return newList;</span>
1211
+ }
1212
+ &nbsp;
1213
+ // 获取当前可选的逻辑
1214
+ function <span class="fstat-no" title="function not covered" >getCurrentLogic(</span>
1215
+ node: BaseNode,
1216
+ result: {
1217
+ name: string;
1218
+ children: CompletionProperty[];
1219
+ expanded: boolean;
1220
+ icon: string;
1221
+ }[]
1222
+ ) {
1223
+ // 只有data-source check-file可以
1224
+ <span class="cstat-no" title="statement not covered" > if (</span>
1225
+ (node instanceof BindAttribute &amp;&amp; (node.name === 'data-source' || node.name === 'check-file')) ||
1226
+ (node instanceof Identifier &amp;&amp;
1227
+ node.parentNode instanceof BindAttribute &amp;&amp;
1228
+ (node.parentNode.name === 'data-source' || node.parentNode.name === 'check-file'))
1229
+ ) {
1230
+ const { view } = <span class="cstat-no" title="statement not covered" >node;</span>
1231
+ const viewLogics = <span class="cstat-no" title="statement not covered" >view.logics;</span>
1232
+ const logicVariable = <span class="cstat-no" title="statement not covered" >viewLogics.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {</span>
1233
+ const newLogic: LiteralDefination = <span class="cstat-no" title="statement not covered" >{</span>
1234
+ name: item.name,
1235
+ value: item.name,
1236
+ };
1237
+ <span class="cstat-no" title="statement not covered" > newLogic.expression = new Identifier({ name: item.name });</span>
1238
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(newLogic);</span>
1239
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'logic';</span>
1240
+ <span class="cstat-no" title="statement not covered" > return completionProperty;</span>
1241
+ });
1242
+ <span class="cstat-no" title="statement not covered" > result.push({ name: '逻辑', children: logicVariable, expanded: false, icon: 'category' });</span>
1243
+ }
1244
+ }
1245
+ &nbsp;
1246
+ export async function <span class="fstat-no" title="function not covered" >getMemberIdentifier(</span>node: SynatxNode) {
1247
+ <span class="cstat-no" title="statement not covered" > if (node) {</span>
1248
+ // 获取字面量
1249
+ const literals = <span class="cstat-no" title="statement not covered" >getLiteralsIdentifier();</span>
1250
+ <span class="cstat-no" title="statement not covered" > if (node.getAncestor('CallQueryComponent')) <span class="cstat-no" title="statement not covered" >literals.shift(); </span></span>// 去除 null
1251
+ // 获取枚举
1252
+ const newEnums = <span class="cstat-no" title="statement not covered" >getEnumsIdentifier(node);</span>
1253
+ &nbsp;
1254
+ // extensionModules(state) {
1255
+ // return state.app?.dependencies?.filter((module) =&gt; module.type === 'extension') || {};
1256
+ // },
1257
+ &nbsp;
1258
+ // 如果之前有选好的值就需要的把之前那一列的内容渲染出来
1259
+ // 先去获取
1260
+ &nbsp;
1261
+ // 获取变量
1262
+ const completionData = <span class="cstat-no" title="statement not covered" >await getVariableIdentifier(node);</span>
1263
+ // 获取公共变量
1264
+ const globalVariable: CompletionProperty[] = <span class="cstat-no" title="statement not covered" >await getGlobalVariableIdentifier(node);</span>
1265
+ &nbsp;
1266
+ // 这个可能需要自己算一下
1267
+ const result = <span class="cstat-no" title="statement not covered" >[</span>
1268
+ { name: '常量', children: literals, expanded: true, icon: 'category' },
1269
+ { name: '枚举', children: newEnums, expanded: false, icon: 'category' },
1270
+ { name: '变量', children: completionData, expanded: true, icon: 'category' },
1271
+ { name: '公共变量', children: globalVariable, expanded: false, icon: 'category' },
1272
+ // { name: '服务端全局变量', children: BackEndglobalVariable, expanded: false, icon: 'category' },
1273
+ // { name: '流程变量', children: [] },
1274
+ ];
1275
+ <span class="cstat-no" title="statement not covered" > if ((node as Identifier).view || (node as Identifier).frontend) {</span>
1276
+ // 获取前端全局变量
1277
+ const frontEndVariable = <span class="cstat-no" title="statement not covered" >getFrontEndVariablesIdentifier((node as Identifier).view || (node as Identifier).frontend);</span>
1278
+ <span class="cstat-no" title="statement not covered" > result.push({ name: '前端全局变量', children: frontEndVariable, expanded: true, icon: 'category' });</span>
1279
+ // 获取页面组件
1280
+ const pageComponents = <span class="cstat-no" title="statement not covered" >await getPageComponentsIdentifier(node);</span>
1281
+ <span class="cstat-no" title="statement not covered" > result.push({ name: '页面组件', children: pageComponents, expanded: true, icon: 'category' });</span>
1282
+ } else <span class="cstat-no" title="statement not covered" >if (!(node as Identifier).frontend) {</span>
1283
+ // 端事件里既不能调用前端变量 也不能调用后端变量
1284
+ const BackEndglobalVariable = <span class="cstat-no" title="statement not covered" >getBackendVariablesIdentifier(node);</span>
1285
+ <span class="cstat-no" title="statement not covered" > result.push({ name: '服务端全局变量', children: BackEndglobalVariable, expanded: true, icon: 'category' });</span>
1286
+ }
1287
+ <span class="cstat-no" title="statement not covered" > getCurrentLogic(node, result);</span>
1288
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1289
+ }
1290
+ }
1291
+ &nbsp;
1292
+ export function <span class="fstat-no" title="function not covered" >getFrontEndVariablesIdentifier(</span>node: BaseNode) {
1293
+ const frontend = ((<span class="cstat-no" title="statement not covered" >node as View).frontend as Frontend) || (node as Frontend);</span>
1294
+ const frontEndVariables = <span class="cstat-no" title="statement not covered" >frontend?.variables;</span>
1295
+ const newFrontEndVariables = <span class="cstat-no" title="statement not covered" >frontEndVariables ? formatFrontEndVariables(frontEndVariables) : [];</span>
1296
+ <span class="cstat-no" title="statement not covered" > return newFrontEndVariables;</span>
1297
+ }
1298
+ &nbsp;
1299
+ // 获取字面量
1300
+ export function <span class="fstat-no" title="function not covered" >getLiteralsIdentifier(</span>): CompletionProperty[] {
1301
+ <span class="cstat-no" title="statement not covered" > return formatLiterals();</span>
1302
+ }
1303
+ &nbsp;
1304
+ // 获取枚举
1305
+ export function <span class="fstat-no" title="function not covered" >getEnumsIdentifier(</span>node: BaseNode): CompletionProperty[] {
1306
+ const app = <span class="cstat-no" title="statement not covered" >node.rootNode as App;</span>
1307
+ const enums = <span class="cstat-no" title="statement not covered" >app?.enums;</span>
1308
+ const newEnums = <span class="cstat-no" title="statement not covered" >enums ? formatEnums(enums) : [];</span>
1309
+ // 添加依赖库的枚举选择
1310
+ const modules = <span class="cstat-no" title="statement not covered" >app?.dependencies?.filter(<span class="fstat-no" title="function not covered" >(m</span>odule) =&gt; <span class="cstat-no" title="statement not covered" >module.type === 'extension')</span> || [];</span>
1311
+ const extensionEnums: any[] = <span class="cstat-no" title="statement not covered" >[];</span>
1312
+ <span class="cstat-no" title="statement not covered" > modules.forEach(<span class="fstat-no" title="function not covered" >(m</span>odule) =&gt; {</span>
1313
+ <span class="cstat-no" title="statement not covered" > extensionEnums.push({</span>
1314
+ name: module.name,
1315
+ concept: 'Module',
1316
+ children: formatEnums(module.enums),
1317
+ });
1318
+ });
1319
+ <span class="cstat-no" title="statement not covered" > return newEnums.concat(extensionEnums);</span>
1320
+ }
1321
+ // 获取后端全局变量
1322
+ export function <span class="fstat-no" title="function not covered" >getBackendVariablesIdentifier(</span>node: BaseNode): CompletionProperty[] {
1323
+ const app = <span class="cstat-no" title="statement not covered" >node.rootNode as App;</span>
1324
+ const variables = <span class="cstat-no" title="statement not covered" >app?.backend?.variables;</span>
1325
+ const newvariables = <span class="cstat-no" title="statement not covered" >variables ? formatBackendVariables(variables) : [];</span>
1326
+ &nbsp;
1327
+ <span class="cstat-no" title="statement not covered" > return newvariables;</span>
1328
+ }
1329
+ // 获取变量
1330
+ export async function <span class="fstat-no" title="function not covered" >getVariableIdentifier(</span>node: SynatxNode): Promise&lt;CompletionProperty[]&gt; {
1331
+ let completionData: CompletionProperty[] = <span class="cstat-no" title="statement not covered" >[new CompletionProperty({})];</span>
1332
+ // 只获取第一层内容
1333
+ const app = <span class="cstat-no" title="statement not covered" >node.getAncestor('App');</span>
1334
+ const { naslServer } = <span class="cstat-no" title="statement not covered" >app as any;</span>
1335
+ let nextCompletion = <span class="cstat-no" title="statement not covered" >await naslServer.getFieldKeySelectCompletion(node, '');</span>
1336
+ const logic = <span class="cstat-no" title="statement not covered" >node.getAncestor('AuthLogicForCallInterface');</span>
1337
+ <span class="cstat-no" title="statement not covered" > if (logic) {</span>
1338
+ // 祖先节点是 AuthLogicForCallInterface 时,需要过滤掉 api 以及 ${logicName}Result 两个内置参数
1339
+ const filterList = <span class="cstat-no" title="statement not covered" >['api', `${logic.name}Result`];</span>
1340
+ <span class="cstat-no" title="statement not covered" > nextCompletion = nextCompletion?.filter(<span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
1341
+ <span class="cstat-no" title="statement not covered" > if (item?.text) {</span>
1342
+ <span class="cstat-no" title="statement not covered" > return filterList.findIndex(<span class="fstat-no" title="function not covered" >(s</span>tr) =&gt; <span class="cstat-no" title="statement not covered" >str === item.text)</span> === -1;</span>
1343
+ }
1344
+ <span class="cstat-no" title="statement not covered" > return true;</span>
1345
+ });
1346
+ }
1347
+ <span class="cstat-no" title="statement not covered" > completionData = formatVariableData(nextCompletion, node);</span>
1348
+ <span class="cstat-no" title="statement not covered" > return completionData;</span>
1349
+ }
1350
+ &nbsp;
1351
+ // 获取公共变量
1352
+ export async function <span class="fstat-no" title="function not covered" >getGlobalVariableIdentifier(</span>node: BaseNode): Promise&lt;CompletionProperty[]&gt; {
1353
+ let globalVariable: CompletionProperty[] = <span class="cstat-no" title="statement not covered" >[];</span>
1354
+ // 公共变量修改
1355
+ <span class="cstat-no" title="statement not covered" > if ((node as any).view) {</span>
1356
+ <span class="cstat-no" title="statement not covered" > globalVariable = formatGlobalVariable();</span>
1357
+ // globalVariable = [];
1358
+ }
1359
+ <span class="cstat-no" title="statement not covered" > return globalVariable;</span>
1360
+ }
1361
+ &nbsp;
1362
+ export async function <span class="fstat-no" title="function not covered" >getSelectNextCompletionData(</span>node: Identifier, completionProperty?: CompletionProperty) {
1363
+ <span class="cstat-no" title="statement not covered" > if (node) {</span>
1364
+ let fieldKey: string = <span class="cstat-no" title="statement not covered" >'';</span>
1365
+ <span class="cstat-no" title="statement not covered" > if (completionProperty) {</span>
1366
+ const exp = <span class="cstat-no" title="statement not covered" >BaseNode.from(completionProperty.expression);</span>
1367
+ const value = (<span class="cstat-no" title="statement not covered" >exp as Identifier).getValue();</span>
1368
+ <span class="cstat-no" title="statement not covered" > fieldKey = value;</span>
1369
+ }
1370
+ &nbsp;
1371
+ const app = <span class="cstat-no" title="statement not covered" >node.getAncestor('App');</span>
1372
+ const { naslServer } = <span class="cstat-no" title="statement not covered" >app as any;</span>
1373
+ const nextCompletion = <span class="cstat-no" title="statement not covered" >naslServer &amp;&amp; (await naslServer.getFieldKeySelectCompletion(node, fieldKey));</span>
1374
+ const completionData = <span class="cstat-no" title="statement not covered" >formatVariableData(nextCompletion, node, completionProperty);</span>
1375
+ <span class="cstat-no" title="statement not covered" > return completionData;</span>
1376
+ }
1377
+ }
1378
+ &nbsp;
1379
+ // 获取枚举
1380
+ export function <span class="fstat-no" title="function not covered" >getConfigsIdentifier(</span>node: BaseNode): CompletionProperty[] {
1381
+ const app = <span class="cstat-no" title="statement not covered" >node.rootNode as App;</span>
1382
+ const groups = <span class="cstat-no" title="statement not covered" >app?.configuration.groups;</span>
1383
+ const customGroup = <span class="cstat-no" title="statement not covered" >groups.find(<span class="fstat-no" title="function not covered" >(g</span>roup) =&gt; <span class="cstat-no" title="statement not covered" >group.name === 'custom')</span>;</span>
1384
+ const properties = <span class="cstat-no" title="statement not covered" >customGroup ? customGroup.properties : [];</span>
1385
+ const isView = <span class="cstat-no" title="statement not covered" >!!(node as Identifier).view;</span>
1386
+ const newProperties = <span class="cstat-no" title="statement not covered" >formatConfigProperties(properties, isView);</span>
1387
+ // 添加依赖库的枚举选择
1388
+ const modules = <span class="cstat-no" title="statement not covered" >app?.dependencies?.filter(<span class="fstat-no" title="function not covered" >(m</span>odule) =&gt; <span class="cstat-no" title="statement not covered" >module.type === 'extension')</span> || [];</span>
1389
+ const extensionConfigProperties: any[] = <span class="cstat-no" title="statement not covered" >[];</span>
1390
+ <span class="cstat-no" title="statement not covered" > modules.forEach(<span class="fstat-no" title="function not covered" >(m</span>odule) =&gt; {</span>
1391
+ const groups = <span class="cstat-no" title="statement not covered" >module?.configuration?.groups || [];</span>
1392
+ const customGroup = <span class="cstat-no" title="statement not covered" >groups.find(<span class="fstat-no" title="function not covered" >(g</span>roup) =&gt; <span class="cstat-no" title="statement not covered" >group.name === 'custom')</span>;</span>
1393
+ const properties = <span class="cstat-no" title="statement not covered" >customGroup ? customGroup.properties : [];</span>
1394
+ <span class="cstat-no" title="statement not covered" > if (properties.length) {</span>
1395
+ <span class="cstat-no" title="statement not covered" > extensionConfigProperties.push({</span>
1396
+ name: module.name,
1397
+ concept: 'Module',
1398
+ icon: 'depend-dataSource',
1399
+ children: formatConfigProperties(properties, isView),
1400
+ });
1401
+ }
1402
+ });
1403
+ <span class="cstat-no" title="statement not covered" > return newProperties.concat(extensionConfigProperties);</span>
1404
+ }
1405
+ function <span class="fstat-no" title="function not covered" >flatElements(</span>elements: ViewElement[], componentList: CompletionProperty[], nodeParentElement: string, currentAttriBute: string) {
1406
+ <span class="cstat-no" title="statement not covered" > elements?.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {</span>
1407
+ <span class="cstat-no" title="statement not covered" > if (PAGE_COMPONENT_INCLUDE_TAG_MAP?.[item.tag]) {</span>
1408
+ const current = <span class="cstat-no" title="statement not covered" >item.name === nodeParentElement</span>
1409
+ const stashItem: any = <span class="cstat-no" title="statement not covered" >{</span>
1410
+ name: `${item.name}${current ? '(当前组件)' : ''}`,
1411
+ value: item.name,
1412
+ expression: new Identifier({
1413
+ name: current ? '当前组件' : item.name,
1414
+ namespace: `elements.${current ? '$ce' : item.name}.property`
1415
+ }),
1416
+ children: [],
1417
+ };
1418
+ const attrsList = <span class="cstat-no" title="statement not covered" >item.bindAttrs.filter(<span class="fstat-no" title="function not covered" >(a</span>ttr) =&gt; {</span>
1419
+ <span class="cstat-no" title="statement not covered" > if (PAGE_COMPONENT_INCLUDE_TAG_MAP[item.tag]?.[attr.name]) {</span>
1420
+ <span class="cstat-no" title="statement not covered" > if (current &amp;&amp; attr.name === currentAttriBute) {</span>
1421
+ <span class="cstat-no" title="statement not covered" > return false</span>
1422
+ } else {
1423
+ <span class="cstat-no" title="statement not covered" > return true</span>
1424
+ }
1425
+ }
1426
+ })
1427
+ <span class="cstat-no" title="statement not covered" > attrsList.forEach(<span class="fstat-no" title="function not covered" >(a</span>ttr) =&gt; {</span>
1428
+ const currentAttrInfo = <span class="cstat-no" title="statement not covered" >PAGE_COMPONENT_INCLUDE_TAG_MAP[ item.tag]?.[attr.name]</span>
1429
+ <span class="cstat-no" title="statement not covered" > if (attr.name !== 'sorting') {</span>
1430
+ const stashAttr: any = <span class="cstat-no" title="statement not covered" >{</span>
1431
+ ...attr,
1432
+ name: attr.name,
1433
+ value: `${item.name}.${attr.name}`,
1434
+ expression: new MemberExpression({
1435
+ object: stashItem.expression,
1436
+ property: new Identifier({
1437
+ name: currentAttrInfo.value,
1438
+ namespace: attr.name
1439
+ }),
1440
+ }),
1441
+ };
1442
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(stashAttr);</span>
1443
+ <span class="cstat-no" title="statement not covered" > completionProperty.name = currentAttrInfo ? `${currentAttrInfo.value}(${currentAttrInfo.label})` : attr.name;</span>
1444
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'attr'</span>
1445
+ <span class="cstat-no" title="statement not covered" > stashItem.children.push(completionProperty)</span>
1446
+ }
1447
+ })
1448
+ <span class="cstat-no" title="statement not covered" > if (['u-select', 'van-pickerson'].includes(item.tag)) {</span>
1449
+ const pageAttr: any = <span class="cstat-no" title="statement not covered" >{</span>
1450
+ name: 'page-number',
1451
+ value: `${item.name}.page-number`,
1452
+ expression: new MemberExpression({
1453
+ object: stashItem.expression,
1454
+ property: new Identifier({
1455
+ name: 'page',
1456
+ namespace: 'page-number'
1457
+ }),
1458
+ }),
1459
+ };
1460
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(pageAttr);</span>
1461
+ <span class="cstat-no" title="statement not covered" > completionProperty.name = 'page(当前页数)';</span>
1462
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'attr'</span>
1463
+ <span class="cstat-no" title="statement not covered" > stashItem.children.push(completionProperty)</span>
1464
+ } else <span class="cstat-no" title="statement not covered" >if (['u-list-view', 'u-grid-view', 'u-table-view', 'van-list-view', 'van-grid-view'].includes(item.tag)) {</span>
1465
+ const sortAttr: any = <span class="cstat-no" title="statement not covered" >{</span>
1466
+ name: 'sort',
1467
+ value: `${item.name}.sort`,
1468
+ expression: new MemberExpression({
1469
+ object: stashItem.expression,
1470
+ property: new Identifier({
1471
+ name: 'sort',
1472
+ namespace: 'sorting.field'
1473
+ }),
1474
+ }),
1475
+ };
1476
+ const sortCompletionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(sortAttr);</span>
1477
+ <span class="cstat-no" title="statement not covered" > sortCompletionProperty.name = 'sort(排序属性)';</span>
1478
+ <span class="cstat-no" title="statement not covered" > sortCompletionProperty.icon = 'attr'</span>
1479
+ <span class="cstat-no" title="statement not covered" > stashItem.children.push(sortCompletionProperty)</span>
1480
+ const orderAttr: any = <span class="cstat-no" title="statement not covered" >{</span>
1481
+ name: 'order',
1482
+ value: `${item.name}.order`,
1483
+ expression: new MemberExpression({
1484
+ object: stashItem.expression,
1485
+ property: new Identifier({
1486
+ name: 'order',
1487
+ namespace: 'sorting.order'
1488
+ }),
1489
+ }),
1490
+ };
1491
+ const orderCompletionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(orderAttr);</span>
1492
+ <span class="cstat-no" title="statement not covered" > orderCompletionProperty.name = 'order(排序顺序)';</span>
1493
+ <span class="cstat-no" title="statement not covered" > orderCompletionProperty.icon = 'attr'</span>
1494
+ <span class="cstat-no" title="statement not covered" > stashItem.children.push(orderCompletionProperty)</span>
1495
+ }
1496
+ const completionProperty = <span class="cstat-no" title="statement not covered" >new CompletionProperty(stashItem);</span>
1497
+ <span class="cstat-no" title="statement not covered" > completionProperty.icon = 'element';</span>
1498
+ <span class="cstat-no" title="statement not covered" > if (current) {</span>
1499
+ <span class="cstat-no" title="statement not covered" > componentList.unshift(completionProperty)</span>
1500
+ } else {
1501
+ <span class="cstat-no" title="statement not covered" > componentList.push(completionProperty)</span>
1502
+ }
1503
+ }
1504
+ <span class="cstat-no" title="statement not covered" > if (item.children.length &gt; 0) {</span>
1505
+ <span class="cstat-no" title="statement not covered" > flatElements(item.children, componentList, nodeParentElement, currentAttriBute)</span>
1506
+ }
1507
+ })
1508
+ }
1509
+ // 获取页面组件
1510
+ export function <span class="fstat-no" title="function not covered" >getPageComponentsIdentifier(</span>node: SynatxNode): CompletionProperty[] {
1511
+ const { fileNode } = <span class="cstat-no" title="statement not covered" >node.getCurrentSource();</span>
1512
+ const stashElements = (<span class="cstat-no" title="statement not covered" >fileNode as View).elements;</span>
1513
+ const componentList: CompletionProperty[] = <span class="cstat-no" title="statement not covered" >[]</span>
1514
+ const nodeParentElement = <span class="cstat-no" title="statement not covered" >getCurrentElement(node)?.name</span>
1515
+ const currentAttriBute = <span class="cstat-no" title="statement not covered" >getCurrentAttriBute(node)?.name</span>
1516
+ <span class="cstat-no" title="statement not covered" > flatElements(stashElements, componentList, nodeParentElement, currentAttriBute)</span>
1517
+ <span class="cstat-no" title="statement not covered" > return componentList</span>
1518
+ }
1519
+ &nbsp;
1520
+ function <span class="fstat-no" title="function not covered" >getCurrentElement(</span>item: any): ViewElement | undefined {
1521
+ <span class="cstat-no" title="statement not covered" > if (!item?.parentNode) <span class="cstat-no" title="statement not covered" >return undefined</span></span>
1522
+ <span class="cstat-no" title="statement not covered" > if (item.parentNode?.concept === 'ViewElement') {</span>
1523
+ <span class="cstat-no" title="statement not covered" > return item.parentNode</span>
1524
+ } else <span class="cstat-no" title="statement not covered" >if (item.parentNode?.concept === 'View') {</span>
1525
+ <span class="cstat-no" title="statement not covered" > return undefined</span>
1526
+ } else {
1527
+ <span class="cstat-no" title="statement not covered" > return getCurrentElement(item.parentNode)</span>
1528
+ }
1529
+ }
1530
+ &nbsp;
1531
+ function <span class="fstat-no" title="function not covered" >getCurrentAttriBute(</span>item: any): BindAttribute | undefined {
1532
+ <span class="cstat-no" title="statement not covered" > if (item.concept === 'BindAttribute') {</span>
1533
+ <span class="cstat-no" title="statement not covered" > return item</span>
1534
+ } else {
1535
+ <span class="cstat-no" title="statement not covered" > if (item?.parentNode &amp;&amp; item.parentNode?.concept !== 'View') {</span>
1536
+ <span class="cstat-no" title="statement not covered" > return getCurrentAttriBute(item.parentNode)</span>
1537
+ } else {
1538
+ <span class="cstat-no" title="statement not covered" > return undefined</span>
1539
+ }
1540
+ }
1541
+ }
1542
+ &nbsp;</pre></td></tr></table></pre>
1543
+
1544
+ <div class='push'></div><!-- for sticky footer -->
1545
+ </div><!-- /wrapper -->
1546
+ <div class='footer quiet pad2 space-top1 center small'>
1547
+ Code coverage generated by
1548
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1549
+ at 2023-10-18T11:36:07.885Z
1550
+ </div>
1551
+ <script src="../../prettify.js"></script>
1552
+ <script>
1553
+ window.onload = function () {
1554
+ prettyPrint();
1555
+ };
1556
+ </script>
1557
+ <script src="../../sorter.js"></script>
1558
+ <script src="../../block-navigation.js"></script>
1559
+ </body>
1560
+ </html>
1561
+