@featurevisor/core 2.26.1 → 3.0.1
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.
- package/CHANGELOG.md +8 -0
- package/coverage/clover.xml +4991 -3130
- package/coverage/coverage-final.json +63 -39
- package/coverage/lcov-report/block-navigation.js +1 -1
- package/coverage/lcov-report/index.html +248 -98
- package/coverage/lcov-report/sorter.js +21 -7
- package/coverage/lcov-report/src/assess-distribution/index.html +116 -0
- package/coverage/lcov-report/src/assess-distribution/index.ts.html +754 -0
- package/coverage/lcov-report/{list → src/benchmark}/index.html +30 -30
- package/coverage/lcov-report/src/benchmark/index.ts.html +793 -0
- package/coverage/lcov-report/{builder → src/builder}/allocator.ts.html +38 -38
- package/coverage/lcov-report/{builder/buildScopedConditions.ts.html → src/builder/applyContextToConditions.ts.html} +80 -65
- package/coverage/lcov-report/{builder/buildScopedDatafile.ts.html → src/builder/applyContextToDatafile.ts.html} +92 -92
- package/coverage/lcov-report/{builder/buildScopedSegments.ts.html → src/builder/applyContextToSegments.ts.html} +103 -67
- package/coverage/lcov-report/{builder → src/builder}/buildDatafile.ts.html +336 -306
- package/coverage/lcov-report/src/builder/buildProject.ts.html +1117 -0
- package/coverage/lcov-report/src/builder/buildRuntimeDatafiles.ts.html +256 -0
- package/coverage/lcov-report/{builder → src/builder}/getFeatureRanges.ts.html +22 -22
- package/coverage/lcov-report/{builder → src/builder}/hashes.ts.html +50 -50
- package/coverage/lcov-report/{builder → src/builder}/index.html +114 -84
- package/coverage/lcov-report/{tester/cliFormat.ts.html → src/builder/index.ts.html} +17 -29
- package/coverage/lcov-report/{builder → src/builder}/mutateVariables.ts.html +55 -55
- package/coverage/lcov-report/{builder → src/builder}/mutator.ts.html +118 -118
- package/coverage/lcov-report/{builder → src/builder}/revision.ts.html +15 -15
- package/coverage/lcov-report/{builder → src/builder}/traffic.ts.html +86 -86
- package/coverage/lcov-report/src/cli/cli.ts.html +400 -0
- package/coverage/lcov-report/{tester → src/cli}/index.html +41 -41
- package/coverage/lcov-report/src/cli/plugins.ts.html +214 -0
- package/coverage/lcov-report/{config → src/config}/index.html +31 -31
- package/coverage/lcov-report/{config → src/config}/index.ts.html +12 -12
- package/coverage/lcov-report/{config → src/config}/projectConfig.ts.html +312 -96
- package/coverage/lcov-report/{datasource → src/datasource}/adapter.ts.html +28 -73
- package/coverage/lcov-report/{datasource → src/datasource}/datasource.ts.html +191 -104
- package/coverage/lcov-report/{datasource → src/datasource}/filesystemAdapter.ts.html +233 -635
- package/coverage/lcov-report/{datasource → src/datasource}/index.html +48 -48
- package/coverage/lcov-report/{datasource → src/datasource}/index.ts.html +14 -14
- package/coverage/lcov-report/src/evaluate/index.html +116 -0
- package/coverage/lcov-report/src/evaluate/index.ts.html +814 -0
- package/coverage/lcov-report/src/find-duplicate-segments/findDuplicateSegments.ts.html +313 -0
- package/coverage/lcov-report/src/find-duplicate-segments/index.html +131 -0
- package/coverage/lcov-report/src/find-duplicate-segments/index.ts.html +307 -0
- package/coverage/lcov-report/src/find-usage/index.html +116 -0
- package/coverage/lcov-report/src/find-usage/index.ts.html +1780 -0
- package/coverage/lcov-report/src/generate-code/index.html +131 -0
- package/coverage/lcov-report/src/generate-code/index.ts.html +403 -0
- package/coverage/lcov-report/{generate-code → src/generate-code}/typescript.ts.html +266 -1361
- package/coverage/lcov-report/{generate-code → src}/index.html +38 -23
- package/coverage/lcov-report/src/info/index.html +116 -0
- package/coverage/lcov-report/src/info/index.ts.html +472 -0
- package/coverage/lcov-report/src/init/index.html +116 -0
- package/coverage/lcov-report/src/init/index.ts.html +280 -0
- package/coverage/lcov-report/{linter → src/linter}/attributeSchema.ts.html +160 -157
- package/coverage/lcov-report/{linter → src/linter}/checkCircularDependency.ts.html +25 -25
- package/coverage/lcov-report/{linter → src/linter}/checkPercentageExceedingSlot.ts.html +42 -42
- package/coverage/lcov-report/{linter → src/linter}/conditionSchema.ts.html +207 -207
- package/coverage/lcov-report/{linter → src/linter}/featureSchema.ts.html +462 -471
- package/coverage/lcov-report/{linter → src/linter}/groupSchema.ts.html +25 -22
- package/coverage/lcov-report/{linter → src/linter}/index.html +129 -99
- package/coverage/lcov-report/src/linter/index.ts.html +88 -0
- package/coverage/lcov-report/{linter → src/linter}/lintProject.ts.html +740 -332
- package/coverage/lcov-report/{linter → src/linter}/mutationNotation.ts.html +130 -130
- package/coverage/lcov-report/{linter → src/linter}/printError.ts.html +27 -27
- package/coverage/lcov-report/{linter → src/linter}/schema.ts.html +153 -150
- package/coverage/lcov-report/{linter → src/linter}/segmentSchema.ts.html +18 -15
- package/coverage/lcov-report/src/linter/targetSchema.ts.html +223 -0
- package/coverage/lcov-report/{linter → src/linter}/testSchema.ts.html +54 -48
- package/coverage/lcov-report/{linter → src/linter}/zodHelpers.ts.html +17 -17
- package/coverage/lcov-report/src/list/index.html +131 -0
- package/coverage/lcov-report/src/list/index.ts.html +2065 -0
- package/coverage/lcov-report/{list → src/list}/matrix.ts.html +43 -58
- package/coverage/lcov-report/src/promoter/index.html +116 -0
- package/coverage/lcov-report/src/promoter/index.ts.html +3883 -0
- package/coverage/lcov-report/src/sets.ts.html +313 -0
- package/coverage/lcov-report/src/targeting.ts.html +403 -0
- package/coverage/lcov-report/src/tester/cliFormat.ts.html +133 -0
- package/coverage/lcov-report/{tester → src/tester}/helpers.ts.html +15 -15
- package/coverage/lcov-report/src/tester/index.html +206 -0
- package/coverage/lcov-report/src/tester/prettyDuration.ts.html +187 -0
- package/coverage/lcov-report/src/tester/printTestResult.ts.html +337 -0
- package/coverage/lcov-report/src/tester/testFeature.ts.html +1186 -0
- package/coverage/lcov-report/src/tester/testProject.ts.html +1018 -0
- package/coverage/lcov-report/src/tester/testSegment.ts.html +316 -0
- package/coverage/lcov-report/{utils → src/utils}/extractKeys.ts.html +68 -68
- package/coverage/lcov-report/{utils → src/utils}/git.ts.html +44 -68
- package/coverage/lcov-report/{utils → src/utils}/index.html +44 -44
- package/coverage/lcov-report/{utils → src/utils}/index.ts.html +14 -14
- package/coverage/lcov-report/{utils → src/utils}/pretty.ts.html +20 -20
- package/coverage/lcov.info +10121 -5723
- package/jest.config.js +13 -4
- package/lib/assess-distribution/index.d.ts +1 -1
- package/lib/assess-distribution/index.js +59 -40
- package/lib/assess-distribution/index.js.map +1 -1
- package/lib/benchmark/index.d.ts +8 -5
- package/lib/benchmark/index.js +82 -65
- package/lib/benchmark/index.js.map +1 -1
- package/lib/builder/applyContextToConditions.d.ts +5 -0
- package/lib/builder/{buildScopedConditions.js → applyContextToConditions.js} +19 -14
- package/lib/builder/applyContextToConditions.js.map +1 -0
- package/lib/builder/applyContextToDatafile.d.ts +2 -0
- package/lib/builder/{buildScopedDatafile.js → applyContextToDatafile.js} +26 -26
- package/lib/builder/applyContextToDatafile.js.map +1 -0
- package/lib/builder/applyContextToSegments.d.ts +5 -0
- package/lib/builder/{buildScopedSegments.js → applyContextToSegments.js} +19 -14
- package/lib/builder/applyContextToSegments.js.map +1 -0
- package/lib/builder/buildDatafile.d.ts +9 -6
- package/lib/builder/buildDatafile.js +86 -51
- package/lib/builder/buildDatafile.js.map +1 -1
- package/lib/builder/buildProject.d.ts +17 -3
- package/lib/builder/buildProject.js +151 -59
- package/lib/builder/buildProject.js.map +1 -1
- package/lib/builder/buildRuntimeDatafiles.d.ts +12 -0
- package/lib/builder/buildRuntimeDatafiles.js +35 -0
- package/lib/builder/buildRuntimeDatafiles.js.map +1 -0
- package/lib/builder/getFeatureRanges.js +34 -1
- package/lib/builder/getFeatureRanges.js.map +1 -1
- package/lib/builder/hashes.js +34 -1
- package/lib/builder/hashes.js.map +1 -1
- package/lib/builder/index.d.ts +0 -1
- package/lib/builder/index.js +0 -1
- package/lib/builder/index.js.map +1 -1
- package/lib/cli/cli.js +0 -4
- package/lib/cli/cli.js.map +1 -1
- package/lib/cli/plugins.js +7 -2
- package/lib/cli/plugins.js.map +1 -1
- package/lib/config/projectConfig.d.ts +17 -17
- package/lib/config/projectConfig.js +101 -15
- package/lib/config/projectConfig.js.map +1 -1
- package/lib/datasource/adapter.d.ts +7 -9
- package/lib/datasource/adapter.js +0 -7
- package/lib/datasource/adapter.js.map +1 -1
- package/lib/datasource/datasource.d.ts +15 -5
- package/lib/datasource/datasource.js +37 -9
- package/lib/datasource/datasource.js.map +1 -1
- package/lib/datasource/filesystemAdapter.d.ts +4 -10
- package/lib/datasource/filesystemAdapter.js +111 -149
- package/lib/datasource/filesystemAdapter.js.map +1 -1
- package/lib/evaluate/index.d.ts +1 -7
- package/lib/evaluate/index.js +81 -67
- package/lib/evaluate/index.js.map +1 -1
- package/lib/find-duplicate-segments/findDuplicateSegments.js +34 -1
- package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
- package/lib/find-duplicate-segments/index.js +21 -13
- package/lib/find-duplicate-segments/index.js.map +1 -1
- package/lib/find-usage/index.js +57 -41
- package/lib/find-usage/index.js.map +1 -1
- package/lib/generate-code/index.d.ts +1 -1
- package/lib/generate-code/index.js +64 -21
- package/lib/generate-code/index.js.map +1 -1
- package/lib/generate-code/typescript.d.ts +1 -1
- package/lib/generate-code/typescript.js +59 -333
- package/lib/generate-code/typescript.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/info/index.js +57 -16
- package/lib/info/index.js.map +1 -1
- package/lib/init/index.d.ts +2 -2
- package/lib/init/index.js +39 -3
- package/lib/init/index.js.map +1 -1
- package/lib/linter/attributeSchema.d.ts +1 -0
- package/lib/linter/attributeSchema.js +1 -0
- package/lib/linter/attributeSchema.js.map +1 -1
- package/lib/linter/conditionSchema.js +5 -5
- package/lib/linter/conditionSchema.js.map +1 -1
- package/lib/linter/featureSchema.d.ts +4 -1
- package/lib/linter/featureSchema.js +15 -13
- package/lib/linter/featureSchema.js.map +1 -1
- package/lib/linter/groupSchema.d.ts +1 -0
- package/lib/linter/groupSchema.js +1 -0
- package/lib/linter/groupSchema.js.map +1 -1
- package/lib/linter/lintProject.d.ts +1 -3
- package/lib/linter/lintProject.js +198 -68
- package/lib/linter/lintProject.js.map +1 -1
- package/lib/linter/schema.js +1 -0
- package/lib/linter/schema.js.map +1 -1
- package/lib/linter/segmentSchema.d.ts +1 -0
- package/lib/linter/segmentSchema.js +1 -0
- package/lib/linter/segmentSchema.js.map +1 -1
- package/lib/linter/targetSchema.d.ts +16 -0
- package/lib/linter/targetSchema.js +40 -0
- package/lib/linter/targetSchema.js.map +1 -0
- package/lib/linter/testSchema.d.ts +4 -3
- package/lib/linter/testSchema.js +9 -4
- package/lib/linter/testSchema.js.map +1 -1
- package/lib/list/index.d.ts +1 -0
- package/lib/list/index.js +131 -12
- package/lib/list/index.js.map +1 -1
- package/lib/list/matrix.js +3 -7
- package/lib/list/matrix.js.map +1 -1
- package/lib/promoter/index.d.ts +50 -0
- package/lib/promoter/index.js +880 -0
- package/lib/promoter/index.js.map +1 -0
- package/lib/sets.d.ts +11 -0
- package/lib/sets.js +81 -0
- package/lib/sets.js.map +1 -0
- package/lib/targeting.d.ts +14 -0
- package/lib/targeting.js +82 -0
- package/lib/targeting.js.map +1 -0
- package/lib/tester/cliFormat.d.ts +7 -1
- package/lib/tester/cliFormat.js +11 -2
- package/lib/tester/cliFormat.js.map +1 -1
- package/lib/tester/printTestResult.js +2 -2
- package/lib/tester/printTestResult.js.map +1 -1
- package/lib/tester/testFeature.d.ts +0 -1
- package/lib/tester/testFeature.js +8 -25
- package/lib/tester/testFeature.js.map +1 -1
- package/lib/tester/testProject.d.ts +2 -3
- package/lib/tester/testProject.js +93 -86
- package/lib/tester/testProject.js.map +1 -1
- package/lib/tester/testSegment.d.ts +1 -1
- package/lib/tester/testSegment.js +3 -21
- package/lib/tester/testSegment.js.map +1 -1
- package/lib/utils/git.js +45 -19
- package/lib/utils/git.js.map +1 -1
- package/package.json +12 -12
- package/src/assess-distribution/index.ts +72 -52
- package/src/benchmark/index.ts +124 -91
- package/src/builder/{buildScopedConditions.spec.ts → applyContextToConditions.spec.ts} +160 -142
- package/src/builder/{buildScopedConditions.ts → applyContextToConditions.ts} +19 -14
- package/src/builder/{buildScopedDatafile.spec.ts → applyContextToDatafile.spec.ts} +141 -81
- package/src/builder/{buildScopedDatafile.ts → applyContextToDatafile.ts} +33 -33
- package/src/builder/{buildScopedSegments.spec.ts → applyContextToSegments.spec.ts} +171 -151
- package/src/builder/{buildScopedSegments.ts → applyContextToSegments.ts} +26 -14
- package/src/builder/buildDatafile.spec.ts +192 -14
- package/src/builder/buildDatafile.ts +74 -64
- package/src/builder/buildProject.ts +171 -86
- package/src/builder/buildRuntimeDatafiles.ts +57 -0
- package/src/builder/index.ts +0 -1
- package/src/cli/cli.ts +0 -5
- package/src/cli/plugins.ts +7 -2
- package/src/config/projectConfig.spec.ts +171 -8
- package/src/config/projectConfig.ts +100 -28
- package/src/datasource/adapter.ts +8 -23
- package/src/datasource/datasource.ts +50 -21
- package/src/datasource/filesystemAdapter.spec.ts +133 -74
- package/src/datasource/filesystemAdapter.ts +93 -227
- package/src/evaluate/index.ts +109 -97
- package/src/find-duplicate-segments/index.ts +34 -16
- package/src/find-usage/index.ts +89 -44
- package/src/generate-code/index.ts +36 -24
- package/src/generate-code/typescript.spec.ts +106 -0
- package/src/generate-code/typescript.ts +33 -398
- package/src/index.ts +2 -1
- package/src/info/index.ts +72 -16
- package/src/init/index.ts +1 -1
- package/src/linter/attributeSchema.ts +1 -0
- package/src/linter/conditionSchema.spec.ts +23 -3
- package/src/linter/conditionSchema.ts +5 -5
- package/src/linter/featureSchema.spec.ts +107 -18
- package/src/linter/featureSchema.ts +25 -28
- package/src/linter/groupSchema.ts +1 -0
- package/src/linter/lintProject.spec.ts +131 -92
- package/src/linter/lintProject.ts +233 -97
- package/src/linter/schema.ts +1 -0
- package/src/linter/segmentSchema.spec.ts +5 -3
- package/src/linter/segmentSchema.ts +1 -0
- package/src/linter/targetSchema.spec.ts +159 -0
- package/src/linter/targetSchema.ts +46 -0
- package/src/linter/testSchema.spec.ts +70 -5
- package/src/linter/testSchema.ts +12 -10
- package/src/list/index.spec.ts +135 -0
- package/src/list/index.ts +188 -12
- package/src/list/matrix.ts +3 -8
- package/src/promoter/index.spec.ts +617 -0
- package/src/promoter/index.ts +1266 -0
- package/src/sets.ts +76 -0
- package/src/targeting.spec.ts +74 -0
- package/src/targeting.ts +106 -0
- package/src/tester/cliFormat.ts +11 -1
- package/src/tester/printTestResult.ts +12 -3
- package/src/tester/testFeature.ts +10 -36
- package/src/tester/testProject.spec.ts +50 -0
- package/src/tester/testProject.ts +89 -140
- package/src/tester/testSegment.ts +5 -22
- package/src/utils/git.ts +13 -21
- package/tsconfig.cjs.json +5 -1
- package/tsconfig.typecheck.json +9 -0
- package/coverage/lcov-report/builder/convertToV1.ts.html +0 -583
- package/lib/builder/allocator.spec.d.ts +0 -1
- package/lib/builder/allocator.spec.js +0 -85
- package/lib/builder/allocator.spec.js.map +0 -1
- package/lib/builder/buildDatafile.spec.d.ts +0 -1
- package/lib/builder/buildDatafile.spec.js +0 -233
- package/lib/builder/buildDatafile.spec.js.map +0 -1
- package/lib/builder/buildScopedConditions.d.ts +0 -5
- package/lib/builder/buildScopedConditions.js.map +0 -1
- package/lib/builder/buildScopedConditions.spec.d.ts +0 -1
- package/lib/builder/buildScopedConditions.spec.js +0 -2167
- package/lib/builder/buildScopedConditions.spec.js.map +0 -1
- package/lib/builder/buildScopedDatafile.d.ts +0 -2
- package/lib/builder/buildScopedDatafile.js.map +0 -1
- package/lib/builder/buildScopedDatafile.spec.d.ts +0 -1
- package/lib/builder/buildScopedDatafile.spec.js +0 -2277
- package/lib/builder/buildScopedDatafile.spec.js.map +0 -1
- package/lib/builder/buildScopedSegments.d.ts +0 -5
- package/lib/builder/buildScopedSegments.js.map +0 -1
- package/lib/builder/buildScopedSegments.spec.d.ts +0 -1
- package/lib/builder/buildScopedSegments.spec.js +0 -1062
- package/lib/builder/buildScopedSegments.spec.js.map +0 -1
- package/lib/builder/convertToV1.d.ts +0 -10
- package/lib/builder/convertToV1.js +0 -119
- package/lib/builder/convertToV1.js.map +0 -1
- package/lib/builder/mutateVariables.spec.d.ts +0 -1
- package/lib/builder/mutateVariables.spec.js +0 -1074
- package/lib/builder/mutateVariables.spec.js.map +0 -1
- package/lib/builder/mutator.spec.d.ts +0 -1
- package/lib/builder/mutator.spec.js +0 -368
- package/lib/builder/mutator.spec.js.map +0 -1
- package/lib/builder/revision.spec.d.ts +0 -1
- package/lib/builder/revision.spec.js +0 -21
- package/lib/builder/revision.spec.js.map +0 -1
- package/lib/builder/traffic.spec.d.ts +0 -1
- package/lib/builder/traffic.spec.js +0 -872
- package/lib/builder/traffic.spec.js.map +0 -1
- package/lib/config/projectConfig.spec.d.ts +0 -1
- package/lib/config/projectConfig.spec.js +0 -24
- package/lib/config/projectConfig.spec.js.map +0 -1
- package/lib/datasource/filesystemAdapter.spec.d.ts +0 -1
- package/lib/datasource/filesystemAdapter.spec.js +0 -88
- package/lib/datasource/filesystemAdapter.spec.js.map +0 -1
- package/lib/generate-code/typescript.spec.d.ts +0 -1
- package/lib/generate-code/typescript.spec.js +0 -78
- package/lib/generate-code/typescript.spec.js.map +0 -1
- package/lib/linter/attributeSchema.spec.d.ts +0 -1
- package/lib/linter/attributeSchema.spec.js +0 -266
- package/lib/linter/attributeSchema.spec.js.map +0 -1
- package/lib/linter/conditionSchema.spec.d.ts +0 -1
- package/lib/linter/conditionSchema.spec.js +0 -380
- package/lib/linter/conditionSchema.spec.js.map +0 -1
- package/lib/linter/featureSchema.spec.d.ts +0 -1
- package/lib/linter/featureSchema.spec.js +0 -1552
- package/lib/linter/featureSchema.spec.js.map +0 -1
- package/lib/linter/lintProject.spec.d.ts +0 -1
- package/lib/linter/lintProject.spec.js +0 -211
- package/lib/linter/lintProject.spec.js.map +0 -1
- package/lib/linter/mutationNotation.spec.d.ts +0 -1
- package/lib/linter/mutationNotation.spec.js +0 -598
- package/lib/linter/mutationNotation.spec.js.map +0 -1
- package/lib/linter/schema.spec.d.ts +0 -1
- package/lib/linter/schema.spec.js +0 -535
- package/lib/linter/schema.spec.js.map +0 -1
- package/lib/linter/segmentSchema.spec.d.ts +0 -1
- package/lib/linter/segmentSchema.spec.js +0 -303
- package/lib/linter/segmentSchema.spec.js.map +0 -1
- package/lib/linter/testSchema.spec.d.ts +0 -1
- package/lib/linter/testSchema.spec.js +0 -162
- package/lib/linter/testSchema.spec.js.map +0 -1
- package/lib/list/matrix.spec.d.ts +0 -1
- package/lib/list/matrix.spec.js +0 -42
- package/lib/list/matrix.spec.js.map +0 -1
- package/lib/site/exportSite.d.ts +0 -2
- package/lib/site/exportSite.js +0 -30
- package/lib/site/exportSite.js.map +0 -1
- package/lib/site/generateHistory.d.ts +0 -3
- package/lib/site/generateHistory.js +0 -31
- package/lib/site/generateHistory.js.map +0 -1
- package/lib/site/generateSiteSearchIndex.d.ts +0 -4
- package/lib/site/generateSiteSearchIndex.js +0 -195
- package/lib/site/generateSiteSearchIndex.js.map +0 -1
- package/lib/site/getLastModifiedFromHistory.d.ts +0 -2
- package/lib/site/getLastModifiedFromHistory.js +0 -18
- package/lib/site/getLastModifiedFromHistory.js.map +0 -1
- package/lib/site/getOwnerAndRepoFromUrl.d.ts +0 -4
- package/lib/site/getOwnerAndRepoFromUrl.js +0 -20
- package/lib/site/getOwnerAndRepoFromUrl.js.map +0 -1
- package/lib/site/getRelativePaths.d.ts +0 -6
- package/lib/site/getRelativePaths.js +0 -15
- package/lib/site/getRelativePaths.js.map +0 -1
- package/lib/site/getRepoDetails.d.ts +0 -8
- package/lib/site/getRepoDetails.js +0 -48
- package/lib/site/getRepoDetails.js.map +0 -1
- package/lib/site/index.d.ts +0 -2
- package/lib/site/index.js +0 -43
- package/lib/site/index.js.map +0 -1
- package/lib/site/serveSite.d.ts +0 -2
- package/lib/site/serveSite.js +0 -54
- package/lib/site/serveSite.js.map +0 -1
- package/lib/tester/helpers.spec.d.ts +0 -1
- package/lib/tester/helpers.spec.js +0 -115
- package/lib/tester/helpers.spec.js.map +0 -1
- package/src/builder/convertToV1.ts +0 -166
- package/src/site/exportSite.ts +0 -42
- package/src/site/generateHistory.ts +0 -40
- package/src/site/generateSiteSearchIndex.ts +0 -258
- package/src/site/getLastModifiedFromHistory.ts +0 -21
- package/src/site/getOwnerAndRepoFromUrl.ts +0 -17
- package/src/site/getRelativePaths.ts +0 -24
- package/src/site/getRepoDetails.ts +0 -62
- package/src/site/index.ts +0 -46
- package/src/site/serveSite.ts +0 -58
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for linter/conditionSchema.ts</title>
|
|
6
|
+
<title>Code coverage report for src/linter/conditionSchema.ts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="
|
|
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
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/linter</a> conditionSchema.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">62.35% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>212/340</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
<template id="filterTemplate">
|
|
58
58
|
<div class="quiet">
|
|
59
59
|
Filter:
|
|
60
|
-
<input
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -777,14 +777,14 @@
|
|
|
777
777
|
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
778
|
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
779
|
<a name='L714'></a><a href='#L714'>714</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
780
|
-
<span class="cline-any cline-yes">
|
|
780
|
+
<span class="cline-any cline-yes">5x</span>
|
|
781
781
|
<span class="cline-any cline-neutral"> </span>
|
|
782
782
|
<span class="cline-any cline-neutral"> </span>
|
|
783
|
-
<span class="cline-any cline-yes">
|
|
783
|
+
<span class="cline-any cline-yes">5x</span>
|
|
784
784
|
<span class="cline-any cline-neutral"> </span>
|
|
785
|
-
<span class="cline-any cline-yes">
|
|
786
|
-
<span class="cline-any cline-yes">
|
|
787
|
-
<span class="cline-any cline-yes">
|
|
785
|
+
<span class="cline-any cline-yes">5x</span>
|
|
786
|
+
<span class="cline-any cline-yes">5x</span>
|
|
787
|
+
<span class="cline-any cline-yes">5x</span>
|
|
788
788
|
<span class="cline-any cline-neutral"> </span>
|
|
789
789
|
<span class="cline-any cline-neutral"> </span>
|
|
790
790
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -792,7 +792,7 @@
|
|
|
792
792
|
<span class="cline-any cline-neutral"> </span>
|
|
793
793
|
<span class="cline-any cline-neutral"> </span>
|
|
794
794
|
<span class="cline-any cline-neutral"> </span>
|
|
795
|
-
<span class="cline-any cline-yes">
|
|
795
|
+
<span class="cline-any cline-yes">5x</span>
|
|
796
796
|
<span class="cline-any cline-neutral"> </span>
|
|
797
797
|
<span class="cline-any cline-neutral"> </span>
|
|
798
798
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -800,12 +800,12 @@
|
|
|
800
800
|
<span class="cline-any cline-neutral"> </span>
|
|
801
801
|
<span class="cline-any cline-neutral"> </span>
|
|
802
802
|
<span class="cline-any cline-neutral"> </span>
|
|
803
|
-
<span class="cline-any cline-yes">
|
|
804
|
-
<span class="cline-any cline-yes">
|
|
805
|
-
<span class="cline-any cline-yes">
|
|
806
|
-
<span class="cline-any cline-yes">
|
|
803
|
+
<span class="cline-any cline-yes">5x</span>
|
|
804
|
+
<span class="cline-any cline-yes">5x</span>
|
|
805
|
+
<span class="cline-any cline-yes">5x</span>
|
|
806
|
+
<span class="cline-any cline-yes">5x</span>
|
|
807
807
|
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-yes">
|
|
808
|
+
<span class="cline-any cline-yes">5x</span>
|
|
809
809
|
<span class="cline-any cline-neutral"> </span>
|
|
810
810
|
<span class="cline-any cline-neutral"> </span>
|
|
811
811
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -814,11 +814,11 @@
|
|
|
814
814
|
<span class="cline-any cline-neutral"> </span>
|
|
815
815
|
<span class="cline-any cline-neutral"> </span>
|
|
816
816
|
<span class="cline-any cline-neutral"> </span>
|
|
817
|
-
<span class="cline-any cline-yes">
|
|
817
|
+
<span class="cline-any cline-yes">16x</span>
|
|
818
818
|
<span class="cline-any cline-neutral"> </span>
|
|
819
819
|
<span class="cline-any cline-neutral"> </span>
|
|
820
820
|
<span class="cline-any cline-neutral"> </span>
|
|
821
|
-
<span class="cline-any cline-yes">
|
|
821
|
+
<span class="cline-any cline-yes">10x</span>
|
|
822
822
|
<span class="cline-any cline-neutral"> </span>
|
|
823
823
|
<span class="cline-any cline-neutral"> </span>
|
|
824
824
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -827,15 +827,15 @@
|
|
|
827
827
|
<span class="cline-any cline-neutral"> </span>
|
|
828
828
|
<span class="cline-any cline-neutral"> </span>
|
|
829
829
|
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-yes">
|
|
830
|
+
<span class="cline-any cline-yes">28x</span>
|
|
831
831
|
<span class="cline-any cline-neutral"> </span>
|
|
832
832
|
<span class="cline-any cline-neutral"> </span>
|
|
833
833
|
<span class="cline-any cline-neutral"> </span>
|
|
834
|
-
<span class="cline-any cline-yes">
|
|
835
|
-
<span class="cline-any cline-yes">
|
|
836
|
-
<span class="cline-any cline-yes">
|
|
834
|
+
<span class="cline-any cline-yes">98x</span>
|
|
835
|
+
<span class="cline-any cline-yes">65x</span>
|
|
836
|
+
<span class="cline-any cline-yes">62x</span>
|
|
837
837
|
<span class="cline-any cline-neutral"> </span>
|
|
838
|
-
<span class="cline-any cline-yes">
|
|
838
|
+
<span class="cline-any cline-yes">62x</span>
|
|
839
839
|
<span class="cline-any cline-no"> </span>
|
|
840
840
|
<span class="cline-any cline-no"> </span>
|
|
841
841
|
<span class="cline-any cline-no"> </span>
|
|
@@ -853,46 +853,46 @@
|
|
|
853
853
|
<span class="cline-any cline-neutral"> </span>
|
|
854
854
|
<span class="cline-any cline-neutral"> </span>
|
|
855
855
|
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-yes">
|
|
856
|
+
<span class="cline-any cline-yes">62x</span>
|
|
857
857
|
<span class="cline-any cline-neutral"> </span>
|
|
858
858
|
<span class="cline-any cline-neutral"> </span>
|
|
859
859
|
<span class="cline-any cline-neutral"> </span>
|
|
860
|
-
<span class="cline-any cline-yes">
|
|
860
|
+
<span class="cline-any cline-yes">1681x</span>
|
|
861
861
|
<span class="cline-any cline-no"> </span>
|
|
862
862
|
<span class="cline-any cline-neutral"> </span>
|
|
863
863
|
<span class="cline-any cline-neutral"> </span>
|
|
864
|
-
<span class="cline-any cline-yes">
|
|
864
|
+
<span class="cline-any cline-yes">1681x</span>
|
|
865
865
|
<span class="cline-any cline-neutral"> </span>
|
|
866
866
|
<span class="cline-any cline-neutral"> </span>
|
|
867
867
|
<span class="cline-any cline-neutral"> </span>
|
|
868
|
-
<span class="cline-any cline-yes">
|
|
869
|
-
<span class="cline-any cline-yes">
|
|
868
|
+
<span class="cline-any cline-yes">407x</span>
|
|
869
|
+
<span class="cline-any cline-yes">17x</span>
|
|
870
870
|
<span class="cline-any cline-neutral"> </span>
|
|
871
871
|
<span class="cline-any cline-neutral"> </span>
|
|
872
|
-
<span class="cline-any cline-yes">
|
|
872
|
+
<span class="cline-any cline-yes">390x</span>
|
|
873
873
|
<span class="cline-any cline-neutral"> </span>
|
|
874
874
|
<span class="cline-any cline-neutral"> </span>
|
|
875
875
|
<span class="cline-any cline-neutral"> </span>
|
|
876
|
-
<span class="cline-any cline-yes">
|
|
877
|
-
<span class="cline-any cline-yes">
|
|
876
|
+
<span class="cline-any cline-yes">434x</span>
|
|
877
|
+
<span class="cline-any cline-yes">10x</span>
|
|
878
878
|
<span class="cline-any cline-neutral"> </span>
|
|
879
879
|
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-yes">
|
|
880
|
+
<span class="cline-any cline-yes">424x</span>
|
|
881
881
|
<span class="cline-any cline-neutral"> </span>
|
|
882
882
|
<span class="cline-any cline-neutral"> </span>
|
|
883
883
|
<span class="cline-any cline-neutral"> </span>
|
|
884
884
|
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-yes">
|
|
886
|
-
<span class="cline-any cline-yes">
|
|
885
|
+
<span class="cline-any cline-yes">424x</span>
|
|
886
|
+
<span class="cline-any cline-yes">27x</span>
|
|
887
887
|
<span class="cline-any cline-neutral"> </span>
|
|
888
888
|
<span class="cline-any cline-neutral"> </span>
|
|
889
|
-
<span class="cline-any cline-yes">
|
|
889
|
+
<span class="cline-any cline-yes">54x</span>
|
|
890
890
|
<span class="cline-any cline-neutral"> </span>
|
|
891
891
|
<span class="cline-any cline-neutral"> </span>
|
|
892
892
|
<span class="cline-any cline-neutral"> </span>
|
|
893
893
|
<span class="cline-any cline-neutral"> </span>
|
|
894
894
|
<span class="cline-any cline-neutral"> </span>
|
|
895
|
-
<span class="cline-any cline-yes">
|
|
895
|
+
<span class="cline-any cline-yes">397x</span>
|
|
896
896
|
<span class="cline-any cline-neutral"> </span>
|
|
897
897
|
<span class="cline-any cline-neutral"> </span>
|
|
898
898
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -900,54 +900,54 @@
|
|
|
900
900
|
<span class="cline-any cline-neutral"> </span>
|
|
901
901
|
<span class="cline-any cline-neutral"> </span>
|
|
902
902
|
<span class="cline-any cline-neutral"> </span>
|
|
903
|
-
<span class="cline-any cline-yes">
|
|
904
|
-
<span class="cline-any cline-yes">
|
|
903
|
+
<span class="cline-any cline-yes">772x</span>
|
|
904
|
+
<span class="cline-any cline-yes">772x</span>
|
|
905
905
|
<span class="cline-any cline-neutral"> </span>
|
|
906
|
-
<span class="cline-any cline-yes">
|
|
906
|
+
<span class="cline-any cline-yes">772x</span>
|
|
907
907
|
<span class="cline-any cline-yes">10x</span>
|
|
908
908
|
<span class="cline-any cline-neutral"> </span>
|
|
909
909
|
<span class="cline-any cline-neutral"> </span>
|
|
910
|
-
<span class="cline-any cline-yes">
|
|
910
|
+
<span class="cline-any cline-yes">762x</span>
|
|
911
911
|
<span class="cline-any cline-neutral"> </span>
|
|
912
|
-
<span class="cline-any cline-yes">
|
|
913
|
-
<span class="cline-any cline-yes">
|
|
912
|
+
<span class="cline-any cline-yes">762x</span>
|
|
913
|
+
<span class="cline-any cline-yes">634x</span>
|
|
914
914
|
<span class="cline-any cline-neutral"> </span>
|
|
915
915
|
<span class="cline-any cline-neutral"> </span>
|
|
916
|
-
<span class="cline-any cline-yes">
|
|
917
|
-
<span class="cline-any cline-yes">
|
|
918
|
-
<span class="cline-any cline-yes">
|
|
919
|
-
<span class="cline-any cline-yes">
|
|
916
|
+
<span class="cline-any cline-yes">128x</span>
|
|
917
|
+
<span class="cline-any cline-yes">128x</span>
|
|
918
|
+
<span class="cline-any cline-yes">128x</span>
|
|
919
|
+
<span class="cline-any cline-yes">128x</span>
|
|
920
920
|
<span class="cline-any cline-neutral"> </span>
|
|
921
|
-
<span class="cline-any cline-yes">
|
|
921
|
+
<span class="cline-any cline-yes">128x</span>
|
|
922
922
|
<span class="cline-any cline-no"> </span>
|
|
923
923
|
<span class="cline-any cline-neutral"> </span>
|
|
924
924
|
<span class="cline-any cline-neutral"> </span>
|
|
925
|
-
<span class="cline-any cline-yes">
|
|
925
|
+
<span class="cline-any cline-yes">128x</span>
|
|
926
926
|
<span class="cline-any cline-no"> </span>
|
|
927
927
|
<span class="cline-any cline-neutral"> </span>
|
|
928
928
|
<span class="cline-any cline-neutral"> </span>
|
|
929
|
-
<span class="cline-any cline-yes">
|
|
929
|
+
<span class="cline-any cline-yes">128x</span>
|
|
930
930
|
<span class="cline-any cline-neutral"> </span>
|
|
931
|
-
<span class="cline-any cline-yes">
|
|
931
|
+
<span class="cline-any cline-yes">128x</span>
|
|
932
932
|
<span class="cline-any cline-neutral"> </span>
|
|
933
|
-
<span class="cline-any cline-yes">
|
|
934
|
-
<span class="cline-any cline-yes">
|
|
935
|
-
<span class="cline-any cline-yes">
|
|
933
|
+
<span class="cline-any cline-yes">128x</span>
|
|
934
|
+
<span class="cline-any cline-yes">104x</span>
|
|
935
|
+
<span class="cline-any cline-yes">104x</span>
|
|
936
936
|
<span class="cline-any cline-neutral"> </span>
|
|
937
937
|
<span class="cline-any cline-neutral"> </span>
|
|
938
|
-
<span class="cline-any cline-yes">
|
|
938
|
+
<span class="cline-any cline-yes">24x</span>
|
|
939
939
|
<span class="cline-any cline-yes">2x</span>
|
|
940
940
|
<span class="cline-any cline-yes">2x</span>
|
|
941
941
|
<span class="cline-any cline-neutral"> </span>
|
|
942
942
|
<span class="cline-any cline-neutral"> </span>
|
|
943
|
-
<span class="cline-any cline-yes">
|
|
944
|
-
<span class="cline-any cline-yes">
|
|
943
|
+
<span class="cline-any cline-yes">22x</span>
|
|
944
|
+
<span class="cline-any cline-yes">22x</span>
|
|
945
945
|
<span class="cline-any cline-neutral"> </span>
|
|
946
946
|
<span class="cline-any cline-neutral"> </span>
|
|
947
947
|
<span class="cline-any cline-no"> </span>
|
|
948
948
|
<span class="cline-any cline-neutral"> </span>
|
|
949
949
|
<span class="cline-any cline-neutral"> </span>
|
|
950
|
-
<span class="cline-any cline-yes">
|
|
950
|
+
<span class="cline-any cline-yes">106x</span>
|
|
951
951
|
<span class="cline-any cline-neutral"> </span>
|
|
952
952
|
<span class="cline-any cline-neutral"> </span>
|
|
953
953
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -955,7 +955,7 @@
|
|
|
955
955
|
<span class="cline-any cline-neutral"> </span>
|
|
956
956
|
<span class="cline-any cline-neutral"> </span>
|
|
957
957
|
<span class="cline-any cline-neutral"> </span>
|
|
958
|
-
<span class="cline-any cline-yes">
|
|
958
|
+
<span class="cline-any cline-yes">342x</span>
|
|
959
959
|
<span class="cline-any cline-neutral"> </span>
|
|
960
960
|
<span class="cline-any cline-neutral"> </span>
|
|
961
961
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -974,65 +974,65 @@
|
|
|
974
974
|
<span class="cline-any cline-neutral"> </span>
|
|
975
975
|
<span class="cline-any cline-neutral"> </span>
|
|
976
976
|
<span class="cline-any cline-neutral"> </span>
|
|
977
|
-
<span class="cline-any cline-yes">
|
|
978
|
-
<span class="cline-any cline-yes">
|
|
979
|
-
<span class="cline-any cline-yes">
|
|
977
|
+
<span class="cline-any cline-yes">342x</span>
|
|
978
|
+
<span class="cline-any cline-yes">17x</span>
|
|
979
|
+
<span class="cline-any cline-yes">34x</span>
|
|
980
980
|
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-yes">
|
|
981
|
+
<span class="cline-any cline-yes">17x</span>
|
|
982
982
|
<span class="cline-any cline-neutral"> </span>
|
|
983
983
|
<span class="cline-any cline-neutral"> </span>
|
|
984
|
-
<span class="cline-any cline-yes">
|
|
984
|
+
<span class="cline-any cline-yes">325x</span>
|
|
985
985
|
<span class="cline-any cline-no"> </span>
|
|
986
986
|
<span class="cline-any cline-neutral"> </span>
|
|
987
987
|
<span class="cline-any cline-neutral"> </span>
|
|
988
|
-
<span class="cline-any cline-yes">
|
|
989
|
-
<span class="cline-any cline-yes">
|
|
988
|
+
<span class="cline-any cline-yes">325x</span>
|
|
989
|
+
<span class="cline-any cline-yes">98x</span>
|
|
990
990
|
<span class="cline-any cline-neutral"> </span>
|
|
991
991
|
<span class="cline-any cline-neutral"> </span>
|
|
992
|
-
<span class="cline-any cline-yes">
|
|
993
|
-
<span class="cline-any cline-yes">
|
|
992
|
+
<span class="cline-any cline-yes">283x</span>
|
|
993
|
+
<span class="cline-any cline-yes">283x</span>
|
|
994
994
|
<span class="cline-any cline-no"> </span>
|
|
995
995
|
<span class="cline-any cline-neutral"> </span>
|
|
996
996
|
<span class="cline-any cline-neutral"> </span>
|
|
997
|
-
<span class="cline-any cline-yes">
|
|
997
|
+
<span class="cline-any cline-yes">283x</span>
|
|
998
998
|
<span class="cline-any cline-no"> </span>
|
|
999
999
|
<span class="cline-any cline-neutral"> </span>
|
|
1000
1000
|
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
-
<span class="cline-any cline-yes">
|
|
1002
|
-
<span class="cline-any cline-yes">
|
|
1003
|
-
<span class="cline-any cline-yes">
|
|
1001
|
+
<span class="cline-any cline-yes">283x</span>
|
|
1002
|
+
<span class="cline-any cline-yes">265x</span>
|
|
1003
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1004
1004
|
<span class="cline-any cline-neutral"> </span>
|
|
1005
1005
|
<span class="cline-any cline-neutral"> </span>
|
|
1006
|
-
<span class="cline-any cline-yes">
|
|
1007
|
-
<span class="cline-any cline-yes">
|
|
1006
|
+
<span class="cline-any cline-yes">254x</span>
|
|
1007
|
+
<span class="cline-any cline-yes">254x</span>
|
|
1008
1008
|
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
-
<span class="cline-any cline-yes">
|
|
1010
|
-
<span class="cline-any cline-yes">
|
|
1011
|
-
<span class="cline-any cline-yes">
|
|
1009
|
+
<span class="cline-any cline-yes">254x</span>
|
|
1010
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1011
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1012
1012
|
<span class="cline-any cline-neutral"> </span>
|
|
1013
1013
|
<span class="cline-any cline-no"> </span>
|
|
1014
1014
|
<span class="cline-any cline-neutral"> </span>
|
|
1015
1015
|
<span class="cline-any cline-neutral"> </span>
|
|
1016
1016
|
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-yes">
|
|
1017
|
+
<span class="cline-any cline-yes">254x</span>
|
|
1018
1018
|
<span class="cline-any cline-no"> </span>
|
|
1019
1019
|
<span class="cline-any cline-neutral"> </span>
|
|
1020
1020
|
<span class="cline-any cline-neutral"> </span>
|
|
1021
|
-
<span class="cline-any cline-yes">
|
|
1021
|
+
<span class="cline-any cline-yes">254x</span>
|
|
1022
1022
|
<span class="cline-any cline-neutral"> </span>
|
|
1023
1023
|
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
-
<span class="cline-any cline-yes">
|
|
1025
|
-
<span class="cline-any cline-yes">
|
|
1026
|
-
<span class="cline-any cline-yes">
|
|
1024
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1025
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1026
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1027
1027
|
<span class="cline-any cline-neutral"> </span>
|
|
1028
1028
|
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
-
<span class="cline-any cline-yes">
|
|
1029
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1030
1030
|
<span class="cline-any cline-no"> </span>
|
|
1031
1031
|
<span class="cline-any cline-neutral"> </span>
|
|
1032
1032
|
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
-
<span class="cline-any cline-yes">
|
|
1034
|
-
<span class="cline-any cline-yes">
|
|
1035
|
-
<span class="cline-any cline-yes">
|
|
1033
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1034
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1035
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1036
1036
|
<span class="cline-any cline-neutral"> </span>
|
|
1037
1037
|
<span class="cline-any cline-neutral"> </span>
|
|
1038
1038
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1121,25 +1121,25 @@
|
|
|
1121
1121
|
<span class="cline-any cline-neutral"> </span>
|
|
1122
1122
|
<span class="cline-any cline-neutral"> </span>
|
|
1123
1123
|
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
-
<span class="cline-any cline-yes">
|
|
1125
|
-
<span class="cline-any cline-yes">
|
|
1124
|
+
<span class="cline-any cline-yes">325x</span>
|
|
1125
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1126
1126
|
<span class="cline-any cline-neutral"> </span>
|
|
1127
1127
|
<span class="cline-any cline-neutral"> </span>
|
|
1128
1128
|
<span class="cline-any cline-neutral"> </span>
|
|
1129
1129
|
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
-
<span class="cline-any cline-yes">
|
|
1130
|
+
<span class="cline-any cline-yes">308x</span>
|
|
1131
1131
|
<span class="cline-any cline-neutral"> </span>
|
|
1132
1132
|
<span class="cline-any cline-neutral"> </span>
|
|
1133
1133
|
<span class="cline-any cline-neutral"> </span>
|
|
1134
1134
|
<span class="cline-any cline-neutral"> </span>
|
|
1135
1135
|
<span class="cline-any cline-neutral"> </span>
|
|
1136
1136
|
<span class="cline-any cline-neutral"> </span>
|
|
1137
|
-
<span class="cline-any cline-yes">
|
|
1137
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1138
1138
|
<span class="cline-any cline-no"> </span>
|
|
1139
1139
|
<span class="cline-any cline-neutral"> </span>
|
|
1140
1140
|
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
-
<span class="cline-any cline-yes">
|
|
1142
|
-
<span class="cline-any cline-yes">
|
|
1141
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1142
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1143
1143
|
<span class="cline-any cline-no"> </span>
|
|
1144
1144
|
<span class="cline-any cline-neutral"> </span>
|
|
1145
1145
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1164,18 +1164,18 @@
|
|
|
1164
1164
|
<span class="cline-any cline-neutral"> </span>
|
|
1165
1165
|
<span class="cline-any cline-neutral"> </span>
|
|
1166
1166
|
<span class="cline-any cline-neutral"> </span>
|
|
1167
|
-
<span class="cline-any cline-yes">
|
|
1167
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1168
1168
|
<span class="cline-any cline-no"> </span>
|
|
1169
1169
|
<span class="cline-any cline-neutral"> </span>
|
|
1170
1170
|
<span class="cline-any cline-neutral"> </span>
|
|
1171
|
-
<span class="cline-any cline-yes">
|
|
1172
|
-
<span class="cline-any cline-yes">
|
|
1171
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">20x</span>
|
|
1173
1173
|
<span class="cline-any cline-neutral"> </span>
|
|
1174
1174
|
<span class="cline-any cline-neutral"> </span>
|
|
1175
1175
|
<span class="cline-any cline-neutral"> </span>
|
|
1176
1176
|
<span class="cline-any cline-neutral"> </span>
|
|
1177
1177
|
<span class="cline-any cline-neutral"> </span>
|
|
1178
|
-
<span class="cline-any cline-yes">
|
|
1178
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1179
1179
|
<span class="cline-any cline-neutral"> </span>
|
|
1180
1180
|
<span class="cline-any cline-neutral"> </span>
|
|
1181
1181
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1201,19 +1201,19 @@
|
|
|
1201
1201
|
<span class="cline-any cline-neutral"> </span>
|
|
1202
1202
|
<span class="cline-any cline-neutral"> </span>
|
|
1203
1203
|
<span class="cline-any cline-neutral"> </span>
|
|
1204
|
-
<span class="cline-any cline-yes">
|
|
1205
|
-
<span class="cline-any cline-yes">
|
|
1204
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1205
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1206
1206
|
<span class="cline-any cline-yes">6x</span>
|
|
1207
1207
|
<span class="cline-any cline-neutral"> </span>
|
|
1208
1208
|
<span class="cline-any cline-neutral"> </span>
|
|
1209
|
-
<span class="cline-any cline-yes">
|
|
1210
|
-
<span class="cline-any cline-yes">
|
|
1209
|
+
<span class="cline-any cline-yes">380x</span>
|
|
1210
|
+
<span class="cline-any cline-yes">380x</span>
|
|
1211
1211
|
<span class="cline-any cline-neutral"> </span>
|
|
1212
|
-
<span class="cline-any cline-yes">
|
|
1213
|
-
<span class="cline-any cline-yes">
|
|
1212
|
+
<span class="cline-any cline-yes">380x</span>
|
|
1213
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1214
1214
|
<span class="cline-any cline-neutral"> </span>
|
|
1215
1215
|
<span class="cline-any cline-neutral"> </span>
|
|
1216
|
-
<span class="cline-any cline-yes">
|
|
1216
|
+
<span class="cline-any cline-yes">371x</span>
|
|
1217
1217
|
<span class="cline-any cline-no"> </span>
|
|
1218
1218
|
<span class="cline-any cline-neutral"> </span>
|
|
1219
1219
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1221,9 +1221,9 @@
|
|
|
1221
1221
|
<span class="cline-any cline-no"> </span>
|
|
1222
1222
|
<span class="cline-any cline-neutral"> </span>
|
|
1223
1223
|
<span class="cline-any cline-neutral"> </span>
|
|
1224
|
-
<span class="cline-any cline-yes">
|
|
1224
|
+
<span class="cline-any cline-yes">371x</span>
|
|
1225
1225
|
<span class="cline-any cline-neutral"> </span>
|
|
1226
|
-
<span class="cline-any cline-yes">
|
|
1226
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1227
1227
|
<span class="cline-any cline-neutral"> </span>
|
|
1228
1228
|
<span class="cline-any cline-yes">1x</span>
|
|
1229
1229
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1232,17 +1232,17 @@
|
|
|
1232
1232
|
<span class="cline-any cline-yes">1x</span>
|
|
1233
1233
|
<span class="cline-any cline-neutral"> </span>
|
|
1234
1234
|
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
-
<span class="cline-any cline-yes">
|
|
1235
|
+
<span class="cline-any cline-yes">370x</span>
|
|
1236
1236
|
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
-
<span class="cline-any cline-yes">
|
|
1237
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1238
1238
|
<span class="cline-any cline-neutral"> </span>
|
|
1239
1239
|
<span class="cline-any cline-yes">1x</span>
|
|
1240
1240
|
<span class="cline-any cline-yes">1x</span>
|
|
1241
1241
|
<span class="cline-any cline-neutral"> </span>
|
|
1242
1242
|
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
-
<span class="cline-any cline-yes">
|
|
1243
|
+
<span class="cline-any cline-yes">369x</span>
|
|
1244
1244
|
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
-
<span class="cline-any cline-yes">
|
|
1245
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1246
1246
|
<span class="cline-any cline-neutral"> </span>
|
|
1247
1247
|
<span class="cline-any cline-no"> </span>
|
|
1248
1248
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1251,9 +1251,9 @@
|
|
|
1251
1251
|
<span class="cline-any cline-no"> </span>
|
|
1252
1252
|
<span class="cline-any cline-neutral"> </span>
|
|
1253
1253
|
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
-
<span class="cline-any cline-yes">
|
|
1254
|
+
<span class="cline-any cline-yes">369x</span>
|
|
1255
1255
|
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
-
<span class="cline-any cline-yes">
|
|
1256
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1257
1257
|
<span class="cline-any cline-neutral"> </span>
|
|
1258
1258
|
<span class="cline-any cline-no"> </span>
|
|
1259
1259
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1262,8 +1262,8 @@
|
|
|
1262
1262
|
<span class="cline-any cline-no"> </span>
|
|
1263
1263
|
<span class="cline-any cline-neutral"> </span>
|
|
1264
1264
|
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-yes">
|
|
1266
|
-
<span class="cline-any cline-yes">
|
|
1265
|
+
<span class="cline-any cline-yes">369x</span>
|
|
1266
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1267
1267
|
<span class="cline-any cline-neutral"> </span>
|
|
1268
1268
|
<span class="cline-any cline-neutral"> </span>
|
|
1269
1269
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1275,12 +1275,12 @@
|
|
|
1275
1275
|
<span class="cline-any cline-no"> </span>
|
|
1276
1276
|
<span class="cline-any cline-neutral"> </span>
|
|
1277
1277
|
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
-
<span class="cline-any cline-yes">
|
|
1278
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1279
1279
|
<span class="cline-any cline-yes">1x</span>
|
|
1280
1280
|
<span class="cline-any cline-neutral"> </span>
|
|
1281
1281
|
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
-
<span class="cline-any cline-yes">
|
|
1283
|
-
<span class="cline-any cline-yes">
|
|
1282
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1283
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1284
1284
|
<span class="cline-any cline-yes">2x</span>
|
|
1285
1285
|
<span class="cline-any cline-neutral"> </span>
|
|
1286
1286
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1289,50 +1289,50 @@
|
|
|
1289
1289
|
<span class="cline-any cline-neutral"> </span>
|
|
1290
1290
|
<span class="cline-any cline-neutral"> </span>
|
|
1291
1291
|
<span class="cline-any cline-neutral"> </span>
|
|
1292
|
-
<span class="cline-any cline-yes">
|
|
1292
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1293
1293
|
<span class="cline-any cline-neutral"> </span>
|
|
1294
1294
|
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
-
<span class="cline-any cline-yes">
|
|
1296
|
-
<span class="cline-any cline-yes">
|
|
1297
|
-
<span class="cline-any cline-yes">
|
|
1295
|
+
<span class="cline-any cline-yes">351x</span>
|
|
1296
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1297
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1298
1298
|
<span class="cline-any cline-no"> </span>
|
|
1299
1299
|
<span class="cline-any cline-no"> </span>
|
|
1300
1300
|
<span class="cline-any cline-neutral"> </span>
|
|
1301
1301
|
<span class="cline-any cline-neutral"> </span>
|
|
1302
|
-
<span class="cline-any cline-yes">
|
|
1303
|
-
<span class="cline-any cline-yes">
|
|
1302
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1303
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1304
1304
|
<span class="cline-any cline-no"> </span>
|
|
1305
1305
|
<span class="cline-any cline-no"> </span>
|
|
1306
1306
|
<span class="cline-any cline-neutral"> </span>
|
|
1307
1307
|
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
-
<span class="cline-any cline-yes">
|
|
1308
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1309
1309
|
<span class="cline-any cline-yes">4x</span>
|
|
1310
1310
|
<span class="cline-any cline-neutral"> </span>
|
|
1311
1311
|
<span class="cline-any cline-neutral"> </span>
|
|
1312
|
-
<span class="cline-any cline-yes">
|
|
1312
|
+
<span class="cline-any cline-yes">27x</span>
|
|
1313
1313
|
<span class="cline-any cline-neutral"> </span>
|
|
1314
1314
|
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
-
<span class="cline-any cline-yes">
|
|
1316
|
-
<span class="cline-any cline-yes">
|
|
1317
|
-
<span class="cline-any cline-yes">
|
|
1315
|
+
<span class="cline-any cline-yes">324x</span>
|
|
1316
|
+
<span class="cline-any cline-yes">278x</span>
|
|
1317
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1318
1318
|
<span class="cline-any cline-neutral"> </span>
|
|
1319
1319
|
<span class="cline-any cline-neutral"> </span>
|
|
1320
|
-
<span class="cline-any cline-yes">
|
|
1320
|
+
<span class="cline-any cline-yes">270x</span>
|
|
1321
1321
|
<span class="cline-any cline-yes">6x</span>
|
|
1322
1322
|
<span class="cline-any cline-neutral"> </span>
|
|
1323
1323
|
<span class="cline-any cline-neutral"> </span>
|
|
1324
1324
|
<span class="cline-any cline-neutral"> </span>
|
|
1325
1325
|
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
-
<span class="cline-any cline-yes">
|
|
1326
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1327
1327
|
<span class="cline-any cline-neutral"> </span>
|
|
1328
1328
|
<span class="cline-any cline-neutral"> </span>
|
|
1329
1329
|
<span class="cline-any cline-neutral"> </span>
|
|
1330
1330
|
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
-
<span class="cline-any cline-yes">
|
|
1331
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1332
1332
|
<span class="cline-any cline-neutral"> </span>
|
|
1333
1333
|
<span class="cline-any cline-neutral"> </span>
|
|
1334
1334
|
<span class="cline-any cline-neutral"> </span>
|
|
1335
|
-
<span class="cline-any cline-yes">
|
|
1335
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1336
1336
|
<span class="cline-any cline-yes">6x</span>
|
|
1337
1337
|
<span class="cline-any cline-neutral"> </span>
|
|
1338
1338
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1352,11 +1352,11 @@
|
|
|
1352
1352
|
<span class="cline-any cline-neutral"> </span>
|
|
1353
1353
|
<span class="cline-any cline-neutral"> </span>
|
|
1354
1354
|
<span class="cline-any cline-neutral"> </span>
|
|
1355
|
-
<span class="cline-any cline-yes">
|
|
1355
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1356
1356
|
<span class="cline-any cline-no"> </span>
|
|
1357
1357
|
<span class="cline-any cline-neutral"> </span>
|
|
1358
1358
|
<span class="cline-any cline-neutral"> </span>
|
|
1359
|
-
<span class="cline-any cline-yes">
|
|
1359
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1360
1360
|
<span class="cline-any cline-neutral"> </span>
|
|
1361
1361
|
<span class="cline-any cline-neutral"> </span>
|
|
1362
1362
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1365,7 +1365,7 @@
|
|
|
1365
1365
|
<span class="cline-any cline-neutral"> </span>
|
|
1366
1366
|
<span class="cline-any cline-neutral"> </span>
|
|
1367
1367
|
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
-
<span class="cline-any cline-yes">
|
|
1368
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1369
1369
|
<span class="cline-any cline-neutral"> </span>
|
|
1370
1370
|
<span class="cline-any cline-neutral"> </span>
|
|
1371
1371
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1382,22 +1382,22 @@
|
|
|
1382
1382
|
<span class="cline-any cline-neutral"> </span>
|
|
1383
1383
|
<span class="cline-any cline-neutral"> </span>
|
|
1384
1384
|
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
-
<span class="cline-any cline-yes">
|
|
1385
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1386
1386
|
<span class="cline-any cline-no"> </span>
|
|
1387
1387
|
<span class="cline-any cline-neutral"> </span>
|
|
1388
1388
|
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
-
<span class="cline-any cline-yes">
|
|
1389
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1390
1390
|
<span class="cline-any cline-neutral"> </span>
|
|
1391
1391
|
<span class="cline-any cline-neutral"> </span>
|
|
1392
1392
|
<span class="cline-any cline-neutral"> </span>
|
|
1393
1393
|
<span class="cline-any cline-no"> </span>
|
|
1394
1394
|
<span class="cline-any cline-neutral"> </span>
|
|
1395
1395
|
<span class="cline-any cline-neutral"> </span>
|
|
1396
|
-
<span class="cline-any cline-yes">
|
|
1397
|
-
<span class="cline-any cline-yes">
|
|
1396
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1397
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1398
1398
|
<span class="cline-any cline-no"> </span>
|
|
1399
|
-
<span class="cline-any cline-yes">
|
|
1400
|
-
<span class="cline-any cline-yes">
|
|
1399
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1400
|
+
<span class="cline-any cline-yes">16x</span>
|
|
1401
1401
|
<span class="cline-any cline-yes">1x</span>
|
|
1402
1402
|
<span class="cline-any cline-neutral"> </span>
|
|
1403
1403
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1415,11 +1415,11 @@
|
|
|
1415
1415
|
<span class="cline-any cline-neutral"> </span>
|
|
1416
1416
|
<span class="cline-any cline-neutral"> </span>
|
|
1417
1417
|
<span class="cline-any cline-neutral"> </span>
|
|
1418
|
-
<span class="cline-any cline-yes">
|
|
1418
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1419
1419
|
<span class="cline-any cline-yes">1x</span>
|
|
1420
1420
|
<span class="cline-any cline-neutral"> </span>
|
|
1421
1421
|
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-yes">
|
|
1422
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1423
1423
|
<span class="cline-any cline-neutral"> </span>
|
|
1424
1424
|
<span class="cline-any cline-neutral"> </span>
|
|
1425
1425
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1427,17 +1427,17 @@
|
|
|
1427
1427
|
<span class="cline-any cline-no"> </span>
|
|
1428
1428
|
<span class="cline-any cline-neutral"> </span>
|
|
1429
1429
|
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
-
<span class="cline-any cline-yes">
|
|
1430
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1431
1431
|
<span class="cline-any cline-yes">1x</span>
|
|
1432
1432
|
<span class="cline-any cline-yes">1x</span>
|
|
1433
1433
|
<span class="cline-any cline-neutral"> </span>
|
|
1434
1434
|
<span class="cline-any cline-neutral"> </span>
|
|
1435
1435
|
<span class="cline-any cline-neutral"> </span>
|
|
1436
|
-
<span class="cline-any cline-yes">
|
|
1437
|
-
<span class="cline-any cline-yes">
|
|
1436
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1437
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1438
1438
|
<span class="cline-any cline-no"> </span>
|
|
1439
1439
|
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
-
<span class="cline-any cline-yes">
|
|
1440
|
+
<span class="cline-any cline-yes">376x</span>
|
|
1441
1441
|
<span class="cline-any cline-yes">1x</span>
|
|
1442
1442
|
<span class="cline-any cline-neutral"> </span>
|
|
1443
1443
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1445,11 +1445,11 @@
|
|
|
1445
1445
|
<span class="cline-any cline-neutral"> </span>
|
|
1446
1446
|
<span class="cline-any cline-neutral"> </span>
|
|
1447
1447
|
<span class="cline-any cline-neutral"> </span>
|
|
1448
|
-
<span class="cline-any cline-yes">
|
|
1448
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1449
1449
|
<span class="cline-any cline-yes">1x</span>
|
|
1450
1450
|
<span class="cline-any cline-neutral"> </span>
|
|
1451
1451
|
<span class="cline-any cline-neutral"> </span>
|
|
1452
|
-
<span class="cline-any cline-yes">
|
|
1452
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1453
1453
|
<span class="cline-any cline-neutral"> </span>
|
|
1454
1454
|
<span class="cline-any cline-neutral"> </span>
|
|
1455
1455
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1462,32 +1462,32 @@
|
|
|
1462
1462
|
<span class="cline-any cline-neutral"> </span>
|
|
1463
1463
|
<span class="cline-any cline-neutral"> </span>
|
|
1464
1464
|
<span class="cline-any cline-neutral"> </span>
|
|
1465
|
-
<span class="cline-any cline-yes">
|
|
1465
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1466
1466
|
<span class="cline-any cline-neutral"> </span>
|
|
1467
1467
|
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
-
<span class="cline-any cline-yes">
|
|
1468
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1469
1469
|
<span class="cline-any cline-neutral"> </span>
|
|
1470
1470
|
<span class="cline-any cline-neutral"> </span>
|
|
1471
1471
|
<span class="cline-any cline-neutral"> </span>
|
|
1472
1472
|
<span class="cline-any cline-neutral"> </span>
|
|
1473
|
-
<span class="cline-any cline-yes">
|
|
1473
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1474
1474
|
<span class="cline-any cline-neutral"> </span>
|
|
1475
1475
|
<span class="cline-any cline-neutral"> </span>
|
|
1476
1476
|
<span class="cline-any cline-neutral"> </span>
|
|
1477
1477
|
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-yes">
|
|
1478
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1479
1479
|
<span class="cline-any cline-neutral"> </span>
|
|
1480
1480
|
<span class="cline-any cline-neutral"> </span>
|
|
1481
1481
|
<span class="cline-any cline-neutral"> </span>
|
|
1482
1482
|
<span class="cline-any cline-neutral"> </span>
|
|
1483
|
-
<span class="cline-any cline-yes">
|
|
1484
|
-
<span class="cline-any cline-yes">
|
|
1483
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1484
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1485
1485
|
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
-
<span class="cline-any cline-yes">
|
|
1486
|
+
<span class="cline-any cline-yes">204x</span>
|
|
1487
1487
|
<span class="cline-any cline-neutral"> </span>
|
|
1488
1488
|
<span class="cline-any cline-neutral"> </span>
|
|
1489
1489
|
<span class="cline-any cline-neutral"> </span>
|
|
1490
|
-
<span class="cline-any cline-yes">
|
|
1490
|
+
<span class="cline-any cline-yes">386x</span>
|
|
1491
1491
|
<span class="cline-any cline-neutral"> </span>
|
|
1492
1492
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { Attribute, AttributeProperty, Schema } from "@featurevisor/types";
|
|
1493
1493
|
import { z } from "zod";
|
|
@@ -1534,7 +1534,7 @@ function isPrimitiveAttributeValue(value: unknown): boolean {
|
|
|
1534
1534
|
return (
|
|
1535
1535
|
value === null ||
|
|
1536
1536
|
typeof value === "string" ||
|
|
1537
|
-
<span class="branch-2 cbranch-no" title="branch not covered" > typeof value === "number"
|
|
1537
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > typeof value === "number" ||</span>
|
|
1538
1538
|
<span class="branch-3 cbranch-no" title="branch not covered" > typeof value === "boolean"</span>
|
|
1539
1539
|
);
|
|
1540
1540
|
}
|
|
@@ -1548,16 +1548,16 @@ function valueDeepEqual(a: unknown, b: unknown): boolean {
|
|
|
1548
1548
|
if (typeof a !== typeof b) return false;
|
|
1549
1549
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (a === null || b === null) <span class="cstat-no" title="statement not covered" >return a === b;</span>
|
|
1550
1550
|
|
|
1551
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof a === "object" && <span class="branch-1 cbranch-no" title="branch not covered" >typeof b === "object")</span>
|
|
1552
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1553
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1554
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1555
|
-
<span class="cstat-no" title="statement not covered" > return a.every(<span class="fstat-no" title="function not covered" >(v</span>alue, index) => <span class="cstat-no" title="statement not covered" >valueDeepEqual(value, b[index]))
|
|
1551
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof a === "object" && <span class="branch-1 cbranch-no" title="branch not covered" >typeof b === "object") {</span>
|
|
1552
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(a) !== Array.isArray(b)) <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
1553
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(a) && Array.isArray(b)) {</span>
|
|
1554
|
+
<span class="cstat-no" title="statement not covered" > if (a.length !== b.length) <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
1555
|
+
<span class="cstat-no" title="statement not covered" > return a.every(<span class="fstat-no" title="function not covered" >(v</span>alue, index) => <span class="cstat-no" title="statement not covered" >valueDeepEqual(value, b[index]));</span></span>
|
|
1556
1556
|
}
|
|
1557
1557
|
|
|
1558
1558
|
const keysA = <span class="cstat-no" title="statement not covered" >Object.keys(a as object).sort();</span>
|
|
1559
1559
|
const keysB = <span class="cstat-no" title="statement not covered" >Object.keys(b as object).sort();</span>
|
|
1560
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1560
|
+
<span class="cstat-no" title="statement not covered" > if (keysA.length !== keysB.length || keysA.some(<span class="fstat-no" title="function not covered" >(k</span>ey, index) => <span class="cstat-no" title="statement not covered" >key !== keysB[index])</span>) {</span>
|
|
1561
1561
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1562
1562
|
}
|
|
1563
1563
|
|
|
@@ -1635,7 +1635,7 @@ function resolveAttributePath(
|
|
|
1635
1635
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
1636
1636
|
}
|
|
1637
1637
|
|
|
1638
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if ("oneOf" in current && <span class="branch-1 cbranch-no" title="branch not covered" >Array.isArray(current.oneOf)
|
|
1638
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if ("oneOf" in current && <span class="branch-1 cbranch-no" title="branch not covered" >Array.isArray(current.oneOf) && <span class="branch-2 cbranch-no" title="branch not covered" >c</span>urrent.oneOf.length > 0) {</span>
|
|
1639
1639
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
1640
1640
|
}
|
|
1641
1641
|
|
|
@@ -1653,7 +1653,7 @@ function resolveAttributePath(
|
|
|
1653
1653
|
continue;
|
|
1654
1654
|
}
|
|
1655
1655
|
|
|
1656
|
-
if (!properties && !additionalProperties) {
|
|
1656
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!properties && !additionalProperties) {
|
|
1657
1657
|
return index === rest.length - 1 ? { kind: "flat-object-property" } : null;
|
|
1658
1658
|
}
|
|
1659
1659
|
|
|
@@ -1727,14 +1727,14 @@ function matchesSchemaValue(
|
|
|
1727
1727
|
}
|
|
1728
1728
|
}
|
|
1729
1729
|
|
|
1730
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (type === "date" && <span class="branch-1 cbranch-no" title="branch not covered" >!isIsoDateString(value))</span>
|
|
1730
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (type === "date" && <span class="branch-1 cbranch-no" title="branch not covered" >!isIsoDateString(value)) {</span>
|
|
1731
1731
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1732
1732
|
}
|
|
1733
1733
|
|
|
1734
1734
|
return true;
|
|
1735
1735
|
}
|
|
1736
1736
|
|
|
1737
|
-
if (type === "integer" || type === "double") {
|
|
1737
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (type === "integer" || type === "double") {
|
|
1738
1738
|
if (typeof value !== "number") {
|
|
1739
1739
|
return false;
|
|
1740
1740
|
}
|
|
@@ -1748,8 +1748,8 @@ function matchesSchemaValue(
|
|
|
1748
1748
|
return true;
|
|
1749
1749
|
}
|
|
1750
1750
|
|
|
1751
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1752
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1751
|
+
<span class="cstat-no" title="statement not covered" > if (type === "object") {</span>
|
|
1752
|
+
<span class="cstat-no" title="statement not covered" > if (typeof value !== "object" || value === null || Array.isArray(value)) {</span>
|
|
1753
1753
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1754
1754
|
}
|
|
1755
1755
|
|
|
@@ -1757,28 +1757,28 @@ function matchesSchemaValue(
|
|
|
1757
1757
|
const properties = <span class="cstat-no" title="statement not covered" >resolved.properties;</span>
|
|
1758
1758
|
const additionalProperties = <span class="cstat-no" title="statement not covered" >resolved.additionalProperties;</span>
|
|
1759
1759
|
|
|
1760
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1761
|
-
<span class="cstat-no" title="statement not covered" > return Object.values(objectValue).every(<span class="fstat-no" title="function not covered" >(e</span>ntry) => <span class="cstat-no" title="statement not covered" >isPrimitiveAttributeValue(entry))
|
|
1760
|
+
<span class="cstat-no" title="statement not covered" > if ((!properties || typeof properties !== "object") && !additionalProperties) {</span>
|
|
1761
|
+
<span class="cstat-no" title="statement not covered" > return Object.values(objectValue).every(<span class="fstat-no" title="function not covered" >(e</span>ntry) => <span class="cstat-no" title="statement not covered" >isPrimitiveAttributeValue(entry));</span></span>
|
|
1762
1762
|
}
|
|
1763
1763
|
|
|
1764
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1764
|
+
<span class="cstat-no" title="statement not covered" > if (properties && typeof properties === "object") {</span>
|
|
1765
1765
|
const required = <span class="cstat-no" title="statement not covered" >new Set(resolved.required || []);</span>
|
|
1766
1766
|
<span class="cstat-no" title="statement not covered" > for (const key of required) {</span>
|
|
1767
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1767
|
+
<span class="cstat-no" title="statement not covered" > if (!Object.prototype.hasOwnProperty.call(objectValue, key)) {</span>
|
|
1768
1768
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1769
1769
|
}
|
|
1770
1770
|
}
|
|
1771
1771
|
|
|
1772
1772
|
<span class="cstat-no" title="statement not covered" > for (const key of Object.keys(objectValue)) {</span>
|
|
1773
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1774
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1773
|
+
<span class="cstat-no" title="statement not covered" > if (properties[key]) {</span>
|
|
1774
|
+
<span class="cstat-no" title="statement not covered" > if (!matchesSchemaValue(properties[key] as SchemaNode, objectValue[key], schemasByKey)) {</span>
|
|
1775
1775
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1776
1776
|
}
|
|
1777
1777
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
1778
1778
|
}
|
|
1779
1779
|
|
|
1780
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1781
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1780
|
+
<span class="cstat-no" title="statement not covered" > if (additionalProperties && typeof additionalProperties === "object") {</span>
|
|
1781
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
1782
1782
|
!matchesSchemaValue(additionalProperties as SchemaNode, objectValue[key], schemasByKey)
|
|
1783
1783
|
) {
|
|
1784
1784
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
@@ -1792,7 +1792,7 @@ function matchesSchemaValue(
|
|
|
1792
1792
|
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1793
1793
|
}
|
|
1794
1794
|
|
|
1795
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1795
|
+
<span class="cstat-no" title="statement not covered" > if (additionalProperties && typeof additionalProperties === "object") {</span>
|
|
1796
1796
|
<span class="cstat-no" title="statement not covered" > return Object.values(objectValue).every(<span class="fstat-no" title="function not covered" >(e</span>ntry) =></span>
|
|
1797
1797
|
<span class="cstat-no" title="statement not covered" > matchesSchemaValue(additionalProperties as SchemaNode, entry, schemasByKey),</span>
|
|
1798
1798
|
);
|
|
@@ -1801,24 +1801,24 @@ function matchesSchemaValue(
|
|
|
1801
1801
|
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1802
1802
|
}
|
|
1803
1803
|
|
|
1804
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1805
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1804
|
+
<span class="cstat-no" title="statement not covered" > if (type === "array") {</span>
|
|
1805
|
+
<span class="cstat-no" title="statement not covered" > if (!Array.isArray(value)) {</span>
|
|
1806
1806
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1807
1807
|
}
|
|
1808
1808
|
|
|
1809
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1810
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1809
|
+
<span class="cstat-no" title="statement not covered" > if (resolved.minItems !== undefined && value.length < resolved.minItems) <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
1810
|
+
<span class="cstat-no" title="statement not covered" > if (resolved.maxItems !== undefined && value.length > resolved.maxItems) <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
1811
1811
|
|
|
1812
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1813
|
-
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0
|
|
1814
|
-
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >i + 1
|
|
1815
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1812
|
+
<span class="cstat-no" title="statement not covered" > if (resolved.uniqueItems) {</span>
|
|
1813
|
+
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0; i</span> < value.length; i++) {</span>
|
|
1814
|
+
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >i + 1; j</span> < value.length; j++) {</span>
|
|
1815
|
+
<span class="cstat-no" title="statement not covered" > if (valueDeepEqual(value[i], value[j])) <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
1816
1816
|
}
|
|
1817
1817
|
}
|
|
1818
1818
|
}
|
|
1819
1819
|
|
|
1820
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1821
|
-
<span class="cstat-no" title="statement not covered" > return value.every(<span class="fstat-no" title="function not covered" >(e</span>ntry) => <span class="cstat-no" title="statement not covered" >typeof entry === "string")
|
|
1820
|
+
<span class="cstat-no" title="statement not covered" > if (!resolved.items || typeof resolved.items !== "object") {</span>
|
|
1821
|
+
<span class="cstat-no" title="statement not covered" > return value.every(<span class="fstat-no" title="function not covered" >(e</span>ntry) => <span class="cstat-no" title="statement not covered" >typeof entry === "string");</span></span>
|
|
1822
1822
|
}
|
|
1823
1823
|
|
|
1824
1824
|
<span class="cstat-no" title="statement not covered" > return value.every(<span class="fstat-no" title="function not covered" >(e</span>ntry) =></span>
|
|
@@ -1852,18 +1852,18 @@ function getArrayItemLeaf(
|
|
|
1852
1852
|
}
|
|
1853
1853
|
|
|
1854
1854
|
const resolved = resolveSchemaRefs(leaf.schema, schemasByKey);
|
|
1855
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if ("oneOf" in resolved && <span class="branch-1 cbranch-no" title="branch not covered" >Array.isArray(resolved.oneOf)
|
|
1855
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if ("oneOf" in resolved && <span class="branch-1 cbranch-no" title="branch not covered" >Array.isArray(resolved.oneOf) && <span class="branch-2 cbranch-no" title="branch not covered" >r</span>esolved.oneOf.length > 0) {</span>
|
|
1856
1856
|
const itemLeaves = <span class="cstat-no" title="statement not covered" >resolved.oneOf</span>
|
|
1857
1857
|
.map(<span class="fstat-no" title="function not covered" >(b</span>ranch) =>
|
|
1858
1858
|
<span class="cstat-no" title="statement not covered" > getArrayItemLeaf({ kind: "schema", schema: branch as SchemaNode }, schemasByKey),</span>
|
|
1859
1859
|
)
|
|
1860
|
-
.filter(<span class="fstat-no" title="function not covered" >(i</span>tem): item is ResolvedLeaf => <span class="cstat-no" title="statement not covered" >item !== null)
|
|
1860
|
+
.filter(<span class="fstat-no" title="function not covered" >(i</span>tem): item is ResolvedLeaf => <span class="cstat-no" title="statement not covered" >item !== null);</span>
|
|
1861
1861
|
|
|
1862
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1862
|
+
<span class="cstat-no" title="statement not covered" > if (itemLeaves.length === 0) {</span>
|
|
1863
1863
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
1864
1864
|
}
|
|
1865
1865
|
|
|
1866
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1866
|
+
<span class="cstat-no" title="statement not covered" > if (itemLeaves.every(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >item.kind === "flat-array-item")) {</span></span>
|
|
1867
1867
|
<span class="cstat-no" title="statement not covered" > return { kind: "flat-array-item" };</span>
|
|
1868
1868
|
}
|
|
1869
1869
|
|
|
@@ -2069,10 +2069,10 @@ export function getConditionsZodSchema(
|
|
|
2069
2069
|
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
2070
2070
|
}
|
|
2071
2071
|
|
|
2072
|
-
return /^[gimsuy]
|
|
2072
|
+
return /^[gimsuy]+$/.test(value) && new Set(value).size === value.length;
|
|
2073
2073
|
},
|
|
2074
2074
|
{
|
|
2075
|
-
message: `regexFlags must
|
|
2075
|
+
message: `regexFlags must contain unique characters from: g, i, m, s, u, y`,
|
|
2076
2076
|
},
|
|
2077
2077
|
)
|
|
2078
2078
|
.optional(),
|
|
@@ -2117,7 +2117,7 @@ export function getConditionsZodSchema(
|
|
|
2117
2117
|
);
|
|
2118
2118
|
}
|
|
2119
2119
|
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (data.value instanceof Date) {</span>
|
|
2120
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2120
|
+
<span class="cstat-no" title="statement not covered" > if (isNaN(data.value.getTime())) {</span>
|
|
2121
2121
|
<span class="cstat-no" title="statement not covered" > addIssue(context, `when operator is "${data.operator}", value is a Date but invalid`);</span>
|
|
2122
2122
|
}
|
|
2123
2123
|
} else {
|
|
@@ -2141,7 +2141,7 @@ export function getConditionsZodSchema(
|
|
|
2141
2141
|
}
|
|
2142
2142
|
|
|
2143
2143
|
if (!arrayMembershipOperators.includes(data.operator) && Array.isArray(data.value)) {
|
|
2144
|
-
if (!["in", "notIn"].includes(data.operator)) {
|
|
2144
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!["in", "notIn"].includes(data.operator)) {
|
|
2145
2145
|
addIssue(context, `when operator is "${data.operator}", value must not be an array`);
|
|
2146
2146
|
}
|
|
2147
2147
|
}
|
|
@@ -2178,17 +2178,17 @@ export function getConditionsZodSchema(
|
|
|
2178
2178
|
const andOrNotConditionZodSchema = z.union([
|
|
2179
2179
|
z
|
|
2180
2180
|
.object({
|
|
2181
|
-
and: z.array(z.lazy(() => conditionZodSchema)),
|
|
2181
|
+
and: z.array(z.lazy(() => conditionZodSchema)).min(1),
|
|
2182
2182
|
})
|
|
2183
2183
|
.strict(),
|
|
2184
2184
|
z
|
|
2185
2185
|
.object({
|
|
2186
|
-
or: z.array(z.lazy(() => conditionZodSchema)),
|
|
2186
|
+
or: z.array(z.lazy(() => conditionZodSchema)).min(1),
|
|
2187
2187
|
})
|
|
2188
2188
|
.strict(),
|
|
2189
2189
|
z
|
|
2190
2190
|
.object({
|
|
2191
|
-
not: z.array(z.lazy(() => conditionZodSchema)),
|
|
2191
|
+
not: z.array(z.lazy(() => conditionZodSchema)).min(1),
|
|
2192
2192
|
})
|
|
2193
2193
|
.strict(),
|
|
2194
2194
|
]);
|
|
@@ -2209,16 +2209,16 @@ function regexFlagsRequired(operator: string): boolean {
|
|
|
2209
2209
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2210
2210
|
Code coverage generated by
|
|
2211
2211
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2212
|
-
at 2026-
|
|
2212
|
+
at 2026-07-12T20:35:50.655Z
|
|
2213
2213
|
</div>
|
|
2214
|
-
<script src="
|
|
2214
|
+
<script src="../../prettify.js"></script>
|
|
2215
2215
|
<script>
|
|
2216
2216
|
window.onload = function () {
|
|
2217
2217
|
prettyPrint();
|
|
2218
2218
|
};
|
|
2219
2219
|
</script>
|
|
2220
|
-
<script src="
|
|
2221
|
-
<script src="
|
|
2220
|
+
<script src="../../sorter.js"></script>
|
|
2221
|
+
<script src="../../block-navigation.js"></script>
|
|
2222
2222
|
</body>
|
|
2223
2223
|
</html>
|
|
2224
2224
|
|