@manojkmfsi/monodog 1.0.19 → 1.0.21

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 (288) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/CHANGELOG.md +12 -0
  3. package/dist/config-loader.js +5 -6
  4. package/dist/get-db-url.js +0 -1
  5. package/dist/index.js +219 -80
  6. package/dist/serve.js +7 -91
  7. package/dist/services/commitService.js +1 -1
  8. package/dist/{gitService.js → services/gitService.js} +0 -101
  9. package/dist/setup.js +0 -0
  10. package/dist/utils/utilities.js +92 -14
  11. package/{monodog-conf.json → monodog-config.json} +2 -4
  12. package/monodog-dashboard/README.md +58 -0
  13. package/monodog-dashboard/dist/assets/{index-dadb5f0d.js → index-1a6836e4.js} +2 -2
  14. package/monodog-dashboard/dist/index.html +1 -1
  15. package/package.json +19 -19
  16. package/src/config-loader.ts +5 -7
  17. package/src/get-db-url.ts +0 -2
  18. package/src/index.ts +227 -72
  19. package/src/serve.ts +6 -68
  20. package/src/services/commitService.ts +1 -1
  21. package/src/services/gitService.ts +165 -0
  22. package/src/utils/utilities.ts +105 -14
  23. package/.turbo/turbo-lint.log +0 -4
  24. package/.turbo/turbo-test.log +0 -828
  25. package/coverage/clover.xml +0 -2661
  26. package/coverage/coverage-final.json +0 -99
  27. package/coverage/lcov-report/base.css +0 -224
  28. package/coverage/lcov-report/block-navigation.js +0 -87
  29. package/coverage/lcov-report/ci-status.ts.html +0 -2002
  30. package/coverage/lcov-report/components/configuration/Configuration.tsx.html +0 -358
  31. package/coverage/lcov-report/components/configuration/components/BrandingSettings.tsx.html +0 -472
  32. package/coverage/lcov-report/components/configuration/components/ConfigurationHeader.tsx.html +0 -199
  33. package/coverage/lcov-report/components/configuration/components/ConfigurationModal.tsx.html +0 -157
  34. package/coverage/lcov-report/components/configuration/components/ConfigurationTabs.tsx.html +0 -175
  35. package/coverage/lcov-report/components/configuration/components/FeatureToggles.tsx.html +0 -283
  36. package/coverage/lcov-report/components/configuration/components/GeneralSettings.tsx.html +0 -316
  37. package/coverage/lcov-report/components/configuration/components/MonorepoSettings.tsx.html +0 -625
  38. package/coverage/lcov-report/components/configuration/components/index.html +0 -221
  39. package/coverage/lcov-report/components/configuration/components/index.ts.html +0 -109
  40. package/coverage/lcov-report/components/configuration/index.html +0 -116
  41. package/coverage/lcov-report/components/configuration/utils/config.utils.ts.html +0 -427
  42. package/coverage/lcov-report/components/configuration/utils/index.html +0 -116
  43. package/coverage/lcov-report/components/main-dashboard/Dashboard.tsx.html +0 -769
  44. package/coverage/lcov-report/components/main-dashboard/components/Header.tsx.html +0 -226
  45. package/coverage/lcov-report/components/main-dashboard/components/PackageDistribution.tsx.html +0 -187
  46. package/coverage/lcov-report/components/main-dashboard/components/PackageSearchFilter.tsx.html +0 -226
  47. package/coverage/lcov-report/components/main-dashboard/components/PackageTable.tsx.html +0 -343
  48. package/coverage/lcov-report/components/main-dashboard/components/QuickActions.tsx.html +0 -265
  49. package/coverage/lcov-report/components/main-dashboard/components/StatsCards.tsx.html +0 -289
  50. package/coverage/lcov-report/components/main-dashboard/components/index.html +0 -206
  51. package/coverage/lcov-report/components/main-dashboard/components/index.ts.html +0 -106
  52. package/coverage/lcov-report/components/main-dashboard/index.html +0 -116
  53. package/coverage/lcov-report/components/main-dashboard/utils/dashboard.utils.ts.html +0 -292
  54. package/coverage/lcov-report/components/main-dashboard/utils/index.html +0 -116
  55. package/coverage/lcov-report/components/modules/ci-integration/CIIntegration.tsx.html +0 -913
  56. package/coverage/lcov-report/components/modules/ci-integration/components/BuildDetails.tsx.html +0 -769
  57. package/coverage/lcov-report/components/modules/ci-integration/components/BuildList.tsx.html +0 -721
  58. package/coverage/lcov-report/components/modules/ci-integration/components/BuildOverview.tsx.html +0 -559
  59. package/coverage/lcov-report/components/modules/ci-integration/components/CIIntegrationHeader.tsx.html +0 -199
  60. package/coverage/lcov-report/components/modules/ci-integration/components/ErrorState.tsx.html +0 -160
  61. package/coverage/lcov-report/components/modules/ci-integration/components/LoadingState.tsx.html +0 -139
  62. package/coverage/lcov-report/components/modules/ci-integration/components/PipelineStatus.tsx.html +0 -754
  63. package/coverage/lcov-report/components/modules/ci-integration/components/index.html +0 -221
  64. package/coverage/lcov-report/components/modules/ci-integration/components/index.ts.html +0 -109
  65. package/coverage/lcov-report/components/modules/ci-integration/index.html +0 -116
  66. package/coverage/lcov-report/components/modules/ci-integration/utils/ci.utils.ts.html +0 -871
  67. package/coverage/lcov-report/components/modules/ci-integration/utils/index.html +0 -116
  68. package/coverage/lcov-report/components/modules/config-inspector/ConfigInspector.tsx.html +0 -1054
  69. package/coverage/lcov-report/components/modules/config-inspector/components/ConfigEditor.tsx.html +0 -361
  70. package/coverage/lcov-report/components/modules/config-inspector/components/ConfigInspectorHeader.tsx.html +0 -193
  71. package/coverage/lcov-report/components/modules/config-inspector/components/ConfigPreview.tsx.html +0 -352
  72. package/coverage/lcov-report/components/modules/config-inspector/components/ConfigSidebar.tsx.html +0 -505
  73. package/coverage/lcov-report/components/modules/config-inspector/components/ConfigToolbar.tsx.html +0 -637
  74. package/coverage/lcov-report/components/modules/config-inspector/components/ErrorState.tsx.html +0 -160
  75. package/coverage/lcov-report/components/modules/config-inspector/components/LoadingState.tsx.html +0 -139
  76. package/coverage/lcov-report/components/modules/config-inspector/components/ValidationPanel.tsx.html +0 -550
  77. package/coverage/lcov-report/components/modules/config-inspector/components/index.html +0 -236
  78. package/coverage/lcov-report/components/modules/config-inspector/components/index.ts.html +0 -112
  79. package/coverage/lcov-report/components/modules/config-inspector/index.html +0 -116
  80. package/coverage/lcov-report/components/modules/config-inspector/utils/config.utils.ts.html +0 -2242
  81. package/coverage/lcov-report/components/modules/config-inspector/utils/index.html +0 -116
  82. package/coverage/lcov-report/components/modules/dependency-graph/DependencyGraph.tsx.html +0 -754
  83. package/coverage/lcov-report/components/modules/dependency-graph/components/CircularDependencies.tsx.html +0 -613
  84. package/coverage/lcov-report/components/modules/dependency-graph/components/DependencyDetails.tsx.html +0 -661
  85. package/coverage/lcov-report/components/modules/dependency-graph/components/DependencyGraphHeader.tsx.html +0 -187
  86. package/coverage/lcov-report/components/modules/dependency-graph/components/DependencyList.tsx.html +0 -613
  87. package/coverage/lcov-report/components/modules/dependency-graph/components/ErrorState.tsx.html +0 -160
  88. package/coverage/lcov-report/components/modules/dependency-graph/components/GraphLegend.tsx.html +0 -430
  89. package/coverage/lcov-report/components/modules/dependency-graph/components/GraphStats.tsx.html +0 -493
  90. package/coverage/lcov-report/components/modules/dependency-graph/components/GraphToolbar.tsx.html +0 -406
  91. package/coverage/lcov-report/components/modules/dependency-graph/components/GraphVisualization.tsx.html +0 -619
  92. package/coverage/lcov-report/components/modules/dependency-graph/components/LoadingState.tsx.html +0 -139
  93. package/coverage/lcov-report/components/modules/dependency-graph/components/index.html +0 -266
  94. package/coverage/lcov-report/components/modules/dependency-graph/components/index.ts.html +0 -118
  95. package/coverage/lcov-report/components/modules/dependency-graph/index.html +0 -116
  96. package/coverage/lcov-report/components/modules/dependency-graph/utils/dependency.utils.ts.html +0 -1393
  97. package/coverage/lcov-report/components/modules/dependency-graph/utils/index.html +0 -116
  98. package/coverage/lcov-report/components/modules/health-status/HealthStatus.tsx.html +0 -2305
  99. package/coverage/lcov-report/components/modules/health-status/index.html +0 -116
  100. package/coverage/lcov-report/components/modules/packages/PackageDetail.tsx.html +0 -850
  101. package/coverage/lcov-report/components/modules/packages/PackagesOverview.tsx.html +0 -580
  102. package/coverage/lcov-report/components/modules/packages/components/ConfigurationTab.tsx.html +0 -1027
  103. package/coverage/lcov-report/components/modules/packages/components/DependenciesTab.tsx.html +0 -556
  104. package/coverage/lcov-report/components/modules/packages/components/ErrorState.tsx.html +0 -148
  105. package/coverage/lcov-report/components/modules/packages/components/HealthMetricsTab.tsx.html +0 -910
  106. package/coverage/lcov-report/components/modules/packages/components/LoadingState.tsx.html +0 -127
  107. package/coverage/lcov-report/components/modules/packages/components/PackageDetailHeader.tsx.html +0 -592
  108. package/coverage/lcov-report/components/modules/packages/components/PackageDetailTabs.tsx.html +0 -232
  109. package/coverage/lcov-report/components/modules/packages/components/PackageStats.tsx.html +0 -301
  110. package/coverage/lcov-report/components/modules/packages/components/PackagesTable.tsx.html +0 -589
  111. package/coverage/lcov-report/components/modules/packages/components/RecentCommitsTab.tsx.html +0 -364
  112. package/coverage/lcov-report/components/modules/packages/components/SearchAndFilter.tsx.html +0 -301
  113. package/coverage/lcov-report/components/modules/packages/components/index.html +0 -281
  114. package/coverage/lcov-report/components/modules/packages/components/index.ts.html +0 -121
  115. package/coverage/lcov-report/components/modules/packages/index.html +0 -131
  116. package/coverage/lcov-report/components/modules/packages/utils/index.html +0 -116
  117. package/coverage/lcov-report/components/modules/packages/utils/packages.utils.ts.html +0 -613
  118. package/coverage/lcov-report/components/publish-control/PublishControl.tsx.html +0 -769
  119. package/coverage/lcov-report/components/publish-control/components/ChangelogViewer.tsx.html +0 -394
  120. package/coverage/lcov-report/components/publish-control/components/ErrorState.tsx.html +0 -154
  121. package/coverage/lcov-report/components/publish-control/components/LoadingState.tsx.html +0 -121
  122. package/coverage/lcov-report/components/publish-control/components/PackageReleaseTable.tsx.html +0 -505
  123. package/coverage/lcov-report/components/publish-control/components/PublishHeader.tsx.html +0 -175
  124. package/coverage/lcov-report/components/publish-control/components/QuickActionCards.tsx.html +0 -253
  125. package/coverage/lcov-report/components/publish-control/components/ReleaseSchedule.tsx.html +0 -397
  126. package/coverage/lcov-report/components/publish-control/components/index.html +0 -221
  127. package/coverage/lcov-report/components/publish-control/components/index.ts.html +0 -109
  128. package/coverage/lcov-report/components/publish-control/index.html +0 -116
  129. package/coverage/lcov-report/components/publish-control/utils/index.html +0 -116
  130. package/coverage/lcov-report/components/publish-control/utils/publish.utils.ts.html +0 -262
  131. package/coverage/lcov-report/components/setup-guide/SetupGuide.tsx.html +0 -373
  132. package/coverage/lcov-report/components/setup-guide/components/SetupHeader.tsx.html +0 -157
  133. package/coverage/lcov-report/components/setup-guide/components/SetupModal.tsx.html +0 -163
  134. package/coverage/lcov-report/components/setup-guide/components/SetupProgress.tsx.html +0 -172
  135. package/coverage/lcov-report/components/setup-guide/components/StepContent.tsx.html +0 -901
  136. package/coverage/lcov-report/components/setup-guide/components/StepNavigation.tsx.html +0 -271
  137. package/coverage/lcov-report/components/setup-guide/components/index.html +0 -191
  138. package/coverage/lcov-report/components/setup-guide/components/index.ts.html +0 -103
  139. package/coverage/lcov-report/components/setup-guide/index.html +0 -116
  140. package/coverage/lcov-report/components/setup-guide/utils/index.html +0 -116
  141. package/coverage/lcov-report/components/setup-guide/utils/setup.utils.ts.html +0 -322
  142. package/coverage/lcov-report/favicon.png +0 -0
  143. package/coverage/lcov-report/index.html +0 -536
  144. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/Configuration.tsx.html +0 -358
  145. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/BrandingSettings.tsx.html +0 -472
  146. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/ConfigurationHeader.tsx.html +0 -199
  147. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/ConfigurationModal.tsx.html +0 -157
  148. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/ConfigurationTabs.tsx.html +0 -175
  149. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/FeatureToggles.tsx.html +0 -283
  150. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/GeneralSettings.tsx.html +0 -316
  151. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/MonorepoSettings.tsx.html +0 -625
  152. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/index.html +0 -221
  153. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/index.ts.html +0 -109
  154. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/index.html +0 -116
  155. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/utils/config.utils.ts.html +0 -427
  156. package/coverage/lcov-report/monodog-dashboard/src/components/configuration/utils/index.html +0 -116
  157. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/Dashboard.tsx.html +0 -769
  158. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/Header.tsx.html +0 -226
  159. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/PackageDistribution.tsx.html +0 -187
  160. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/PackageSearchFilter.tsx.html +0 -226
  161. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/PackageTable.tsx.html +0 -343
  162. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/QuickActions.tsx.html +0 -265
  163. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/StatsCards.tsx.html +0 -289
  164. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/index.html +0 -206
  165. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/index.ts.html +0 -106
  166. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/index.html +0 -116
  167. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/utils/dashboard.utils.ts.html +0 -292
  168. package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/utils/index.html +0 -116
  169. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/CIIntegration.tsx.html +0 -913
  170. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/BuildDetails.tsx.html +0 -769
  171. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/BuildList.tsx.html +0 -721
  172. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/BuildOverview.tsx.html +0 -559
  173. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/CIIntegrationHeader.tsx.html +0 -199
  174. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/ErrorState.tsx.html +0 -160
  175. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/LoadingState.tsx.html +0 -139
  176. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/PipelineStatus.tsx.html +0 -754
  177. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/index.html +0 -221
  178. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/index.ts.html +0 -109
  179. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/index.html +0 -116
  180. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/utils/ci.utils.ts.html +0 -871
  181. package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/utils/index.html +0 -116
  182. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/ConfigInspector.tsx.html +0 -1054
  183. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigEditor.tsx.html +0 -361
  184. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigInspectorHeader.tsx.html +0 -193
  185. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigPreview.tsx.html +0 -352
  186. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigSidebar.tsx.html +0 -505
  187. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigToolbar.tsx.html +0 -637
  188. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ErrorState.tsx.html +0 -160
  189. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/LoadingState.tsx.html +0 -139
  190. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ValidationPanel.tsx.html +0 -550
  191. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/index.html +0 -236
  192. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/index.ts.html +0 -112
  193. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/index.html +0 -116
  194. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/utils/config.utils.ts.html +0 -2242
  195. package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/utils/index.html +0 -116
  196. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/DependencyGraph.tsx.html +0 -754
  197. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/CircularDependencies.tsx.html +0 -613
  198. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyDetails.tsx.html +0 -661
  199. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyGraphHeader.tsx.html +0 -187
  200. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyList.tsx.html +0 -613
  201. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/ErrorState.tsx.html +0 -160
  202. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphLegend.tsx.html +0 -430
  203. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphStats.tsx.html +0 -493
  204. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphToolbar.tsx.html +0 -406
  205. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphVisualization.tsx.html +0 -619
  206. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/LoadingState.tsx.html +0 -139
  207. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/index.html +0 -266
  208. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/index.ts.html +0 -118
  209. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/index.html +0 -116
  210. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/utils/dependency.utils.ts.html +0 -1393
  211. package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/utils/index.html +0 -116
  212. package/coverage/lcov-report/monodog-dashboard/src/components/modules/health-status/HealthStatus.tsx.html +0 -2296
  213. package/coverage/lcov-report/monodog-dashboard/src/components/modules/health-status/index.html +0 -116
  214. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/PackageDetail.tsx.html +0 -850
  215. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/PackagesOverview.tsx.html +0 -580
  216. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/ConfigurationTab.tsx.html +0 -1027
  217. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/DependenciesTab.tsx.html +0 -556
  218. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/ErrorState.tsx.html +0 -148
  219. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/HealthMetricsTab.tsx.html +0 -910
  220. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/LoadingState.tsx.html +0 -127
  221. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackageDetailHeader.tsx.html +0 -592
  222. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackageDetailTabs.tsx.html +0 -232
  223. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackageStats.tsx.html +0 -301
  224. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackagesTable.tsx.html +0 -589
  225. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/RecentCommitsTab.tsx.html +0 -364
  226. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/SearchAndFilter.tsx.html +0 -301
  227. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/index.html +0 -281
  228. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/index.ts.html +0 -121
  229. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/index.html +0 -131
  230. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/utils/index.html +0 -116
  231. package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/utils/packages.utils.ts.html +0 -613
  232. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/PublishControl.tsx.html +0 -769
  233. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/ChangelogViewer.tsx.html +0 -394
  234. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/ErrorState.tsx.html +0 -154
  235. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/LoadingState.tsx.html +0 -121
  236. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/PackageReleaseTable.tsx.html +0 -505
  237. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/PublishHeader.tsx.html +0 -175
  238. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/QuickActionCards.tsx.html +0 -253
  239. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/ReleaseSchedule.tsx.html +0 -397
  240. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/index.html +0 -221
  241. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/index.ts.html +0 -109
  242. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/index.html +0 -116
  243. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/utils/index.html +0 -116
  244. package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/utils/publish.utils.ts.html +0 -262
  245. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/SetupGuide.tsx.html +0 -373
  246. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/SetupHeader.tsx.html +0 -157
  247. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/SetupModal.tsx.html +0 -163
  248. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/SetupProgress.tsx.html +0 -172
  249. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/StepContent.tsx.html +0 -901
  250. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/StepNavigation.tsx.html +0 -271
  251. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/index.html +0 -191
  252. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/index.ts.html +0 -103
  253. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/index.html +0 -116
  254. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/utils/index.html +0 -116
  255. package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/utils/setup.utils.ts.html +0 -322
  256. package/coverage/lcov-report/monodog-dashboard/src/pages/CIPage.tsx.html +0 -103
  257. package/coverage/lcov-report/monodog-dashboard/src/pages/ConfigPage.tsx.html +0 -103
  258. package/coverage/lcov-report/monodog-dashboard/src/pages/DashboardPage.tsx.html +0 -103
  259. package/coverage/lcov-report/monodog-dashboard/src/pages/HealthPage.tsx.html +0 -103
  260. package/coverage/lcov-report/monodog-dashboard/src/pages/PackageDetailPage.tsx.html +0 -103
  261. package/coverage/lcov-report/monodog-dashboard/src/pages/PackagesPage.tsx.html +0 -103
  262. package/coverage/lcov-report/monodog-dashboard/src/pages/PublishPage.tsx.html +0 -103
  263. package/coverage/lcov-report/monodog-dashboard/src/pages/index.html +0 -206
  264. package/coverage/lcov-report/monodog-dashboard/src/services/index.html +0 -116
  265. package/coverage/lcov-report/monodog-dashboard/src/services/monorepoService.ts.html +0 -3010
  266. package/coverage/lcov-report/pages/CIPage.tsx.html +0 -103
  267. package/coverage/lcov-report/pages/ConfigPage.tsx.html +0 -103
  268. package/coverage/lcov-report/pages/DashboardPage.tsx.html +0 -103
  269. package/coverage/lcov-report/pages/HealthPage.tsx.html +0 -103
  270. package/coverage/lcov-report/pages/PackageDetailPage.tsx.html +0 -103
  271. package/coverage/lcov-report/pages/PackagesPage.tsx.html +0 -103
  272. package/coverage/lcov-report/pages/PublishPage.tsx.html +0 -103
  273. package/coverage/lcov-report/pages/index.html +0 -206
  274. package/coverage/lcov-report/prettify.css +0 -1
  275. package/coverage/lcov-report/prettify.js +0 -2
  276. package/coverage/lcov-report/services/index.html +0 -116
  277. package/coverage/lcov-report/services/monorepoService.ts.html +0 -3010
  278. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  279. package/coverage/lcov-report/sorter.js +0 -210
  280. package/coverage/lcov-report/src/config-loader.ts.html +0 -442
  281. package/coverage/lcov-report/src/index.html +0 -116
  282. package/coverage/lcov-report/src/utils/ci-status.ts.html +0 -2002
  283. package/coverage/lcov-report/src/utils/index.html +0 -131
  284. package/coverage/lcov-report/src/utils/utilities.ts.html +0 -1534
  285. package/coverage/lcov-report/utilities.ts.html +0 -1516
  286. package/coverage/lcov.info +0 -5870
  287. package/src/gitService.ts +0 -276
  288. /package/{monodog-conf.example.json → monodog-config.example.json} +0 -0
@@ -1,2296 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for monodog-dashboard/src/components/modules/health-status/HealthStatus.tsx</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">monodog-dashboard/src/components/modules/health-status</a> HealthStatus.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">4.49% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>4/89</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/125</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/16</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">4.7% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>4/85</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 type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a>
642
- <a name='L577'></a><a href='#L577'>577</a>
643
- <a name='L578'></a><a href='#L578'>578</a>
644
- <a name='L579'></a><a href='#L579'>579</a>
645
- <a name='L580'></a><a href='#L580'>580</a>
646
- <a name='L581'></a><a href='#L581'>581</a>
647
- <a name='L582'></a><a href='#L582'>582</a>
648
- <a name='L583'></a><a href='#L583'>583</a>
649
- <a name='L584'></a><a href='#L584'>584</a>
650
- <a name='L585'></a><a href='#L585'>585</a>
651
- <a name='L586'></a><a href='#L586'>586</a>
652
- <a name='L587'></a><a href='#L587'>587</a>
653
- <a name='L588'></a><a href='#L588'>588</a>
654
- <a name='L589'></a><a href='#L589'>589</a>
655
- <a name='L590'></a><a href='#L590'>590</a>
656
- <a name='L591'></a><a href='#L591'>591</a>
657
- <a name='L592'></a><a href='#L592'>592</a>
658
- <a name='L593'></a><a href='#L593'>593</a>
659
- <a name='L594'></a><a href='#L594'>594</a>
660
- <a name='L595'></a><a href='#L595'>595</a>
661
- <a name='L596'></a><a href='#L596'>596</a>
662
- <a name='L597'></a><a href='#L597'>597</a>
663
- <a name='L598'></a><a href='#L598'>598</a>
664
- <a name='L599'></a><a href='#L599'>599</a>
665
- <a name='L600'></a><a href='#L600'>600</a>
666
- <a name='L601'></a><a href='#L601'>601</a>
667
- <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a>
709
- <a name='L644'></a><a href='#L644'>644</a>
710
- <a name='L645'></a><a href='#L645'>645</a>
711
- <a name='L646'></a><a href='#L646'>646</a>
712
- <a name='L647'></a><a href='#L647'>647</a>
713
- <a name='L648'></a><a href='#L648'>648</a>
714
- <a name='L649'></a><a href='#L649'>649</a>
715
- <a name='L650'></a><a href='#L650'>650</a>
716
- <a name='L651'></a><a href='#L651'>651</a>
717
- <a name='L652'></a><a href='#L652'>652</a>
718
- <a name='L653'></a><a href='#L653'>653</a>
719
- <a name='L654'></a><a href='#L654'>654</a>
720
- <a name='L655'></a><a href='#L655'>655</a>
721
- <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a>
723
- <a name='L658'></a><a href='#L658'>658</a>
724
- <a name='L659'></a><a href='#L659'>659</a>
725
- <a name='L660'></a><a href='#L660'>660</a>
726
- <a name='L661'></a><a href='#L661'>661</a>
727
- <a name='L662'></a><a href='#L662'>662</a>
728
- <a name='L663'></a><a href='#L663'>663</a>
729
- <a name='L664'></a><a href='#L664'>664</a>
730
- <a name='L665'></a><a href='#L665'>665</a>
731
- <a name='L666'></a><a href='#L666'>666</a>
732
- <a name='L667'></a><a href='#L667'>667</a>
733
- <a name='L668'></a><a href='#L668'>668</a>
734
- <a name='L669'></a><a href='#L669'>669</a>
735
- <a name='L670'></a><a href='#L670'>670</a>
736
- <a name='L671'></a><a href='#L671'>671</a>
737
- <a name='L672'></a><a href='#L672'>672</a>
738
- <a name='L673'></a><a href='#L673'>673</a>
739
- <a name='L674'></a><a href='#L674'>674</a>
740
- <a name='L675'></a><a href='#L675'>675</a>
741
- <a name='L676'></a><a href='#L676'>676</a>
742
- <a name='L677'></a><a href='#L677'>677</a>
743
- <a name='L678'></a><a href='#L678'>678</a>
744
- <a name='L679'></a><a href='#L679'>679</a>
745
- <a name='L680'></a><a href='#L680'>680</a>
746
- <a name='L681'></a><a href='#L681'>681</a>
747
- <a name='L682'></a><a href='#L682'>682</a>
748
- <a name='L683'></a><a href='#L683'>683</a>
749
- <a name='L684'></a><a href='#L684'>684</a>
750
- <a name='L685'></a><a href='#L685'>685</a>
751
- <a name='L686'></a><a href='#L686'>686</a>
752
- <a name='L687'></a><a href='#L687'>687</a>
753
- <a name='L688'></a><a href='#L688'>688</a>
754
- <a name='L689'></a><a href='#L689'>689</a>
755
- <a name='L690'></a><a href='#L690'>690</a>
756
- <a name='L691'></a><a href='#L691'>691</a>
757
- <a name='L692'></a><a href='#L692'>692</a>
758
- <a name='L693'></a><a href='#L693'>693</a>
759
- <a name='L694'></a><a href='#L694'>694</a>
760
- <a name='L695'></a><a href='#L695'>695</a>
761
- <a name='L696'></a><a href='#L696'>696</a>
762
- <a name='L697'></a><a href='#L697'>697</a>
763
- <a name='L698'></a><a href='#L698'>698</a>
764
- <a name='L699'></a><a href='#L699'>699</a>
765
- <a name='L700'></a><a href='#L700'>700</a>
766
- <a name='L701'></a><a href='#L701'>701</a>
767
- <a name='L702'></a><a href='#L702'>702</a>
768
- <a name='L703'></a><a href='#L703'>703</a>
769
- <a name='L704'></a><a href='#L704'>704</a>
770
- <a name='L705'></a><a href='#L705'>705</a>
771
- <a name='L706'></a><a href='#L706'>706</a>
772
- <a name='L707'></a><a href='#L707'>707</a>
773
- <a name='L708'></a><a href='#L708'>708</a>
774
- <a name='L709'></a><a href='#L709'>709</a>
775
- <a name='L710'></a><a href='#L710'>710</a>
776
- <a name='L711'></a><a href='#L711'>711</a>
777
- <a name='L712'></a><a href='#L712'>712</a>
778
- <a name='L713'></a><a href='#L713'>713</a>
779
- <a name='L714'></a><a href='#L714'>714</a>
780
- <a name='L715'></a><a href='#L715'>715</a>
781
- <a name='L716'></a><a href='#L716'>716</a>
782
- <a name='L717'></a><a href='#L717'>717</a>
783
- <a name='L718'></a><a href='#L718'>718</a>
784
- <a name='L719'></a><a href='#L719'>719</a>
785
- <a name='L720'></a><a href='#L720'>720</a>
786
- <a name='L721'></a><a href='#L721'>721</a>
787
- <a name='L722'></a><a href='#L722'>722</a>
788
- <a name='L723'></a><a href='#L723'>723</a>
789
- <a name='L724'></a><a href='#L724'>724</a>
790
- <a name='L725'></a><a href='#L725'>725</a>
791
- <a name='L726'></a><a href='#L726'>726</a>
792
- <a name='L727'></a><a href='#L727'>727</a>
793
- <a name='L728'></a><a href='#L728'>728</a>
794
- <a name='L729'></a><a href='#L729'>729</a>
795
- <a name='L730'></a><a href='#L730'>730</a>
796
- <a name='L731'></a><a href='#L731'>731</a>
797
- <a name='L732'></a><a href='#L732'>732</a>
798
- <a name='L733'></a><a href='#L733'>733</a>
799
- <a name='L734'></a><a href='#L734'>734</a>
800
- <a name='L735'></a><a href='#L735'>735</a>
801
- <a name='L736'></a><a href='#L736'>736</a>
802
- <a name='L737'></a><a href='#L737'>737</a>
803
- <a name='L738'></a><a href='#L738'>738</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
804
- <span class="cline-any cline-yes">2x</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-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-yes">2x</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-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-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-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-yes">2x</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
973
- <span class="cline-any cline-no">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-no">&nbsp;</span>
976
- <span class="cline-any cline-no">&nbsp;</span>
977
- <span class="cline-any cline-no">&nbsp;</span>
978
- <span class="cline-any cline-no">&nbsp;</span>
979
- <span class="cline-any cline-no">&nbsp;</span>
980
- <span class="cline-any cline-no">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-no">&nbsp;</span>
983
- <span class="cline-any cline-no">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-no">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-no">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-no">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&nbsp;</span>
993
- <span class="cline-any cline-no">&nbsp;</span>
994
- <span class="cline-any cline-no">&nbsp;</span>
995
- <span class="cline-any cline-no">&nbsp;</span>
996
- <span class="cline-any cline-no">&nbsp;</span>
997
- <span class="cline-any cline-no">&nbsp;</span>
998
- <span class="cline-any cline-no">&nbsp;</span>
999
- <span class="cline-any cline-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-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-no">&nbsp;</span>
1027
- <span class="cline-any cline-no">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-no">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-no">&nbsp;</span>
1034
- <span class="cline-any cline-no">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-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-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-no">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-no">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-no">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-no">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-no">&nbsp;</span>
1065
- <span class="cline-any cline-no">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-no">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-no">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-no">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-no">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-no">&nbsp;</span>
1086
- <span class="cline-any cline-no">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-no">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-no">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-no">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-no">&nbsp;</span>
1101
- <span class="cline-any cline-no">&nbsp;</span>
1102
- <span class="cline-any cline-neutral">&nbsp;</span>
1103
- <span class="cline-any cline-no">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-no">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-no">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-no">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-no">&nbsp;</span>
1117
- <span class="cline-any cline-no">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-neutral">&nbsp;</span>
1121
- <span class="cline-any cline-neutral">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-no">&nbsp;</span>
1128
- <span class="cline-any cline-no">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-neutral">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-neutral">&nbsp;</span>
1137
- <span class="cline-any cline-neutral">&nbsp;</span>
1138
- <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-neutral">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&nbsp;</span>
1144
- <span class="cline-any cline-no">&nbsp;</span>
1145
- <span class="cline-any cline-no">&nbsp;</span>
1146
- <span class="cline-any cline-no">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-no">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-no">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-no">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-neutral">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-no">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-neutral">&nbsp;</span>
1161
- <span class="cline-any cline-neutral">&nbsp;</span>
1162
- <span class="cline-any cline-no">&nbsp;</span>
1163
- <span class="cline-any cline-no">&nbsp;</span>
1164
- <span class="cline-any cline-no">&nbsp;</span>
1165
- <span class="cline-any cline-no">&nbsp;</span>
1166
- <span class="cline-any cline-no">&nbsp;</span>
1167
- <span class="cline-any cline-no">&nbsp;</span>
1168
- <span class="cline-any cline-no">&nbsp;</span>
1169
- <span class="cline-any cline-neutral">&nbsp;</span>
1170
- <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-neutral">&nbsp;</span>
1172
- <span class="cline-any cline-neutral">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-neutral">&nbsp;</span>
1179
- <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-neutral">&nbsp;</span>
1184
- <span class="cline-any cline-neutral">&nbsp;</span>
1185
- <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-neutral">&nbsp;</span>
1187
- <span class="cline-any cline-neutral">&nbsp;</span>
1188
- <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-neutral">&nbsp;</span>
1195
- <span class="cline-any cline-neutral">&nbsp;</span>
1196
- <span class="cline-any cline-no">&nbsp;</span>
1197
- <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-neutral">&nbsp;</span>
1203
- <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-neutral">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-neutral">&nbsp;</span>
1214
- <span class="cline-any cline-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-neutral">&nbsp;</span>
1221
- <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-neutral">&nbsp;</span>
1223
- <span class="cline-any cline-neutral">&nbsp;</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-neutral">&nbsp;</span>
1226
- <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-neutral">&nbsp;</span>
1228
- <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-neutral">&nbsp;</span>
1230
- <span class="cline-any cline-neutral">&nbsp;</span>
1231
- <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-neutral">&nbsp;</span>
1234
- <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-neutral">&nbsp;</span>
1236
- <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-neutral">&nbsp;</span>
1238
- <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-neutral">&nbsp;</span>
1240
- <span class="cline-any cline-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-neutral">&nbsp;</span>
1242
- <span class="cline-any cline-neutral">&nbsp;</span>
1243
- <span class="cline-any cline-neutral">&nbsp;</span>
1244
- <span class="cline-any cline-neutral">&nbsp;</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-neutral">&nbsp;</span>
1247
- <span class="cline-any cline-neutral">&nbsp;</span>
1248
- <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-neutral">&nbsp;</span>
1252
- <span class="cline-any cline-neutral">&nbsp;</span>
1253
- <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-neutral">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-neutral">&nbsp;</span>
1257
- <span class="cline-any cline-neutral">&nbsp;</span>
1258
- <span class="cline-any cline-neutral">&nbsp;</span>
1259
- <span class="cline-any cline-neutral">&nbsp;</span>
1260
- <span class="cline-any cline-neutral">&nbsp;</span>
1261
- <span class="cline-any cline-neutral">&nbsp;</span>
1262
- <span class="cline-any cline-neutral">&nbsp;</span>
1263
- <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-neutral">&nbsp;</span>
1266
- <span class="cline-any cline-no">&nbsp;</span>
1267
- <span class="cline-any cline-neutral">&nbsp;</span>
1268
- <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-neutral">&nbsp;</span>
1270
- <span class="cline-any cline-neutral">&nbsp;</span>
1271
- <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-neutral">&nbsp;</span>
1273
- <span class="cline-any cline-neutral">&nbsp;</span>
1274
- <span class="cline-any cline-neutral">&nbsp;</span>
1275
- <span class="cline-any cline-neutral">&nbsp;</span>
1276
- <span class="cline-any cline-neutral">&nbsp;</span>
1277
- <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-neutral">&nbsp;</span>
1279
- <span class="cline-any cline-neutral">&nbsp;</span>
1280
- <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-neutral">&nbsp;</span>
1283
- <span class="cline-any cline-neutral">&nbsp;</span>
1284
- <span class="cline-any cline-neutral">&nbsp;</span>
1285
- <span class="cline-any cline-neutral">&nbsp;</span>
1286
- <span class="cline-any cline-neutral">&nbsp;</span>
1287
- <span class="cline-any cline-neutral">&nbsp;</span>
1288
- <span class="cline-any cline-neutral">&nbsp;</span>
1289
- <span class="cline-any cline-neutral">&nbsp;</span>
1290
- <span class="cline-any cline-neutral">&nbsp;</span>
1291
- <span class="cline-any cline-neutral">&nbsp;</span>
1292
- <span class="cline-any cline-neutral">&nbsp;</span>
1293
- <span class="cline-any cline-neutral">&nbsp;</span>
1294
- <span class="cline-any cline-neutral">&nbsp;</span>
1295
- <span class="cline-any cline-neutral">&nbsp;</span>
1296
- <span class="cline-any cline-neutral">&nbsp;</span>
1297
- <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-neutral">&nbsp;</span>
1300
- <span class="cline-any cline-neutral">&nbsp;</span>
1301
- <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-neutral">&nbsp;</span>
1305
- <span class="cline-any cline-neutral">&nbsp;</span>
1306
- <span class="cline-any cline-neutral">&nbsp;</span>
1307
- <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-neutral">&nbsp;</span>
1309
- <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-neutral">&nbsp;</span>
1311
- <span class="cline-any cline-neutral">&nbsp;</span>
1312
- <span class="cline-any cline-neutral">&nbsp;</span>
1313
- <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-neutral">&nbsp;</span>
1316
- <span class="cline-any cline-neutral">&nbsp;</span>
1317
- <span class="cline-any cline-neutral">&nbsp;</span>
1318
- <span class="cline-any cline-neutral">&nbsp;</span>
1319
- <span class="cline-any cline-neutral">&nbsp;</span>
1320
- <span class="cline-any cline-neutral">&nbsp;</span>
1321
- <span class="cline-any cline-neutral">&nbsp;</span>
1322
- <span class="cline-any cline-neutral">&nbsp;</span>
1323
- <span class="cline-any cline-neutral">&nbsp;</span>
1324
- <span class="cline-any cline-neutral">&nbsp;</span>
1325
- <span class="cline-any cline-neutral">&nbsp;</span>
1326
- <span class="cline-any cline-neutral">&nbsp;</span>
1327
- <span class="cline-any cline-neutral">&nbsp;</span>
1328
- <span class="cline-any cline-neutral">&nbsp;</span>
1329
- <span class="cline-any cline-neutral">&nbsp;</span>
1330
- <span class="cline-any cline-neutral">&nbsp;</span>
1331
- <span class="cline-any cline-neutral">&nbsp;</span>
1332
- <span class="cline-any cline-neutral">&nbsp;</span>
1333
- <span class="cline-any cline-neutral">&nbsp;</span>
1334
- <span class="cline-any cline-neutral">&nbsp;</span>
1335
- <span class="cline-any cline-neutral">&nbsp;</span>
1336
- <span class="cline-any cline-neutral">&nbsp;</span>
1337
- <span class="cline-any cline-neutral">&nbsp;</span>
1338
- <span class="cline-any cline-neutral">&nbsp;</span>
1339
- <span class="cline-any cline-neutral">&nbsp;</span>
1340
- <span class="cline-any cline-neutral">&nbsp;</span>
1341
- <span class="cline-any cline-neutral">&nbsp;</span>
1342
- <span class="cline-any cline-neutral">&nbsp;</span>
1343
- <span class="cline-any cline-no">&nbsp;</span>
1344
- <span class="cline-any cline-neutral">&nbsp;</span>
1345
- <span class="cline-any cline-neutral">&nbsp;</span>
1346
- <span class="cline-any cline-neutral">&nbsp;</span>
1347
- <span class="cline-any cline-neutral">&nbsp;</span>
1348
- <span class="cline-any cline-neutral">&nbsp;</span>
1349
- <span class="cline-any cline-neutral">&nbsp;</span>
1350
- <span class="cline-any cline-neutral">&nbsp;</span>
1351
- <span class="cline-any cline-neutral">&nbsp;</span>
1352
- <span class="cline-any cline-neutral">&nbsp;</span>
1353
- <span class="cline-any cline-neutral">&nbsp;</span>
1354
- <span class="cline-any cline-neutral">&nbsp;</span>
1355
- <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-neutral">&nbsp;</span>
1357
- <span class="cline-any cline-neutral">&nbsp;</span>
1358
- <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-neutral">&nbsp;</span>
1360
- <span class="cline-any cline-neutral">&nbsp;</span>
1361
- <span class="cline-any cline-neutral">&nbsp;</span>
1362
- <span class="cline-any cline-neutral">&nbsp;</span>
1363
- <span class="cline-any cline-neutral">&nbsp;</span>
1364
- <span class="cline-any cline-neutral">&nbsp;</span>
1365
- <span class="cline-any cline-neutral">&nbsp;</span>
1366
- <span class="cline-any cline-neutral">&nbsp;</span>
1367
- <span class="cline-any cline-neutral">&nbsp;</span>
1368
- <span class="cline-any cline-neutral">&nbsp;</span>
1369
- <span class="cline-any cline-neutral">&nbsp;</span>
1370
- <span class="cline-any cline-neutral">&nbsp;</span>
1371
- <span class="cline-any cline-neutral">&nbsp;</span>
1372
- <span class="cline-any cline-neutral">&nbsp;</span>
1373
- <span class="cline-any cline-neutral">&nbsp;</span>
1374
- <span class="cline-any cline-neutral">&nbsp;</span>
1375
- <span class="cline-any cline-neutral">&nbsp;</span>
1376
- <span class="cline-any cline-neutral">&nbsp;</span>
1377
- <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-neutral">&nbsp;</span>
1379
- <span class="cline-any cline-neutral">&nbsp;</span>
1380
- <span class="cline-any cline-neutral">&nbsp;</span>
1381
- <span class="cline-any cline-neutral">&nbsp;</span>
1382
- <span class="cline-any cline-neutral">&nbsp;</span>
1383
- <span class="cline-any cline-neutral">&nbsp;</span>
1384
- <span class="cline-any cline-neutral">&nbsp;</span>
1385
- <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-neutral">&nbsp;</span>
1387
- <span class="cline-any cline-neutral">&nbsp;</span>
1388
- <span class="cline-any cline-neutral">&nbsp;</span>
1389
- <span class="cline-any cline-neutral">&nbsp;</span>
1390
- <span class="cline-any cline-neutral">&nbsp;</span>
1391
- <span class="cline-any cline-neutral">&nbsp;</span>
1392
- <span class="cline-any cline-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-neutral">&nbsp;</span>
1394
- <span class="cline-any cline-neutral">&nbsp;</span>
1395
- <span class="cline-any cline-neutral">&nbsp;</span>
1396
- <span class="cline-any cline-neutral">&nbsp;</span>
1397
- <span class="cline-any cline-neutral">&nbsp;</span>
1398
- <span class="cline-any cline-neutral">&nbsp;</span>
1399
- <span class="cline-any cline-neutral">&nbsp;</span>
1400
- <span class="cline-any cline-neutral">&nbsp;</span>
1401
- <span class="cline-any cline-neutral">&nbsp;</span>
1402
- <span class="cline-any cline-neutral">&nbsp;</span>
1403
- <span class="cline-any cline-neutral">&nbsp;</span>
1404
- <span class="cline-any cline-neutral">&nbsp;</span>
1405
- <span class="cline-any cline-neutral">&nbsp;</span>
1406
- <span class="cline-any cline-neutral">&nbsp;</span>
1407
- <span class="cline-any cline-neutral">&nbsp;</span>
1408
- <span class="cline-any cline-neutral">&nbsp;</span>
1409
- <span class="cline-any cline-neutral">&nbsp;</span>
1410
- <span class="cline-any cline-neutral">&nbsp;</span>
1411
- <span class="cline-any cline-neutral">&nbsp;</span>
1412
- <span class="cline-any cline-neutral">&nbsp;</span>
1413
- <span class="cline-any cline-neutral">&nbsp;</span>
1414
- <span class="cline-any cline-neutral">&nbsp;</span>
1415
- <span class="cline-any cline-neutral">&nbsp;</span>
1416
- <span class="cline-any cline-neutral">&nbsp;</span>
1417
- <span class="cline-any cline-neutral">&nbsp;</span>
1418
- <span class="cline-any cline-neutral">&nbsp;</span>
1419
- <span class="cline-any cline-neutral">&nbsp;</span>
1420
- <span class="cline-any cline-neutral">&nbsp;</span>
1421
- <span class="cline-any cline-neutral">&nbsp;</span>
1422
- <span class="cline-any cline-neutral">&nbsp;</span>
1423
- <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-neutral">&nbsp;</span>
1425
- <span class="cline-any cline-neutral">&nbsp;</span>
1426
- <span class="cline-any cline-neutral">&nbsp;</span>
1427
- <span class="cline-any cline-neutral">&nbsp;</span>
1428
- <span class="cline-any cline-neutral">&nbsp;</span>
1429
- <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-neutral">&nbsp;</span>
1431
- <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-neutral">&nbsp;</span>
1434
- <span class="cline-any cline-neutral">&nbsp;</span>
1435
- <span class="cline-any cline-neutral">&nbsp;</span>
1436
- <span class="cline-any cline-neutral">&nbsp;</span>
1437
- <span class="cline-any cline-neutral">&nbsp;</span>
1438
- <span class="cline-any cline-neutral">&nbsp;</span>
1439
- <span class="cline-any cline-neutral">&nbsp;</span>
1440
- <span class="cline-any cline-neutral">&nbsp;</span>
1441
- <span class="cline-any cline-neutral">&nbsp;</span>
1442
- <span class="cline-any cline-neutral">&nbsp;</span>
1443
- <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-neutral">&nbsp;</span>
1445
- <span class="cline-any cline-neutral">&nbsp;</span>
1446
- <span class="cline-any cline-neutral">&nbsp;</span>
1447
- <span class="cline-any cline-neutral">&nbsp;</span>
1448
- <span class="cline-any cline-neutral">&nbsp;</span>
1449
- <span class="cline-any cline-neutral">&nbsp;</span>
1450
- <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-neutral">&nbsp;</span>
1452
- <span class="cline-any cline-neutral">&nbsp;</span>
1453
- <span class="cline-any cline-neutral">&nbsp;</span>
1454
- <span class="cline-any cline-neutral">&nbsp;</span>
1455
- <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-neutral">&nbsp;</span>
1458
- <span class="cline-any cline-neutral">&nbsp;</span>
1459
- <span class="cline-any cline-neutral">&nbsp;</span>
1460
- <span class="cline-any cline-neutral">&nbsp;</span>
1461
- <span class="cline-any cline-neutral">&nbsp;</span>
1462
- <span class="cline-any cline-neutral">&nbsp;</span>
1463
- <span class="cline-any cline-neutral">&nbsp;</span>
1464
- <span class="cline-any cline-neutral">&nbsp;</span>
1465
- <span class="cline-any cline-neutral">&nbsp;</span>
1466
- <span class="cline-any cline-neutral">&nbsp;</span>
1467
- <span class="cline-any cline-neutral">&nbsp;</span>
1468
- <span class="cline-any cline-neutral">&nbsp;</span>
1469
- <span class="cline-any cline-neutral">&nbsp;</span>
1470
- <span class="cline-any cline-neutral">&nbsp;</span>
1471
- <span class="cline-any cline-neutral">&nbsp;</span>
1472
- <span class="cline-any cline-neutral">&nbsp;</span>
1473
- <span class="cline-any cline-neutral">&nbsp;</span>
1474
- <span class="cline-any cline-neutral">&nbsp;</span>
1475
- <span class="cline-any cline-neutral">&nbsp;</span>
1476
- <span class="cline-any cline-neutral">&nbsp;</span>
1477
- <span class="cline-any cline-neutral">&nbsp;</span>
1478
- <span class="cline-any cline-neutral">&nbsp;</span>
1479
- <span class="cline-any cline-neutral">&nbsp;</span>
1480
- <span class="cline-any cline-neutral">&nbsp;</span>
1481
- <span class="cline-any cline-neutral">&nbsp;</span>
1482
- <span class="cline-any cline-neutral">&nbsp;</span>
1483
- <span class="cline-any cline-neutral">&nbsp;</span>
1484
- <span class="cline-any cline-neutral">&nbsp;</span>
1485
- <span class="cline-any cline-neutral">&nbsp;</span>
1486
- <span class="cline-any cline-neutral">&nbsp;</span>
1487
- <span class="cline-any cline-neutral">&nbsp;</span>
1488
- <span class="cline-any cline-neutral">&nbsp;</span>
1489
- <span class="cline-any cline-neutral">&nbsp;</span>
1490
- <span class="cline-any cline-neutral">&nbsp;</span>
1491
- <span class="cline-any cline-neutral">&nbsp;</span>
1492
- <span class="cline-any cline-neutral">&nbsp;</span>
1493
- <span class="cline-any cline-neutral">&nbsp;</span>
1494
- <span class="cline-any cline-neutral">&nbsp;</span>
1495
- <span class="cline-any cline-neutral">&nbsp;</span>
1496
- <span class="cline-any cline-neutral">&nbsp;</span>
1497
- <span class="cline-any cline-neutral">&nbsp;</span>
1498
- <span class="cline-any cline-neutral">&nbsp;</span>
1499
- <span class="cline-any cline-neutral">&nbsp;</span>
1500
- <span class="cline-any cline-neutral">&nbsp;</span>
1501
- <span class="cline-any cline-neutral">&nbsp;</span>
1502
- <span class="cline-any cline-neutral">&nbsp;</span>
1503
- <span class="cline-any cline-neutral">&nbsp;</span>
1504
- <span class="cline-any cline-neutral">&nbsp;</span>
1505
- <span class="cline-any cline-neutral">&nbsp;</span>
1506
- <span class="cline-any cline-neutral">&nbsp;</span>
1507
- <span class="cline-any cline-neutral">&nbsp;</span>
1508
- <span class="cline-any cline-neutral">&nbsp;</span>
1509
- <span class="cline-any cline-neutral">&nbsp;</span>
1510
- <span class="cline-any cline-neutral">&nbsp;</span>
1511
- <span class="cline-any cline-neutral">&nbsp;</span>
1512
- <span class="cline-any cline-neutral">&nbsp;</span>
1513
- <span class="cline-any cline-neutral">&nbsp;</span>
1514
- <span class="cline-any cline-neutral">&nbsp;</span>
1515
- <span class="cline-any cline-neutral">&nbsp;</span>
1516
- <span class="cline-any cline-neutral">&nbsp;</span>
1517
- <span class="cline-any cline-neutral">&nbsp;</span>
1518
- <span class="cline-any cline-neutral">&nbsp;</span>
1519
- <span class="cline-any cline-neutral">&nbsp;</span>
1520
- <span class="cline-any cline-neutral">&nbsp;</span>
1521
- <span class="cline-any cline-neutral">&nbsp;</span>
1522
- <span class="cline-any cline-neutral">&nbsp;</span>
1523
- <span class="cline-any cline-neutral">&nbsp;</span>
1524
- <span class="cline-any cline-neutral">&nbsp;</span>
1525
- <span class="cline-any cline-neutral">&nbsp;</span>
1526
- <span class="cline-any cline-neutral">&nbsp;</span>
1527
- <span class="cline-any cline-neutral">&nbsp;</span>
1528
- <span class="cline-any cline-neutral">&nbsp;</span>
1529
- <span class="cline-any cline-neutral">&nbsp;</span>
1530
- <span class="cline-any cline-neutral">&nbsp;</span>
1531
- <span class="cline-any cline-neutral">&nbsp;</span>
1532
- <span class="cline-any cline-neutral">&nbsp;</span>
1533
- <span class="cline-any cline-neutral">&nbsp;</span>
1534
- <span class="cline-any cline-neutral">&nbsp;</span>
1535
- <span class="cline-any cline-neutral">&nbsp;</span>
1536
- <span class="cline-any cline-neutral">&nbsp;</span>
1537
- <span class="cline-any cline-neutral">&nbsp;</span>
1538
- <span class="cline-any cline-neutral">&nbsp;</span>
1539
- <span class="cline-any cline-neutral">&nbsp;</span>
1540
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useEffect } from 'react';
1541
- import {
1542
- CheckCircleIcon,
1543
- ExclamationTriangleIcon,
1544
- XCircleIcon,
1545
- ClockIcon,
1546
- ArrowPathIcon,
1547
- ChartBarIcon,
1548
- ShieldCheckIcon,
1549
- BeakerIcon,
1550
- } from '@heroicons/react/24/outline';
1551
- import { monorepoService } from '../../../services/monorepoService';
1552
- &nbsp;
1553
- // interface HealthMetric {
1554
- // name: string;
1555
- // value: number;
1556
- // unit: string;
1557
- // status: 'healthy' | 'warning' | 'error';
1558
- // trend: 'up' | 'down' | 'stable';
1559
- // lastUpdated: string;
1560
- // }
1561
- &nbsp;
1562
- // interface PackageHealth {
1563
- // name: string;
1564
- // overallScore: number;
1565
- // buildStatus: 'success' | 'failed' | 'building' | 'unknown';
1566
- // testCoverage: number;
1567
- // lintStatus: 'pass' | 'warn' | 'fail';
1568
- // securityAudit: 'pass' | 'warn' | 'fail';
1569
- // dependencies: 'up-to-date' | 'outdated' | 'vulnerable';
1570
- // lastBuild: string;
1571
- // lastTest: string;
1572
- // }
1573
- &nbsp;
1574
- // const mockHealthMetrics: HealthMetric[] = [
1575
- // {
1576
- // name: 'Build Success Rate',
1577
- // value: 95,
1578
- // unit: '%',
1579
- // status: 'healthy',
1580
- // trend: 'up',
1581
- // lastUpdated: '2 hours ago',
1582
- // },
1583
- // {
1584
- // name: 'Test Coverage',
1585
- // value: 87,
1586
- // unit: '%',
1587
- // status: 'warning',
1588
- // trend: 'stable',
1589
- // lastUpdated: '1 hour ago',
1590
- // },
1591
- // {
1592
- // name: 'Lint Pass Rate',
1593
- // value: 98,
1594
- // unit: '%',
1595
- // status: 'healthy',
1596
- // trend: 'up',
1597
- // lastUpdated: '30 min ago',
1598
- // },
1599
- // {
1600
- // name: 'Security Score',
1601
- // value: 92,
1602
- // unit: '/100',
1603
- // status: 'healthy',
1604
- // trend: 'stable',
1605
- // lastUpdated: '1 hour ago',
1606
- // },
1607
- // {
1608
- // name: 'Dependency Health',
1609
- // value: 89,
1610
- // unit: '%',
1611
- // status: 'warning',
1612
- // trend: 'down',
1613
- // lastUpdated: '2 hours ago',
1614
- // },
1615
- // {
1616
- // name: 'Performance Score',
1617
- // value: 94,
1618
- // unit: '/100',
1619
- // status: 'healthy',
1620
- // trend: 'up',
1621
- // lastUpdated: '45 min ago',
1622
- // },
1623
- // ];
1624
- &nbsp;
1625
- // const mockPackageHealth: PackageHealth[] = [
1626
- // {
1627
- // name: 'dashboard',
1628
- // overallScore: 95,
1629
- // buildStatus: 'success',
1630
- // testCoverage: 92,
1631
- // lintStatus: 'pass',
1632
- // securityAudit: 'pass',
1633
- // dependencies: 'up-to-date',
1634
- // lastBuild: '2 hours ago',
1635
- // lastTest: '1 hour ago',
1636
- // },
1637
- // {
1638
- // name: 'backend',
1639
- // overallScore: 88,
1640
- // buildStatus: 'success',
1641
- // testCoverage: 85,
1642
- // lintStatus: 'pass',
1643
- // securityAudit: 'pass',
1644
- // dependencies: 'outdated',
1645
- // lastBuild: '3 hours ago',
1646
- // lastTest: '2 hours ago',
1647
- // },
1648
- // {
1649
- // name: 'utils',
1650
- // overallScore: 78,
1651
- // buildStatus: 'success',
1652
- // testCoverage: 75,
1653
- // lintStatus: 'warn',
1654
- // securityAudit: 'pass',
1655
- // dependencies: 'vulnerable',
1656
- // lastBuild: '1 day ago',
1657
- // lastTest: '1 day ago',
1658
- // },
1659
- // {
1660
- // name: 'ci-status',
1661
- // overallScore: 92,
1662
- // buildStatus: 'success',
1663
- // testCoverage: 88,
1664
- // lintStatus: 'pass',
1665
- // securityAudit: 'pass',
1666
- // dependencies: 'up-to-date',
1667
- // lastBuild: '4 hours ago',
1668
- // lastTest: '3 hours ago',
1669
- // },
1670
- // {
1671
- // name: 'monorepo-scanner',
1672
- // overallScore: 65,
1673
- // buildStatus: 'failed',
1674
- // testCoverage: 60,
1675
- // lintStatus: 'fail',
1676
- // securityAudit: 'warn',
1677
- // dependencies: 'outdated',
1678
- // lastBuild: '2 days ago',
1679
- // lastTest: '2 days ago',
1680
- // },
1681
- // ];
1682
- interface HealthData {
1683
- packages: Array&lt;{
1684
- packageName: string;
1685
- health: {
1686
- buildStatus: string;
1687
- testCoverage: number;
1688
- lintStatus: string;
1689
- securityAudit: string;
1690
- overallScore: number;
1691
- };
1692
- isHealthy: boolean;
1693
- }&gt;;
1694
- summary: {
1695
- total: number;
1696
- healthy: number;
1697
- unhealthy: number;
1698
- averageScore: number;
1699
- };
1700
- }
1701
- &nbsp;
1702
- export default function <span class="fstat-no" title="function not covered" >HealthStatus(</span>) {
1703
- // const [selectedMetric, setSelectedMetric] = useState&lt;string&gt;('all');
1704
- const [refreshKey, setRefreshKey] = <span class="cstat-no" title="statement not covered" >useState(0);</span>
1705
- const [healthData, setHealthData] = <span class="cstat-no" title="statement not covered" >useState&lt;HealthData | null&gt;(null);</span>
1706
- const [loading, setLoading] = <span class="cstat-no" title="statement not covered" >useState(true);</span>
1707
- const [error, setError] = <span class="cstat-no" title="statement not covered" >useState&lt;string | null&gt;(null);</span>
1708
- const [refreshing, setRefreshing] = <span class="cstat-no" title="statement not covered" >useState(false);</span>
1709
- &nbsp;
1710
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1711
- const fetchHealthData = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async </span>() =&gt; {</span>
1712
- <span class="cstat-no" title="statement not covered" > try {</span>
1713
- <span class="cstat-no" title="statement not covered" > setLoading(true);</span>
1714
- const data = <span class="cstat-no" title="statement not covered" >await monorepoService.getHealthStatus();</span>
1715
- <span class="cstat-no" title="statement not covered" > console.log('Health data from inside useEffect:', data);</span>
1716
- <span class="cstat-no" title="statement not covered" > setHealthData(data);</span>
1717
- <span class="cstat-no" title="statement not covered" > setError(null);</span>
1718
- } catch (err) {
1719
- <span class="cstat-no" title="statement not covered" > setError('Failed to fetch health data');</span>
1720
- <span class="cstat-no" title="statement not covered" > console.error('Error fetching health data:', err);</span>
1721
- } finally {
1722
- <span class="cstat-no" title="statement not covered" > setLoading(false);</span>
1723
- }
1724
- };
1725
- &nbsp;
1726
- <span class="cstat-no" title="statement not covered" > fetchHealthData();</span>
1727
- }, [refreshKey]);
1728
- <span class="cstat-no" title="statement not covered" > console.log('Health data from outside of useEffect:', healthData);</span>
1729
- &nbsp;
1730
- const refreshData = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async </span>() =&gt; {</span>
1731
- <span class="cstat-no" title="statement not covered" > try {</span>
1732
- <span class="cstat-no" title="statement not covered" > setRefreshing(true);</span>
1733
- <span class="cstat-no" title="statement not covered" > setError(null);</span>
1734
- <span class="cstat-no" title="statement not covered" > setLoading(true);</span>
1735
- <span class="cstat-no" title="statement not covered" > try {</span>
1736
- const data = <span class="cstat-no" title="statement not covered" >await monorepoService.refreshHealthStatus();</span>
1737
- <span class="cstat-no" title="statement not covered" > console.log('Health data:', data);</span>
1738
- <span class="cstat-no" title="statement not covered" > setHealthData(data);</span>
1739
- <span class="cstat-no" title="statement not covered" > setError(null);</span>
1740
- } catch (err) {
1741
- <span class="cstat-no" title="statement not covered" > setError('Failed to fetch health data');</span>
1742
- <span class="cstat-no" title="statement not covered" > console.error('Error fetching health data:', err);</span>
1743
- } finally {
1744
- <span class="cstat-no" title="statement not covered" > setLoading(false);</span>
1745
- }
1746
- &nbsp;
1747
- // // Call the refresh API endpoint
1748
- // const response = await fetch('/api/health/refresh', {
1749
- // method: 'POST',
1750
- // headers: {
1751
- // 'Content-Type': 'application/json',
1752
- // },
1753
- // });
1754
- &nbsp;
1755
- // if (!response.ok) {
1756
- // throw new Error('Refresh failed');
1757
- // }
1758
- &nbsp;
1759
- // // Refresh the health data after successful refresh
1760
- // const data = await monorepoService.getHealthStatus();
1761
- // setHealthData(data);
1762
- } catch (err) {
1763
- <span class="cstat-no" title="statement not covered" > setError('Failed to refresh health data');</span>
1764
- <span class="cstat-no" title="statement not covered" > console.error('Error refreshing health data:', err);</span>
1765
- } finally {
1766
- <span class="cstat-no" title="statement not covered" > setRefreshing(false);</span>
1767
- }
1768
- };
1769
- &nbsp;
1770
- const retryFetchData = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1771
- <span class="cstat-no" title="statement not covered" > setRefreshKey(<span class="fstat-no" title="function not covered" >prev </span>=&gt; <span class="cstat-no" title="statement not covered" >prev + 1)</span>;</span>
1772
- };
1773
- &nbsp;
1774
- // const refreshData = () =&gt; {
1775
- // setRefreshKey(prev =&gt; prev + 1);
1776
- // setHealthData(null);
1777
- // };
1778
- &nbsp;
1779
- // Get status color and icon
1780
- const getStatusColor = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(s</span>tatus: string) =&gt; {</span>
1781
- <span class="cstat-no" title="statement not covered" > switch (status) {</span>
1782
- case 'healthy':
1783
- case 'success':
1784
- case 'pass':
1785
- case 'up-to-date':
1786
- <span class="cstat-no" title="statement not covered" > return 'bg-green-100 text-green-800';</span>
1787
- case 'warning':
1788
- case 'warn':
1789
- case 'outdated':
1790
- <span class="cstat-no" title="statement not covered" > return 'bg-yellow-100 text-yellow-800';</span>
1791
- case 'error':
1792
- case 'failed':
1793
- case 'fail':
1794
- case 'vulnerable':
1795
- <span class="cstat-no" title="statement not covered" > return 'bg-red-100 text-red-800';</span>
1796
- default:
1797
- <span class="cstat-no" title="statement not covered" > return 'bg-gray-100 text-gray-800';</span>
1798
- }
1799
- };
1800
- &nbsp;
1801
- const getStatusIcon = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(s</span>tatus: string) =&gt; {</span>
1802
- <span class="cstat-no" title="statement not covered" > switch (status) {</span>
1803
- case 'healthy':
1804
- case 'success':
1805
- case 'pass':
1806
- case 'up-to-date':
1807
- <span class="cstat-no" title="statement not covered" > return &lt;CheckCircleIcon className="h-5 w-5 text-green-500" /&gt;;</span>
1808
- case 'warning':
1809
- case 'warn':
1810
- case 'outdated':
1811
- <span class="cstat-no" title="statement not covered" > return &lt;ExclamationTriangleIcon className="h-5 w-5 text-yellow-500" /&gt;;</span>
1812
- case 'error':
1813
- case 'failed':
1814
- case 'fail':
1815
- case 'vulnerable':
1816
- <span class="cstat-no" title="statement not covered" > return &lt;XCircleIcon className="h-5 w-5 text-red-500" /&gt;;</span>
1817
- default:
1818
- <span class="cstat-no" title="statement not covered" > return &lt;ClockIcon className="h-5 w-5 text-gray-500" /&gt;;</span>
1819
- }
1820
- };
1821
- &nbsp;
1822
- const getTrendIcon = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(t</span>rend: string) =&gt; {</span>
1823
- <span class="cstat-no" title="statement not covered" > switch (trend) {</span>
1824
- case 'up':
1825
- <span class="cstat-no" title="statement not covered" > return (</span>
1826
- &lt;ArrowPathIcon className="h-4 w-4 text-green-500 transform rotate-90" /&gt;
1827
- );
1828
- case 'down':
1829
- <span class="cstat-no" title="statement not covered" > return (</span>
1830
- &lt;ArrowPathIcon className="h-4 w-4 text-red-500 transform -rotate-90" /&gt;
1831
- );
1832
- default:
1833
- <span class="cstat-no" title="statement not covered" > return &lt;ArrowPathIcon className="h-4 w-4 text-gray-500" /&gt;;</span>
1834
- }
1835
- };
1836
- &nbsp;
1837
- const getBuildStatusIcon = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(s</span>tatus: string) =&gt; {</span>
1838
- <span class="cstat-no" title="statement not covered" > switch (status) {</span>
1839
- case 'success':
1840
- <span class="cstat-no" title="statement not covered" > return &lt;CheckCircleIcon className="h-5 w-5 text-green-500" /&gt;;</span>
1841
- case 'failed':
1842
- <span class="cstat-no" title="statement not covered" > return &lt;XCircleIcon className="h-5 w-5 text-red-500" /&gt;;</span>
1843
- case 'building':
1844
- <span class="cstat-no" title="statement not covered" > return (</span>
1845
- &lt;div className="h-5 w-5 animate-spin rounded-full border-2 border-blue-500 border-t-transparent" /&gt;
1846
- );
1847
- default:
1848
- <span class="cstat-no" title="statement not covered" > return &lt;ClockIcon className="h-5 w-5 text-gray-500" /&gt;;</span>
1849
- }
1850
- };
1851
- &nbsp;
1852
- // Calculate overall health
1853
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (loading &amp;&amp; !healthData) {</span>
1854
- <span class="cstat-no" title="statement not covered" > return (</span>
1855
- &lt;div className="flex items-center justify-center h-64"&gt;
1856
- &lt;div className="text-center"&gt;
1857
- &lt;div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto"&gt;&lt;/div&gt;
1858
- &lt;p className="mt-4 text-gray-600"&gt;Loading health data...&lt;/p&gt;
1859
- &lt;/div&gt;
1860
- &lt;/div&gt;
1861
- );
1862
- }
1863
- &nbsp;
1864
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (error) {</span>
1865
- <span class="cstat-no" title="statement not covered" > return (</span>
1866
- &lt;div className="flex items-center justify-center h-64"&gt;
1867
- &lt;div className="text-center"&gt;
1868
- &lt;ExclamationTriangleIcon className="w-12 h-12 text-red-500 mx-auto" /&gt;
1869
- &lt;p className="mt-4 text-red-600"&gt;{error}&lt;/p&gt;
1870
- &lt;button
1871
- onClick={retryFetchData}
1872
- className="mt-4 bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition-colors"
1873
- &gt;
1874
- Retry
1875
- &lt;/button&gt;
1876
- &lt;/div&gt;
1877
- &lt;/div&gt;
1878
- );
1879
- }
1880
- &nbsp;
1881
- const overallHealth = <span class="cstat-no" title="statement not covered" >healthData ? healthData.summary?.averageScore : 0;</span>
1882
- const healthyPackages = <span class="cstat-no" title="statement not covered" >healthData</span>
1883
- ? healthData?.packages?.filter(<span class="fstat-no" title="function not covered" >pkg </span>=&gt; <span class="cstat-no" title="statement not covered" >pkg.health.overallScore &gt;= 80)</span>.length
1884
- : 0;
1885
- const warningPackages = <span class="cstat-no" title="statement not covered" >healthData</span>
1886
- ? healthData?.packages?.filter(
1887
- <span class="fstat-no" title="function not covered" > pkg </span>=&gt; <span class="cstat-no" title="statement not covered" >pkg.health.overallScore &gt;= 60 &amp;&amp; pkg.health.overallScore &lt; 80</span>
1888
- ).length
1889
- : 0;
1890
- const errorPackages = <span class="cstat-no" title="statement not covered" >healthData</span>
1891
- ? healthData?.packages?.filter(<span class="fstat-no" title="function not covered" >pkg </span>=&gt; <span class="cstat-no" title="statement not covered" >pkg.health.overallScore &lt; 60)</span>.length
1892
- : 0;
1893
- &nbsp;
1894
- const packagesHealth = <span class="cstat-no" title="statement not covered" >[</span>
1895
- {
1896
- name: 'Package Health',
1897
- value: healthyPackages || 0,
1898
- status: (<span class="fstat-no" title="function not covered" >() =</span>&gt; {
1899
- const healthy = <span class="cstat-no" title="statement not covered" >healthyPackages || 0;</span>
1900
- const total = <span class="cstat-no" title="statement not covered" >healthData?.packages.length || 0;</span>
1901
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (total === 0) <span class="cstat-no" title="statement not covered" >return 'healthy';</span></span>
1902
- const ratio = <span class="cstat-no" title="statement not covered" >healthy / total;</span>
1903
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ratio &gt;= 0.8) <span class="cstat-no" title="statement not covered" >return 'healthy';</span></span>
1904
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ratio &gt;= 0.6) <span class="cstat-no" title="statement not covered" >return 'warning';</span></span>
1905
- <span class="cstat-no" title="statement not covered" > return 'error';</span>
1906
- })(),
1907
- description: `${healthyPackages || 0} healthy packages out of ${healthData?.packages.length || 0}`,
1908
- },
1909
- {
1910
- name: 'Overall Score',
1911
- value: Math.round(overallHealth),
1912
- status:
1913
- Math.round(overallHealth) &gt;= 80
1914
- ? 'healthy'
1915
- : Math.round(overallHealth) &gt;= 60
1916
- ? 'warning'
1917
- : 'error',
1918
- description: `Average health score: ${Math.round(overallHealth)}/100`,
1919
- },
1920
- {
1921
- name: 'Unhealthy Packages',
1922
- value: warningPackages + errorPackages || 0,
1923
- status:
1924
- (warningPackages + errorPackages || 0) === 0
1925
- ? 'healthy'
1926
- : (warningPackages + errorPackages || 0) &lt;= 2
1927
- ? 'warning'
1928
- : 'error',
1929
- description: `${warningPackages + errorPackages || 0} packages need attention`,
1930
- },
1931
- ];
1932
- &nbsp;
1933
- <span class="cstat-no" title="statement not covered" > return (</span>
1934
- &lt;div className=""&gt;
1935
- {/* Header */}
1936
- &nbsp;
1937
- &lt;div className="flex items-center justify-between my-3"&gt;
1938
- &lt;div&gt;
1939
- &lt;h1 className="text-2xl font-bold text-gray-900"&gt;Health Status&lt;/h1&gt;
1940
- &lt;p className="text-gray-600 mt-1"&gt;
1941
- Monitor the health and performance of your monorepo packages
1942
- &lt;/p&gt;
1943
- &lt;/div&gt;
1944
- &lt;button
1945
- onClick={refreshData}
1946
- disabled={refreshing}
1947
- className="bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 disabled:bg-blue-400 disabled:cursor-not-allowed flex items-center space-x-2 transition-colors"
1948
- &gt;
1949
- {refreshing ? (
1950
- &lt;div className="animate-spin rounded-full h-4 w-4 border-b-2 border-white" /&gt;
1951
- ) : (
1952
- &lt;ArrowPathIcon className="w-5 h-5" /&gt;
1953
- )}
1954
- &lt;span&gt;{refreshing ? 'Refreshing...' : 'Refresh'}&lt;/span&gt;
1955
- &lt;/button&gt;
1956
- &lt;/div&gt;
1957
- &nbsp;
1958
- {/* Show refreshing overlay when refreshing with existing data */}
1959
- {refreshing &amp;&amp; healthData &amp;&amp; (
1960
- &lt;div className="fixed inset-0 bg-black bg-opacity-70 flex items-center justify-center z-50"&gt;
1961
- &lt;div className="bg-white p-6 rounded-lg shadow-lg text-center"&gt;
1962
- &lt;div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto"&gt;&lt;/div&gt;
1963
- &lt;p className="mt-4 text-gray-700"&gt;Refreshing health data...&lt;/p&gt;
1964
- &lt;/div&gt;
1965
- &lt;/div&gt;
1966
- )}
1967
- &nbsp;
1968
- {/* Overall Health Score */}
1969
- &lt;div className="my-3 bg-gradient-to-r from-blue-500 to-purple-600 rounded-lg p-6 text-white"&gt;
1970
- &lt;div className="flex items-center justify-between"&gt;
1971
- &lt;div&gt;
1972
- &lt;h2 className="text-xl font-semibold"&gt;Overall Monorepo Health&lt;/h2&gt;
1973
- &lt;p className="text-blue-100 mt-1"&gt;
1974
- Based on all package metrics and recent activity
1975
- &lt;/p&gt;
1976
- &lt;/div&gt;
1977
- &lt;div className="text-right"&gt;
1978
- &lt;div className="text-4xl font-bold"&gt;
1979
- {overallHealth?.toFixed(2)}
1980
- &lt;/div&gt;
1981
- &lt;div className="text-blue-100"&gt;out of 100&lt;/div&gt;
1982
- &lt;/div&gt;
1983
- &lt;/div&gt;
1984
- &lt;div className="mt-4 flex space-x-4"&gt;
1985
- &lt;div className="flex items-center space-x-2"&gt;
1986
- &lt;CheckCircleIcon className="w-5 h-5 text-green-300" /&gt;
1987
- &lt;span&gt;{healthyPackages} Healthy&lt;/span&gt;
1988
- &lt;/div&gt;
1989
- &lt;div className="flex items-center space-x-2"&gt;
1990
- &lt;ExclamationTriangleIcon className="w-5 h-5 text-yellow-300" /&gt;
1991
- &lt;span&gt;{warningPackages} Warnings&lt;/span&gt;
1992
- &lt;/div&gt;
1993
- &lt;div className="flex items-center space-x-2"&gt;
1994
- &lt;XCircleIcon className="w-5 h-5 text-red-300" /&gt;
1995
- &lt;span&gt;{errorPackages} Errors&lt;/span&gt;
1996
- &lt;/div&gt;
1997
- &lt;/div&gt;
1998
- &lt;/div&gt;
1999
- &nbsp;
2000
- {/* Health Metrics Grid */}
2001
- &lt;div className="my-3 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"&gt;
2002
- {packagesHealth.map(<span class="fstat-no" title="function not covered" >metric </span>=&gt; (
2003
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
2004
- key={metric.name}
2005
- className="bg-white p-6 rounded-lg shadow border"
2006
- &gt;
2007
- &lt;div className="flex items-center justify-between mb-4"&gt;
2008
- &lt;h3 className="text-lg font-medium text-gray-900"&gt;
2009
- {metric.name}
2010
- &lt;/h3&gt;
2011
- &lt;div
2012
- className={`w-3 h-3 rounded-full ${
2013
- metric.status === 'healthy'
2014
- ? 'bg-green-500'
2015
- : metric.status === 'warning'
2016
- ? 'bg-yellow-500'
2017
- : 'bg-red-500'
2018
- }`}
2019
- /&gt;
2020
- &lt;/div&gt;
2021
- &lt;div className="flex items-end space-x-2"&gt;
2022
- &lt;span className="text-3xl font-bold text-gray-900"&gt;
2023
- {metric.value}
2024
- &lt;/span&gt;
2025
- &lt;/div&gt;
2026
- &lt;div className="mt-4 flex items-center justify-between"&gt;
2027
- &lt;span
2028
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(metric.status)}`}
2029
- &gt;
2030
- {metric.status}
2031
- &lt;/span&gt;
2032
- &lt;span className="text-sm text-gray-500"&gt;
2033
- {metric.description}
2034
- &lt;/span&gt;
2035
- &lt;/div&gt;
2036
- &lt;/div&gt;
2037
- ))}
2038
- &lt;/div&gt;
2039
- &nbsp;
2040
- {/* Package Health Table */}
2041
- &lt;div className="my-3 bg-white rounded-lg shadow border overflow-hidden"&gt;
2042
- &lt;div className="px-6 py-4 border-b border-gray-200"&gt;
2043
- &lt;h3 className="text-lg font-medium text-gray-900"&gt;
2044
- Package Health Details
2045
- &lt;/h3&gt;
2046
- &lt;/div&gt;
2047
- &nbsp;
2048
- &lt;div className="overflow-x-auto"&gt;
2049
- &lt;table className="min-w-full divide-y divide-gray-200"&gt;
2050
- &lt;thead className="bg-gray-50"&gt;
2051
- &lt;tr&gt;
2052
- &lt;th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2053
- Package
2054
- &lt;/th&gt;
2055
- &lt;th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2056
- Overall Score
2057
- &lt;/th&gt;
2058
- &lt;th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2059
- Build Status
2060
- &lt;/th&gt;
2061
- &lt;th className="hidden px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2062
- Test Coverage
2063
- &lt;/th&gt;
2064
- &lt;th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2065
- Lint Status
2066
- &lt;/th&gt;
2067
- &lt;th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2068
- Security
2069
- &lt;/th&gt;
2070
- &lt;th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2071
- Dependencies
2072
- &lt;/th&gt;
2073
- &lt;th className="hidden px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"&gt;
2074
- Actions
2075
- &lt;/th&gt;
2076
- &lt;/tr&gt;
2077
- &lt;/thead&gt;
2078
- &lt;tbody className="bg-white divide-y divide-gray-200"&gt;
2079
- {healthData?.packages?.map(<span class="fstat-no" title="function not covered" >pkg </span>=&gt; (
2080
- <span class="cstat-no" title="statement not covered" > &lt;tr key={pkg.packageName} c</span>lassName="hover:bg-gray-50"&gt;
2081
- {/* package name */}
2082
- &lt;td className="px-6 py-4 whitespace-nowrap"&gt;
2083
- &lt;div className="flex items-center"&gt;
2084
- &lt;div className="h-8 w-8 rounded-lg bg-gray-100 flex items-center justify-center"&gt;
2085
- &lt;div className="text-sm"&gt;📦&lt;/div&gt;
2086
- &lt;/div&gt;
2087
- &lt;div className="ml-3"&gt;
2088
- &lt;div className="text-sm font-medium text-gray-900"&gt;
2089
- {pkg.packageName}
2090
- &lt;/div&gt;
2091
- &lt;div className="text-sm text-gray-500"&gt;
2092
- Score: {pkg.health.overallScore}/100
2093
- &lt;/div&gt;
2094
- &lt;/div&gt;
2095
- &lt;/div&gt;
2096
- &lt;/td&gt;
2097
- &nbsp;
2098
- {/* overall score */}
2099
- &lt;td className="px-6 py-4 whitespace-nowrap"&gt;
2100
- &lt;div className="flex items-center"&gt;
2101
- &lt;div className="w-16 bg-gray-200 rounded-full h-2 mr-2"&gt;
2102
- &lt;div
2103
- className={`h-2 rounded-full ${
2104
- pkg.health.overallScore &gt;= 80
2105
- ? 'bg-green-500'
2106
- : pkg.health.overallScore &gt;= 60
2107
- ? 'bg-yellow-500'
2108
- : 'bg-red-500'
2109
- }`}
2110
- style={{ width: `${pkg.health.overallScore}%` }}
2111
- /&gt;
2112
- &lt;/div&gt;
2113
- &lt;span className="text-sm font-medium text-gray-900"&gt;
2114
- {pkg.health.overallScore}
2115
- &lt;/span&gt;
2116
- &lt;/div&gt;
2117
- &lt;/td&gt;
2118
- &nbsp;
2119
- {/* build status */}
2120
- &lt;td className="px-6 py-4 whitespace-nowrap"&gt;
2121
- &lt;div className="flex items-center"&gt;
2122
- &lt;div
2123
- className={`w-3 h-3 rounded-full ${
2124
- pkg.health.buildStatus === 'success'
2125
- ? 'bg-green-500'
2126
- : pkg.health.buildStatus === 'unknown'
2127
- ? 'bg-yellow-500'
2128
- : 'bg-red-500'
2129
- }`}
2130
- /&gt;
2131
- &lt;span
2132
- className={`ml-2 inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(
2133
- pkg.health.buildStatus === 'success'
2134
- ? 'healthy'
2135
- : pkg.health.buildStatus === 'unknown'
2136
- ? 'warning'
2137
- : 'error'
2138
- )}`}
2139
- &gt;
2140
- {pkg.health.buildStatus === 'success'
2141
- ? 'healthy'
2142
- : pkg.health.buildStatus === 'unknown'
2143
- ? 'warning'
2144
- : 'error'}
2145
- &lt;/span&gt;
2146
- &lt;/div&gt;
2147
- &lt;/td&gt;
2148
- &nbsp;
2149
- {/* test coverage */}
2150
- &lt;td className="hidden px-6 py-4 whitespace-nowrap"&gt;
2151
- &lt;div className="flex items-center"&gt;
2152
- &lt;BeakerIcon className="w-4 h-4 text-gray-400 mr-1" /&gt;
2153
- &lt;span className="text-sm text-gray-900"&gt;-&lt;/span&gt;
2154
- &lt;/div&gt;
2155
- &lt;/td&gt;
2156
- &nbsp;
2157
- {/* lint status */}
2158
- &lt;td className="px-6 py-4 whitespace-nowrap"&gt;
2159
- &lt;span
2160
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(
2161
- pkg.health.lintStatus === 'pass'
2162
- ? 'pass'
2163
- : pkg.health.lintStatus === 'unknown'
2164
- ? 'warn'
2165
- : 'fail'
2166
- )}`}
2167
- &gt;
2168
- {pkg.health.lintStatus === 'pass'
2169
- ? 'pass'
2170
- : pkg.health.lintStatus === 'unknown'
2171
- ? 'warn'
2172
- : 'fail'}
2173
- &lt;/span&gt;
2174
- &lt;/td&gt;
2175
- &nbsp;
2176
- {/* security */}
2177
- &lt;td className="px-6 py-4 whitespace-nowrap"&gt;
2178
- &lt;div className="flex items-center"&gt;
2179
- {/* &lt;ShieldCheckIcon className="w-4 h-4 text-gray-400 mr-1" /&gt; */}
2180
- &lt;span
2181
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(
2182
- pkg.health.securityAudit === 'pass'
2183
- ? 'pass'
2184
- : pkg.health.securityAudit === 'unknown'
2185
- ? 'warn'
2186
- : 'fail'
2187
- )}`}
2188
- &gt;
2189
- {pkg.health.securityAudit === 'pass'
2190
- ? 'pass'
2191
- : pkg.health.securityAudit === 'unknown'
2192
- ? 'warn'
2193
- : 'fail'}
2194
- &lt;/span&gt;
2195
- &lt;/div&gt;
2196
- &lt;/td&gt;
2197
- &nbsp;
2198
- {/* dependencies */}
2199
- &lt;td className="px-6 py-4 whitespace-nowrap"&gt;
2200
- &lt;span
2201
- className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${getStatusColor(
2202
- pkg.health.overallScore &gt;= 80
2203
- ? 'up-to-date'
2204
- : pkg.health.overallScore &gt;= 60
2205
- ? 'outdated'
2206
- : 'vulnerable'
2207
- )}`}
2208
- &gt;
2209
- {pkg.health.overallScore &gt;= 80
2210
- ? 'up-to-date'
2211
- : pkg.health.overallScore &gt;= 60
2212
- ? 'outdated'
2213
- : 'vulnerable'}
2214
- &lt;/span&gt;
2215
- &lt;/td&gt;
2216
- &nbsp;
2217
- {/* actions */}
2218
- &lt;td className="hidden px-6 py-4 whitespace-nowrap text-sm font-medium"&gt;
2219
- &lt;div className="flex space-x-2"&gt;
2220
- &lt;button className="text-blue-600 hover:text-blue-900"&gt;
2221
- Details
2222
- &lt;/button&gt;
2223
- &lt;/div&gt;
2224
- &lt;/td&gt;
2225
- &lt;/tr&gt;
2226
- ))}
2227
- &lt;/tbody&gt;
2228
- &lt;/table&gt;
2229
- &lt;/div&gt;
2230
- &lt;/div&gt;
2231
- &nbsp;
2232
- {/* Health Recommendations */}
2233
- &lt;div className="hidden bg-white rounded-lg shadow border p-6"&gt;
2234
- &lt;h3 className="text-lg font-medium text-gray-900 mb-4"&gt;
2235
- Health Recommendations
2236
- &lt;/h3&gt;
2237
- &lt;div className="space-y-3"&gt;
2238
- &lt;div className="flex items-start space-x-3 p-3 bg-yellow-50 rounded-lg border border-yellow-200"&gt;
2239
- &lt;ExclamationTriangleIcon className="w-5 h-5 text-yellow-600 mt-0.5" /&gt;
2240
- &lt;div&gt;
2241
- &lt;p className="text-sm font-medium text-yellow-800"&gt;
2242
- Test Coverage Below Target
2243
- &lt;/p&gt;
2244
- &lt;p className="text-sm text-yellow-700"&gt;
2245
- Consider adding more tests to improve coverage above 90%
2246
- &lt;/p&gt;
2247
- &lt;/div&gt;
2248
- &lt;/div&gt;
2249
- &lt;div className="flex items-start space-x-3 p-3 bg-red-50 rounded-lg border border-red-200"&gt;
2250
- &lt;XCircleIcon className="w-5 h-5 text-red-600 mt-0.5" /&gt;
2251
- &lt;div&gt;
2252
- &lt;p className="text-sm font-medium text-red-800"&gt;
2253
- Build Failures Detected
2254
- &lt;/p&gt;
2255
- &lt;p className="text-sm text-red-700"&gt;
2256
- monorepo-scanner package has build failures that need immediate
2257
- attention
2258
- &lt;/p&gt;
2259
- &lt;/div&gt;
2260
- &lt;/div&gt;
2261
- &lt;div className="flex items-start space-x-3 p-3 bg-blue-50 rounded-lg border border-blue-200"&gt;
2262
- &lt;ChartBarIcon className="w-5 h-5 text-blue-600 mt-0.5" /&gt;
2263
- &lt;div&gt;
2264
- &lt;p className="text-sm font-medium text-blue-800"&gt;
2265
- Performance Improvements Available
2266
- &lt;/p&gt;
2267
- &lt;p className="text-sm text-blue-700"&gt;
2268
- Consider optimizing build times and dependency resolution
2269
- &lt;/p&gt;
2270
- &lt;/div&gt;
2271
- &lt;/div&gt;
2272
- &lt;/div&gt;
2273
- &lt;/div&gt;
2274
- &lt;/div&gt;
2275
- );
2276
- }
2277
- &nbsp;</pre></td></tr></table></pre>
2278
-
2279
- <div class='push'></div><!-- for sticky footer -->
2280
- </div><!-- /wrapper -->
2281
- <div class='footer quiet pad2 space-top1 center small'>
2282
- Code coverage generated by
2283
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2284
- at 2025-12-19T08:58:26.640Z
2285
- </div>
2286
- <script src="../../../../../prettify.js"></script>
2287
- <script>
2288
- window.onload = function () {
2289
- prettyPrint();
2290
- };
2291
- </script>
2292
- <script src="../../../../../sorter.js"></script>
2293
- <script src="../../../../../block-navigation.js"></script>
2294
- </body>
2295
- </html>
2296
-