@featurevisor/sdk 0.47.5 → 0.47.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">69.38% </span>
26
+ <span class="strong">87.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>281/405</span>
28
+ <span class='fraction'>356/405</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">56.93% </span>
33
+ <span class="strong">77.03% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>119/209</span>
35
+ <span class='fraction'>161/209</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">78.43% </span>
40
+ <span class="strong">88.23% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>40/51</span>
42
+ <span class='fraction'>45/51</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">69.67% </span>
47
+ <span class="strong">87.96% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>278/399</span>
49
+ <span class='fraction'>351/399</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
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>
@@ -1460,21 +1460,21 @@
1460
1460
  <span class="cline-any cline-neutral">&nbsp;</span>
1461
1461
  <span class="cline-any cline-neutral">&nbsp;</span>
1462
1462
  <span class="cline-any cline-yes">1x</span>
1463
- <span class="cline-any cline-yes">6x</span>
1464
- <span class="cline-any cline-yes">6x</span>
1463
+ <span class="cline-any cline-yes">9x</span>
1464
+ <span class="cline-any cline-yes">9x</span>
1465
1465
  <span class="cline-any cline-no">&nbsp;</span>
1466
1466
  <span class="cline-any cline-neutral">&nbsp;</span>
1467
1467
  <span class="cline-any cline-neutral">&nbsp;</span>
1468
- <span class="cline-any cline-yes">6x</span>
1468
+ <span class="cline-any cline-yes">9x</span>
1469
1469
  <span class="cline-any cline-neutral">&nbsp;</span>
1470
1470
  <span class="cline-any cline-yes">1x</span>
1471
1471
  <span class="cline-any cline-neutral">&nbsp;</span>
1472
1472
  <span class="cline-any cline-yes">1x</span>
1473
1473
  <span class="cline-any cline-neutral">&nbsp;</span>
1474
- <span class="cline-any cline-no">&nbsp;</span>
1475
- <span class="cline-any cline-neutral">&nbsp;</span>
1476
1474
  <span class="cline-any cline-yes">1x</span>
1477
1475
  <span class="cline-any cline-neutral">&nbsp;</span>
1476
+ <span class="cline-any cline-yes">3x</span>
1477
+ <span class="cline-any cline-neutral">&nbsp;</span>
1478
1478
  <span class="cline-any cline-yes">1x</span>
1479
1479
  <span class="cline-any cline-neutral">&nbsp;</span>
1480
1480
  <span class="cline-any cline-yes">1x</span>
@@ -1515,54 +1515,54 @@
1515
1515
  <span class="cline-any cline-neutral">&nbsp;</span>
1516
1516
  <span class="cline-any cline-neutral">&nbsp;</span>
1517
1517
  <span class="cline-any cline-neutral">&nbsp;</span>
1518
- <span class="cline-any cline-yes">17x</span>
1519
- <span class="cline-any cline-yes">17x</span>
1520
- <span class="cline-any cline-yes">17x</span>
1521
- <span class="cline-any cline-yes">17x</span>
1522
- <span class="cline-any cline-yes">17x</span>
1523
- <span class="cline-any cline-yes">17x</span>
1524
- <span class="cline-any cline-yes">17x</span>
1525
- <span class="cline-any cline-yes">17x</span>
1526
- <span class="cline-any cline-yes">17x</span>
1527
- <span class="cline-any cline-yes">17x</span>
1518
+ <span class="cline-any cline-yes">19x</span>
1519
+ <span class="cline-any cline-yes">19x</span>
1520
+ <span class="cline-any cline-yes">19x</span>
1521
+ <span class="cline-any cline-yes">19x</span>
1522
+ <span class="cline-any cline-yes">19x</span>
1523
+ <span class="cline-any cline-yes">19x</span>
1524
+ <span class="cline-any cline-yes">19x</span>
1525
+ <span class="cline-any cline-yes">19x</span>
1526
+ <span class="cline-any cline-yes">19x</span>
1527
+ <span class="cline-any cline-yes">19x</span>
1528
1528
  <span class="cline-any cline-neutral">&nbsp;</span>
1529
1529
  <span class="cline-any cline-neutral">&nbsp;</span>
1530
- <span class="cline-any cline-yes">17x</span>
1531
- <span class="cline-any cline-yes">17x</span>
1530
+ <span class="cline-any cline-yes">19x</span>
1531
+ <span class="cline-any cline-yes">19x</span>
1532
1532
  <span class="cline-any cline-neutral">&nbsp;</span>
1533
1533
  <span class="cline-any cline-neutral">&nbsp;</span>
1534
1534
  <span class="cline-any cline-neutral">&nbsp;</span>
1535
1535
  <span class="cline-any cline-neutral">&nbsp;</span>
1536
1536
  <span class="cline-any cline-neutral">&nbsp;</span>
1537
- <span class="cline-any cline-yes">17x</span>
1537
+ <span class="cline-any cline-yes">19x</span>
1538
1538
  <span class="cline-any cline-yes">2x</span>
1539
1539
  <span class="cline-any cline-neutral">&nbsp;</span>
1540
1540
  <span class="cline-any cline-neutral">&nbsp;</span>
1541
- <span class="cline-any cline-yes">17x</span>
1541
+ <span class="cline-any cline-yes">19x</span>
1542
1542
  <span class="cline-any cline-yes">1x</span>
1543
1543
  <span class="cline-any cline-neutral">&nbsp;</span>
1544
1544
  <span class="cline-any cline-neutral">&nbsp;</span>
1545
- <span class="cline-any cline-yes">17x</span>
1545
+ <span class="cline-any cline-yes">19x</span>
1546
1546
  <span class="cline-any cline-yes">1x</span>
1547
1547
  <span class="cline-any cline-neutral">&nbsp;</span>
1548
1548
  <span class="cline-any cline-neutral">&nbsp;</span>
1549
- <span class="cline-any cline-yes">17x</span>
1549
+ <span class="cline-any cline-yes">19x</span>
1550
1550
  <span class="cline-any cline-yes">1x</span>
1551
1551
  <span class="cline-any cline-neutral">&nbsp;</span>
1552
1552
  <span class="cline-any cline-neutral">&nbsp;</span>
1553
1553
  <span class="cline-any cline-neutral">&nbsp;</span>
1554
- <span class="cline-any cline-yes">17x</span>
1555
- <span class="cline-any cline-yes">17x</span>
1556
- <span class="cline-any cline-yes">17x</span>
1554
+ <span class="cline-any cline-yes">19x</span>
1555
+ <span class="cline-any cline-yes">19x</span>
1556
+ <span class="cline-any cline-yes">19x</span>
1557
1557
  <span class="cline-any cline-neutral">&nbsp;</span>
1558
- <span class="cline-any cline-yes">17x</span>
1559
- <span class="cline-any cline-yes">17x</span>
1560
- <span class="cline-any cline-yes">17x</span>
1558
+ <span class="cline-any cline-yes">19x</span>
1559
+ <span class="cline-any cline-yes">19x</span>
1560
+ <span class="cline-any cline-yes">19x</span>
1561
1561
  <span class="cline-any cline-neutral">&nbsp;</span>
1562
- <span class="cline-any cline-yes">17x</span>
1562
+ <span class="cline-any cline-yes">19x</span>
1563
1563
  <span class="cline-any cline-neutral">&nbsp;</span>
1564
1564
  <span class="cline-any cline-neutral">&nbsp;</span>
1565
- <span class="cline-any cline-yes">17x</span>
1565
+ <span class="cline-any cline-yes">19x</span>
1566
1566
  <span class="cline-any cline-yes">3x</span>
1567
1567
  <span class="cline-any cline-neutral">&nbsp;</span>
1568
1568
  <span class="cline-any cline-yes">3x</span>
@@ -1579,11 +1579,11 @@
1579
1579
  <span class="cline-any cline-neutral">&nbsp;</span>
1580
1580
  <span class="cline-any cline-no">&nbsp;</span>
1581
1581
  <span class="cline-any cline-neutral">&nbsp;</span>
1582
- <span class="cline-any cline-yes">14x</span>
1583
- <span class="cline-any cline-yes">14x</span>
1584
- <span class="cline-any cline-yes">14x</span>
1582
+ <span class="cline-any cline-yes">16x</span>
1583
+ <span class="cline-any cline-yes">16x</span>
1584
+ <span class="cline-any cline-yes">16x</span>
1585
1585
  <span class="cline-any cline-neutral">&nbsp;</span>
1586
- <span class="cline-any cline-yes">14x</span>
1586
+ <span class="cline-any cline-yes">16x</span>
1587
1587
  <span class="cline-any cline-yes">8x</span>
1588
1588
  <span class="cline-any cline-neutral">&nbsp;</span>
1589
1589
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1610,8 +1610,8 @@
1610
1610
  <span class="cline-any cline-neutral">&nbsp;</span>
1611
1611
  <span class="cline-any cline-neutral">&nbsp;</span>
1612
1612
  <span class="cline-any cline-neutral">&nbsp;</span>
1613
- <span class="cline-any cline-yes">21x</span>
1614
- <span class="cline-any cline-yes">21x</span>
1613
+ <span class="cline-any cline-yes">23x</span>
1614
+ <span class="cline-any cline-yes">23x</span>
1615
1615
  <span class="cline-any cline-neutral">&nbsp;</span>
1616
1616
  <span class="cline-any cline-neutral">&nbsp;</span>
1617
1617
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1628,7 +1628,7 @@
1628
1628
  <span class="cline-any cline-neutral">&nbsp;</span>
1629
1629
  <span class="cline-any cline-neutral">&nbsp;</span>
1630
1630
  <span class="cline-any cline-neutral">&nbsp;</span>
1631
- <span class="cline-any cline-yes">62x</span>
1631
+ <span class="cline-any cline-yes">96x</span>
1632
1632
  <span class="cline-any cline-neutral">&nbsp;</span>
1633
1633
  <span class="cline-any cline-neutral">&nbsp;</span>
1634
1634
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1637,14 +1637,14 @@
1637
1637
  <span class="cline-any cline-neutral">&nbsp;</span>
1638
1638
  <span class="cline-any cline-neutral">&nbsp;</span>
1639
1639
  <span class="cline-any cline-neutral">&nbsp;</span>
1640
- <span class="cline-any cline-yes">60x</span>
1640
+ <span class="cline-any cline-yes">79x</span>
1641
1641
  <span class="cline-any cline-neutral">&nbsp;</span>
1642
1642
  <span class="cline-any cline-neutral">&nbsp;</span>
1643
1643
  <span class="cline-any cline-neutral">&nbsp;</span>
1644
1644
  <span class="cline-any cline-neutral">&nbsp;</span>
1645
- <span class="cline-any cline-yes">60x</span>
1646
- <span class="cline-any cline-yes">53x</span>
1647
- <span class="cline-any cline-yes">53x</span>
1645
+ <span class="cline-any cline-yes">79x</span>
1646
+ <span class="cline-any cline-yes">72x</span>
1647
+ <span class="cline-any cline-yes">72x</span>
1648
1648
  <span class="cline-any cline-yes">7x</span>
1649
1649
  <span class="cline-any cline-yes">2x</span>
1650
1650
  <span class="cline-any cline-yes">2x</span>
@@ -1657,17 +1657,17 @@
1657
1657
  <span class="cline-any cline-no">&nbsp;</span>
1658
1658
  <span class="cline-any cline-neutral">&nbsp;</span>
1659
1659
  <span class="cline-any cline-neutral">&nbsp;</span>
1660
- <span class="cline-any cline-yes">60x</span>
1660
+ <span class="cline-any cline-yes">79x</span>
1661
1661
  <span class="cline-any cline-neutral">&nbsp;</span>
1662
- <span class="cline-any cline-yes">60x</span>
1663
- <span class="cline-any cline-yes">67x</span>
1662
+ <span class="cline-any cline-yes">79x</span>
1663
+ <span class="cline-any cline-yes">86x</span>
1664
1664
  <span class="cline-any cline-neutral">&nbsp;</span>
1665
- <span class="cline-any cline-yes">67x</span>
1665
+ <span class="cline-any cline-yes">86x</span>
1666
1666
  <span class="cline-any cline-yes">12x</span>
1667
1667
  <span class="cline-any cline-neutral">&nbsp;</span>
1668
1668
  <span class="cline-any cline-neutral">&nbsp;</span>
1669
- <span class="cline-any cline-yes">55x</span>
1670
- <span class="cline-any cline-yes">47x</span>
1669
+ <span class="cline-any cline-yes">74x</span>
1670
+ <span class="cline-any cline-yes">66x</span>
1671
1671
  <span class="cline-any cline-neutral">&nbsp;</span>
1672
1672
  <span class="cline-any cline-neutral">&nbsp;</span>
1673
1673
  <span class="cline-any cline-yes">8x</span>
@@ -1676,27 +1676,27 @@
1676
1676
  <span class="cline-any cline-neutral">&nbsp;</span>
1677
1677
  <span class="cline-any cline-neutral">&nbsp;</span>
1678
1678
  <span class="cline-any cline-neutral">&nbsp;</span>
1679
- <span class="cline-any cline-yes">60x</span>
1679
+ <span class="cline-any cline-yes">79x</span>
1680
1680
  <span class="cline-any cline-neutral">&nbsp;</span>
1681
- <span class="cline-any cline-yes">60x</span>
1681
+ <span class="cline-any cline-yes">79x</span>
1682
1682
  <span class="cline-any cline-neutral">&nbsp;</span>
1683
- <span class="cline-any cline-yes">60x</span>
1683
+ <span class="cline-any cline-yes">79x</span>
1684
1684
  <span class="cline-any cline-yes">10x</span>
1685
1685
  <span class="cline-any cline-neutral">&nbsp;</span>
1686
1686
  <span class="cline-any cline-neutral">&nbsp;</span>
1687
- <span class="cline-any cline-yes">50x</span>
1687
+ <span class="cline-any cline-yes">69x</span>
1688
1688
  <span class="cline-any cline-neutral">&nbsp;</span>
1689
1689
  <span class="cline-any cline-neutral">&nbsp;</span>
1690
1690
  <span class="cline-any cline-neutral">&nbsp;</span>
1691
- <span class="cline-any cline-yes">60x</span>
1691
+ <span class="cline-any cline-yes">79x</span>
1692
1692
  <span class="cline-any cline-neutral">&nbsp;</span>
1693
- <span class="cline-any cline-yes">60x</span>
1693
+ <span class="cline-any cline-yes">79x</span>
1694
1694
  <span class="cline-any cline-neutral">&nbsp;</span>
1695
- <span class="cline-any cline-yes">60x</span>
1696
- <span class="cline-any cline-no">&nbsp;</span>
1695
+ <span class="cline-any cline-yes">79x</span>
1696
+ <span class="cline-any cline-yes">2x</span>
1697
1697
  <span class="cline-any cline-neutral">&nbsp;</span>
1698
1698
  <span class="cline-any cline-neutral">&nbsp;</span>
1699
- <span class="cline-any cline-yes">60x</span>
1699
+ <span class="cline-any cline-yes">77x</span>
1700
1700
  <span class="cline-any cline-neutral">&nbsp;</span>
1701
1701
  <span class="cline-any cline-neutral">&nbsp;</span>
1702
1702
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1777,85 +1777,85 @@
1777
1777
  <span class="cline-any cline-neutral">&nbsp;</span>
1778
1778
  <span class="cline-any cline-neutral">&nbsp;</span>
1779
1779
  <span class="cline-any cline-neutral">&nbsp;</span>
1780
- <span class="cline-any cline-yes">39x</span>
1781
- <span class="cline-any cline-yes">39x</span>
1780
+ <span class="cline-any cline-yes">62x</span>
1781
+ <span class="cline-any cline-yes">62x</span>
1782
1782
  <span class="cline-any cline-neutral">&nbsp;</span>
1783
1783
  <span class="cline-any cline-neutral">&nbsp;</span>
1784
- <span class="cline-any cline-yes">39x</span>
1784
+ <span class="cline-any cline-yes">62x</span>
1785
1785
  <span class="cline-any cline-neutral">&nbsp;</span>
1786
1786
  <span class="cline-any cline-neutral">&nbsp;</span>
1787
1787
  <span class="cline-any cline-neutral">&nbsp;</span>
1788
1788
  <span class="cline-any cline-neutral">&nbsp;</span>
1789
- <span class="cline-any cline-yes">2x</span>
1789
+ <span class="cline-any cline-yes">3x</span>
1790
1790
  <span class="cline-any cline-neutral">&nbsp;</span>
1791
1791
  <span class="cline-any cline-neutral">&nbsp;</span>
1792
1792
  <span class="cline-any cline-neutral">&nbsp;</span>
1793
1793
  <span class="cline-any cline-neutral">&nbsp;</span>
1794
1794
  <span class="cline-any cline-neutral">&nbsp;</span>
1795
1795
  <span class="cline-any cline-neutral">&nbsp;</span>
1796
- <span class="cline-any cline-yes">2x</span>
1796
+ <span class="cline-any cline-yes">3x</span>
1797
1797
  <span class="cline-any cline-neutral">&nbsp;</span>
1798
- <span class="cline-any cline-yes">2x</span>
1798
+ <span class="cline-any cline-yes">3x</span>
1799
1799
  <span class="cline-any cline-neutral">&nbsp;</span>
1800
1800
  <span class="cline-any cline-neutral">&nbsp;</span>
1801
1801
  <span class="cline-any cline-neutral">&nbsp;</span>
1802
- <span class="cline-any cline-yes">37x</span>
1802
+ <span class="cline-any cline-yes">59x</span>
1803
1803
  <span class="cline-any cline-neutral">&nbsp;</span>
1804
1804
  <span class="cline-any cline-neutral">&nbsp;</span>
1805
1805
  <span class="cline-any cline-neutral">&nbsp;</span>
1806
1806
  <span class="cline-any cline-neutral">&nbsp;</span>
1807
1807
  <span class="cline-any cline-neutral">&nbsp;</span>
1808
1808
  <span class="cline-any cline-neutral">&nbsp;</span>
1809
- <span class="cline-any cline-yes">1x</span>
1809
+ <span class="cline-any cline-yes">2x</span>
1810
1810
  <span class="cline-any cline-neutral">&nbsp;</span>
1811
1811
  <span class="cline-any cline-neutral">&nbsp;</span>
1812
1812
  <span class="cline-any cline-neutral">&nbsp;</span>
1813
1813
  <span class="cline-any cline-neutral">&nbsp;</span>
1814
1814
  <span class="cline-any cline-neutral">&nbsp;</span>
1815
1815
  <span class="cline-any cline-neutral">&nbsp;</span>
1816
- <span class="cline-any cline-yes">1x</span>
1816
+ <span class="cline-any cline-yes">2x</span>
1817
1817
  <span class="cline-any cline-neutral">&nbsp;</span>
1818
- <span class="cline-any cline-yes">1x</span>
1818
+ <span class="cline-any cline-yes">2x</span>
1819
1819
  <span class="cline-any cline-neutral">&nbsp;</span>
1820
1820
  <span class="cline-any cline-neutral">&nbsp;</span>
1821
- <span class="cline-any cline-yes">36x</span>
1821
+ <span class="cline-any cline-yes">57x</span>
1822
1822
  <span class="cline-any cline-neutral">&nbsp;</span>
1823
1823
  <span class="cline-any cline-neutral">&nbsp;</span>
1824
- <span class="cline-any cline-yes">36x</span>
1825
- <span class="cline-any cline-no">&nbsp;</span>
1824
+ <span class="cline-any cline-yes">57x</span>
1825
+ <span class="cline-any cline-yes">4x</span>
1826
1826
  <span class="cline-any cline-neutral">&nbsp;</span>
1827
1827
  <span class="cline-any cline-neutral">&nbsp;</span>
1828
1828
  <span class="cline-any cline-neutral">&nbsp;</span>
1829
1829
  <span class="cline-any cline-neutral">&nbsp;</span>
1830
- <span class="cline-any cline-no">&nbsp;</span>
1830
+ <span class="cline-any cline-yes">4x</span>
1831
1831
  <span class="cline-any cline-neutral">&nbsp;</span>
1832
- <span class="cline-any cline-no">&nbsp;</span>
1832
+ <span class="cline-any cline-yes">4x</span>
1833
1833
  <span class="cline-any cline-neutral">&nbsp;</span>
1834
1834
  <span class="cline-any cline-neutral">&nbsp;</span>
1835
1835
  <span class="cline-any cline-neutral">&nbsp;</span>
1836
- <span class="cline-any cline-yes">36x</span>
1836
+ <span class="cline-any cline-yes">53x</span>
1837
1837
  <span class="cline-any cline-yes">1x</span>
1838
1838
  <span class="cline-any cline-neutral">&nbsp;</span>
1839
1839
  <span class="cline-any cline-neutral">&nbsp;</span>
1840
- <span class="cline-any cline-yes">36x</span>
1840
+ <span class="cline-any cline-yes">53x</span>
1841
1841
  <span class="cline-any cline-neutral">&nbsp;</span>
1842
1842
  <span class="cline-any cline-neutral">&nbsp;</span>
1843
- <span class="cline-any cline-yes">36x</span>
1843
+ <span class="cline-any cline-yes">53x</span>
1844
1844
  <span class="cline-any cline-neutral">&nbsp;</span>
1845
- <span class="cline-any cline-yes">36x</span>
1846
- <span class="cline-any cline-no">&nbsp;</span>
1845
+ <span class="cline-any cline-yes">53x</span>
1846
+ <span class="cline-any cline-yes">6x</span>
1847
1847
  <span class="cline-any cline-neutral">&nbsp;</span>
1848
1848
  <span class="cline-any cline-neutral">&nbsp;</span>
1849
1849
  <span class="cline-any cline-neutral">&nbsp;</span>
1850
1850
  <span class="cline-any cline-neutral">&nbsp;</span>
1851
1851
  <span class="cline-any cline-neutral">&nbsp;</span>
1852
- <span class="cline-any cline-no">&nbsp;</span>
1852
+ <span class="cline-any cline-yes">6x</span>
1853
1853
  <span class="cline-any cline-neutral">&nbsp;</span>
1854
- <span class="cline-any cline-no">&nbsp;</span>
1854
+ <span class="cline-any cline-yes">6x</span>
1855
1855
  <span class="cline-any cline-neutral">&nbsp;</span>
1856
1856
  <span class="cline-any cline-neutral">&nbsp;</span>
1857
1857
  <span class="cline-any cline-neutral">&nbsp;</span>
1858
- <span class="cline-any cline-yes">36x</span>
1858
+ <span class="cline-any cline-yes">47x</span>
1859
1859
  <span class="cline-any cline-yes">4x</span>
1860
1860
  <span class="cline-any cline-neutral">&nbsp;</span>
1861
1861
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1894,20 +1894,20 @@
1894
1894
  <span class="cline-any cline-neutral">&nbsp;</span>
1895
1895
  <span class="cline-any cline-neutral">&nbsp;</span>
1896
1896
  <span class="cline-any cline-neutral">&nbsp;</span>
1897
- <span class="cline-any cline-yes">34x</span>
1897
+ <span class="cline-any cline-yes">45x</span>
1898
1898
  <span class="cline-any cline-neutral">&nbsp;</span>
1899
- <span class="cline-any cline-yes">34x</span>
1899
+ <span class="cline-any cline-yes">45x</span>
1900
1900
  <span class="cline-any cline-neutral">&nbsp;</span>
1901
- <span class="cline-any cline-yes">34x</span>
1901
+ <span class="cline-any cline-yes">45x</span>
1902
1902
  <span class="cline-any cline-neutral">&nbsp;</span>
1903
- <span class="cline-any cline-yes">34x</span>
1904
- <span class="cline-any cline-no">&nbsp;</span>
1905
- <span class="cline-any cline-no">&nbsp;</span>
1903
+ <span class="cline-any cline-yes">45x</span>
1904
+ <span class="cline-any cline-yes">2x</span>
1905
+ <span class="cline-any cline-yes">2x</span>
1906
1906
  <span class="cline-any cline-neutral">&nbsp;</span>
1907
1907
  <span class="cline-any cline-neutral">&nbsp;</span>
1908
1908
  <span class="cline-any cline-neutral">&nbsp;</span>
1909
- <span class="cline-any cline-no">&nbsp;</span>
1910
- <span class="cline-any cline-no">&nbsp;</span>
1909
+ <span class="cline-any cline-yes">2x</span>
1910
+ <span class="cline-any cline-yes">1x</span>
1911
1911
  <span class="cline-any cline-neutral">&nbsp;</span>
1912
1912
  <span class="cline-any cline-neutral">&nbsp;</span>
1913
1913
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1915,24 +1915,24 @@
1915
1915
  <span class="cline-any cline-neutral">&nbsp;</span>
1916
1916
  <span class="cline-any cline-neutral">&nbsp;</span>
1917
1917
  <span class="cline-any cline-neutral">&nbsp;</span>
1918
- <span class="cline-any cline-no">&nbsp;</span>
1918
+ <span class="cline-any cline-yes">1x</span>
1919
1919
  <span class="cline-any cline-neutral">&nbsp;</span>
1920
1920
  <span class="cline-any cline-neutral">&nbsp;</span>
1921
1921
  <span class="cline-any cline-neutral">&nbsp;</span>
1922
- <span class="cline-any cline-no">&nbsp;</span>
1922
+ <span class="cline-any cline-yes">1x</span>
1923
1923
  <span class="cline-any cline-neutral">&nbsp;</span>
1924
1924
  <span class="cline-any cline-neutral">&nbsp;</span>
1925
1925
  <span class="cline-any cline-neutral">&nbsp;</span>
1926
1926
  <span class="cline-any cline-neutral">&nbsp;</span>
1927
1927
  <span class="cline-any cline-neutral">&nbsp;</span>
1928
1928
  <span class="cline-any cline-neutral">&nbsp;</span>
1929
- <span class="cline-any cline-no">&nbsp;</span>
1929
+ <span class="cline-any cline-yes">1x</span>
1930
1930
  <span class="cline-any cline-neutral">&nbsp;</span>
1931
- <span class="cline-any cline-no">&nbsp;</span>
1931
+ <span class="cline-any cline-yes">1x</span>
1932
1932
  <span class="cline-any cline-neutral">&nbsp;</span>
1933
1933
  <span class="cline-any cline-neutral">&nbsp;</span>
1934
1934
  <span class="cline-any cline-neutral">&nbsp;</span>
1935
- <span class="cline-any cline-yes">34x</span>
1935
+ <span class="cline-any cline-yes">43x</span>
1936
1936
  <span class="cline-any cline-no">&nbsp;</span>
1937
1937
  <span class="cline-any cline-neutral">&nbsp;</span>
1938
1938
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1948,9 +1948,9 @@
1948
1948
  <span class="cline-any cline-neutral">&nbsp;</span>
1949
1949
  <span class="cline-any cline-neutral">&nbsp;</span>
1950
1950
  <span class="cline-any cline-neutral">&nbsp;</span>
1951
- <span class="cline-any cline-yes">34x</span>
1951
+ <span class="cline-any cline-yes">43x</span>
1952
1952
  <span class="cline-any cline-neutral">&nbsp;</span>
1953
- <span class="cline-any cline-yes">33x</span>
1953
+ <span class="cline-any cline-yes">42x</span>
1954
1954
  <span class="cline-any cline-neutral">&nbsp;</span>
1955
1955
  <span class="cline-any cline-neutral">&nbsp;</span>
1956
1956
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1959,7 +1959,7 @@
1959
1959
  <span class="cline-any cline-neutral">&nbsp;</span>
1960
1960
  <span class="cline-any cline-neutral">&nbsp;</span>
1961
1961
  <span class="cline-any cline-neutral">&nbsp;</span>
1962
- <span class="cline-any cline-yes">33x</span>
1962
+ <span class="cline-any cline-yes">42x</span>
1963
1963
  <span class="cline-any cline-neutral">&nbsp;</span>
1964
1964
  <span class="cline-any cline-neutral">&nbsp;</span>
1965
1965
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1984,10 +1984,10 @@
1984
1984
  <span class="cline-any cline-neutral">&nbsp;</span>
1985
1985
  <span class="cline-any cline-neutral">&nbsp;</span>
1986
1986
  <span class="cline-any cline-neutral">&nbsp;</span>
1987
- <span class="cline-any cline-yes">10x</span>
1988
- <span class="cline-any cline-yes">10x</span>
1987
+ <span class="cline-any cline-yes">14x</span>
1988
+ <span class="cline-any cline-yes">14x</span>
1989
1989
  <span class="cline-any cline-neutral">&nbsp;</span>
1990
- <span class="cline-any cline-yes">10x</span>
1990
+ <span class="cline-any cline-yes">14x</span>
1991
1991
  <span class="cline-any cline-neutral">&nbsp;</span>
1992
1992
  <span class="cline-any cline-no">&nbsp;</span>
1993
1993
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2001,24 +2001,24 @@
2001
2001
  <span class="cline-any cline-neutral">&nbsp;</span>
2002
2002
  <span class="cline-any cline-neutral">&nbsp;</span>
2003
2003
  <span class="cline-any cline-neutral">&nbsp;</span>
2004
- <span class="cline-any cline-yes">17x</span>
2005
- <span class="cline-any cline-yes">17x</span>
2004
+ <span class="cline-any cline-yes">25x</span>
2005
+ <span class="cline-any cline-yes">25x</span>
2006
2006
  <span class="cline-any cline-neutral">&nbsp;</span>
2007
- <span class="cline-any cline-yes">17x</span>
2007
+ <span class="cline-any cline-yes">25x</span>
2008
2008
  <span class="cline-any cline-neutral">&nbsp;</span>
2009
- <span class="cline-any cline-yes">17x</span>
2010
- <span class="cline-any cline-no">&nbsp;</span>
2009
+ <span class="cline-any cline-yes">25x</span>
2010
+ <span class="cline-any cline-yes">3x</span>
2011
2011
  <span class="cline-any cline-neutral">&nbsp;</span>
2012
2012
  <span class="cline-any cline-neutral">&nbsp;</span>
2013
2013
  <span class="cline-any cline-neutral">&nbsp;</span>
2014
2014
  <span class="cline-any cline-neutral">&nbsp;</span>
2015
- <span class="cline-any cline-no">&nbsp;</span>
2015
+ <span class="cline-any cline-yes">3x</span>
2016
2016
  <span class="cline-any cline-neutral">&nbsp;</span>
2017
- <span class="cline-any cline-no">&nbsp;</span>
2017
+ <span class="cline-any cline-yes">3x</span>
2018
2018
  <span class="cline-any cline-neutral">&nbsp;</span>
2019
2019
  <span class="cline-any cline-neutral">&nbsp;</span>
2020
2020
  <span class="cline-any cline-neutral">&nbsp;</span>
2021
- <span class="cline-any cline-yes">17x</span>
2021
+ <span class="cline-any cline-yes">22x</span>
2022
2022
  <span class="cline-any cline-yes">2x</span>
2023
2023
  <span class="cline-any cline-neutral">&nbsp;</span>
2024
2024
  <span class="cline-any cline-yes">2x</span>
@@ -2035,7 +2035,7 @@
2035
2035
  <span class="cline-any cline-neutral">&nbsp;</span>
2036
2036
  <span class="cline-any cline-neutral">&nbsp;</span>
2037
2037
  <span class="cline-any cline-neutral">&nbsp;</span>
2038
- <span class="cline-any cline-yes">15x</span>
2038
+ <span class="cline-any cline-yes">20x</span>
2039
2039
  <span class="cline-any cline-neutral">&nbsp;</span>
2040
2040
  <span class="cline-any cline-neutral">&nbsp;</span>
2041
2041
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2055,22 +2055,22 @@
2055
2055
  <span class="cline-any cline-yes">1x</span>
2056
2056
  <span class="cline-any cline-neutral">&nbsp;</span>
2057
2057
  <span class="cline-any cline-neutral">&nbsp;</span>
2058
- <span class="cline-any cline-yes">14x</span>
2058
+ <span class="cline-any cline-yes">19x</span>
2059
2059
  <span class="cline-any cline-neutral">&nbsp;</span>
2060
2060
  <span class="cline-any cline-neutral">&nbsp;</span>
2061
- <span class="cline-any cline-yes">14x</span>
2062
- <span class="cline-any cline-no">&nbsp;</span>
2061
+ <span class="cline-any cline-yes">19x</span>
2062
+ <span class="cline-any cline-yes">1x</span>
2063
2063
  <span class="cline-any cline-neutral">&nbsp;</span>
2064
2064
  <span class="cline-any cline-neutral">&nbsp;</span>
2065
2065
  <span class="cline-any cline-neutral">&nbsp;</span>
2066
2066
  <span class="cline-any cline-neutral">&nbsp;</span>
2067
- <span class="cline-any cline-no">&nbsp;</span>
2067
+ <span class="cline-any cline-yes">1x</span>
2068
2068
  <span class="cline-any cline-neutral">&nbsp;</span>
2069
- <span class="cline-any cline-no">&nbsp;</span>
2069
+ <span class="cline-any cline-yes">1x</span>
2070
2070
  <span class="cline-any cline-neutral">&nbsp;</span>
2071
2071
  <span class="cline-any cline-neutral">&nbsp;</span>
2072
2072
  <span class="cline-any cline-neutral">&nbsp;</span>
2073
- <span class="cline-any cline-yes">14x</span>
2073
+ <span class="cline-any cline-yes">18x</span>
2074
2074
  <span class="cline-any cline-no">&nbsp;</span>
2075
2075
  <span class="cline-any cline-neutral">&nbsp;</span>
2076
2076
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2081,44 +2081,44 @@
2081
2081
  <span class="cline-any cline-no">&nbsp;</span>
2082
2082
  <span class="cline-any cline-neutral">&nbsp;</span>
2083
2083
  <span class="cline-any cline-neutral">&nbsp;</span>
2084
- <span class="cline-any cline-yes">14x</span>
2084
+ <span class="cline-any cline-yes">18x</span>
2085
2085
  <span class="cline-any cline-neutral">&nbsp;</span>
2086
2086
  <span class="cline-any cline-neutral">&nbsp;</span>
2087
- <span class="cline-any cline-yes">14x</span>
2087
+ <span class="cline-any cline-yes">18x</span>
2088
2088
  <span class="cline-any cline-neutral">&nbsp;</span>
2089
- <span class="cline-any cline-yes">14x</span>
2090
- <span class="cline-any cline-no">&nbsp;</span>
2089
+ <span class="cline-any cline-yes">18x</span>
2090
+ <span class="cline-any cline-yes">1x</span>
2091
2091
  <span class="cline-any cline-neutral">&nbsp;</span>
2092
- <span class="cline-any cline-no">&nbsp;</span>
2093
- <span class="cline-any cline-no">&nbsp;</span>
2092
+ <span class="cline-any cline-yes">1x</span>
2093
+ <span class="cline-any cline-yes">1x</span>
2094
2094
  <span class="cline-any cline-neutral">&nbsp;</span>
2095
2095
  <span class="cline-any cline-neutral">&nbsp;</span>
2096
2096
  <span class="cline-any cline-neutral">&nbsp;</span>
2097
2097
  <span class="cline-any cline-neutral">&nbsp;</span>
2098
2098
  <span class="cline-any cline-neutral">&nbsp;</span>
2099
- <span class="cline-any cline-no">&nbsp;</span>
2099
+ <span class="cline-any cline-yes">1x</span>
2100
2100
  <span class="cline-any cline-neutral">&nbsp;</span>
2101
- <span class="cline-any cline-no">&nbsp;</span>
2101
+ <span class="cline-any cline-yes">1x</span>
2102
2102
  <span class="cline-any cline-neutral">&nbsp;</span>
2103
2103
  <span class="cline-any cline-neutral">&nbsp;</span>
2104
2104
  <span class="cline-any cline-neutral">&nbsp;</span>
2105
2105
  <span class="cline-any cline-neutral">&nbsp;</span>
2106
- <span class="cline-any cline-yes">14x</span>
2106
+ <span class="cline-any cline-yes">17x</span>
2107
2107
  <span class="cline-any cline-neutral">&nbsp;</span>
2108
- <span class="cline-any cline-yes">14x</span>
2108
+ <span class="cline-any cline-yes">17x</span>
2109
2109
  <span class="cline-any cline-neutral">&nbsp;</span>
2110
2110
  <span class="cline-any cline-neutral">&nbsp;</span>
2111
2111
  <span class="cline-any cline-neutral">&nbsp;</span>
2112
2112
  <span class="cline-any cline-neutral">&nbsp;</span>
2113
2113
  <span class="cline-any cline-neutral">&nbsp;</span>
2114
2114
  <span class="cline-any cline-neutral">&nbsp;</span>
2115
- <span class="cline-any cline-yes">14x</span>
2115
+ <span class="cline-any cline-yes">17x</span>
2116
2116
  <span class="cline-any cline-neutral">&nbsp;</span>
2117
- <span class="cline-any cline-yes">14x</span>
2118
- <span class="cline-any cline-no">&nbsp;</span>
2117
+ <span class="cline-any cline-yes">17x</span>
2118
+ <span class="cline-any cline-yes">1x</span>
2119
2119
  <span class="cline-any cline-neutral">&nbsp;</span>
2120
- <span class="cline-any cline-no">&nbsp;</span>
2121
- <span class="cline-any cline-no">&nbsp;</span>
2120
+ <span class="cline-any cline-yes">1x</span>
2121
+ <span class="cline-any cline-yes">1x</span>
2122
2122
  <span class="cline-any cline-neutral">&nbsp;</span>
2123
2123
  <span class="cline-any cline-neutral">&nbsp;</span>
2124
2124
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2126,27 +2126,27 @@
2126
2126
  <span class="cline-any cline-neutral">&nbsp;</span>
2127
2127
  <span class="cline-any cline-neutral">&nbsp;</span>
2128
2128
  <span class="cline-any cline-neutral">&nbsp;</span>
2129
- <span class="cline-any cline-no">&nbsp;</span>
2129
+ <span class="cline-any cline-yes">1x</span>
2130
2130
  <span class="cline-any cline-neutral">&nbsp;</span>
2131
- <span class="cline-any cline-no">&nbsp;</span>
2131
+ <span class="cline-any cline-yes">1x</span>
2132
2132
  <span class="cline-any cline-neutral">&nbsp;</span>
2133
2133
  <span class="cline-any cline-neutral">&nbsp;</span>
2134
2134
  <span class="cline-any cline-neutral">&nbsp;</span>
2135
2135
  <span class="cline-any cline-neutral">&nbsp;</span>
2136
- <span class="cline-any cline-yes">14x</span>
2137
- <span class="cline-any cline-yes">19x</span>
2136
+ <span class="cline-any cline-yes">16x</span>
2137
+ <span class="cline-any cline-yes">23x</span>
2138
2138
  <span class="cline-any cline-neutral">&nbsp;</span>
2139
- <span class="cline-any cline-yes">14x</span>
2140
- <span class="cline-any cline-yes">14x</span>
2139
+ <span class="cline-any cline-yes">16x</span>
2140
+ <span class="cline-any cline-yes">16x</span>
2141
2141
  <span class="cline-any cline-neutral">&nbsp;</span>
2142
2142
  <span class="cline-any cline-neutral">&nbsp;</span>
2143
2143
  <span class="cline-any cline-neutral">&nbsp;</span>
2144
2144
  <span class="cline-any cline-neutral">&nbsp;</span>
2145
2145
  <span class="cline-any cline-neutral">&nbsp;</span>
2146
2146
  <span class="cline-any cline-neutral">&nbsp;</span>
2147
- <span class="cline-any cline-yes">14x</span>
2147
+ <span class="cline-any cline-yes">16x</span>
2148
2148
  <span class="cline-any cline-neutral">&nbsp;</span>
2149
- <span class="cline-any cline-yes">14x</span>
2149
+ <span class="cline-any cline-yes">16x</span>
2150
2150
  <span class="cline-any cline-neutral">&nbsp;</span>
2151
2151
  <span class="cline-any cline-neutral">&nbsp;</span>
2152
2152
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2176,18 +2176,18 @@
2176
2176
  <span class="cline-any cline-neutral">&nbsp;</span>
2177
2177
  <span class="cline-any cline-neutral">&nbsp;</span>
2178
2178
  <span class="cline-any cline-neutral">&nbsp;</span>
2179
- <span class="cline-any cline-yes">16x</span>
2180
- <span class="cline-any cline-yes">16x</span>
2179
+ <span class="cline-any cline-yes">24x</span>
2180
+ <span class="cline-any cline-yes">24x</span>
2181
2181
  <span class="cline-any cline-neutral">&nbsp;</span>
2182
- <span class="cline-any cline-yes">16x</span>
2182
+ <span class="cline-any cline-yes">24x</span>
2183
2183
  <span class="cline-any cline-yes">3x</span>
2184
2184
  <span class="cline-any cline-neutral">&nbsp;</span>
2185
2185
  <span class="cline-any cline-neutral">&nbsp;</span>
2186
- <span class="cline-any cline-yes">13x</span>
2187
- <span class="cline-any cline-yes">13x</span>
2186
+ <span class="cline-any cline-yes">21x</span>
2187
+ <span class="cline-any cline-yes">17x</span>
2188
2188
  <span class="cline-any cline-neutral">&nbsp;</span>
2189
2189
  <span class="cline-any cline-neutral">&nbsp;</span>
2190
- <span class="cline-any cline-no">&nbsp;</span>
2190
+ <span class="cline-any cline-yes">4x</span>
2191
2191
  <span class="cline-any cline-neutral">&nbsp;</span>
2192
2192
  <span class="cline-any cline-no">&nbsp;</span>
2193
2193
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2250,108 +2250,108 @@
2250
2250
  <span class="cline-any cline-neutral">&nbsp;</span>
2251
2251
  <span class="cline-any cline-neutral">&nbsp;</span>
2252
2252
  <span class="cline-any cline-neutral">&nbsp;</span>
2253
- <span class="cline-any cline-yes">12x</span>
2254
- <span class="cline-any cline-yes">12x</span>
2253
+ <span class="cline-any cline-yes">23x</span>
2254
+ <span class="cline-any cline-yes">23x</span>
2255
2255
  <span class="cline-any cline-neutral">&nbsp;</span>
2256
- <span class="cline-any cline-yes">12x</span>
2256
+ <span class="cline-any cline-yes">23x</span>
2257
2257
  <span class="cline-any cline-neutral">&nbsp;</span>
2258
- <span class="cline-any cline-yes">12x</span>
2259
- <span class="cline-any cline-no">&nbsp;</span>
2258
+ <span class="cline-any cline-yes">23x</span>
2259
+ <span class="cline-any cline-yes">1x</span>
2260
2260
  <span class="cline-any cline-neutral">&nbsp;</span>
2261
2261
  <span class="cline-any cline-neutral">&nbsp;</span>
2262
2262
  <span class="cline-any cline-neutral">&nbsp;</span>
2263
2263
  <span class="cline-any cline-neutral">&nbsp;</span>
2264
- <span class="cline-any cline-no">&nbsp;</span>
2264
+ <span class="cline-any cline-yes">1x</span>
2265
2265
  <span class="cline-any cline-neutral">&nbsp;</span>
2266
- <span class="cline-any cline-no">&nbsp;</span>
2266
+ <span class="cline-any cline-yes">1x</span>
2267
2267
  <span class="cline-any cline-neutral">&nbsp;</span>
2268
2268
  <span class="cline-any cline-neutral">&nbsp;</span>
2269
2269
  <span class="cline-any cline-neutral">&nbsp;</span>
2270
- <span class="cline-any cline-yes">12x</span>
2271
- <span class="cline-any cline-no">&nbsp;</span>
2270
+ <span class="cline-any cline-yes">22x</span>
2271
+ <span class="cline-any cline-yes">1x</span>
2272
2272
  <span class="cline-any cline-neutral">&nbsp;</span>
2273
- <span class="cline-any cline-no">&nbsp;</span>
2274
- <span class="cline-any cline-no">&nbsp;</span>
2273
+ <span class="cline-any cline-yes">1x</span>
2274
+ <span class="cline-any cline-yes">1x</span>
2275
2275
  <span class="cline-any cline-neutral">&nbsp;</span>
2276
- <span class="cline-any cline-no">&nbsp;</span>
2277
- <span class="cline-any cline-no">&nbsp;</span>
2276
+ <span class="cline-any cline-yes">1x</span>
2277
+ <span class="cline-any cline-yes">1x</span>
2278
2278
  <span class="cline-any cline-neutral">&nbsp;</span>
2279
2279
  <span class="cline-any cline-neutral">&nbsp;</span>
2280
2280
  <span class="cline-any cline-neutral">&nbsp;</span>
2281
2281
  <span class="cline-any cline-neutral">&nbsp;</span>
2282
2282
  <span class="cline-any cline-neutral">&nbsp;</span>
2283
2283
  <span class="cline-any cline-neutral">&nbsp;</span>
2284
- <span class="cline-any cline-no">&nbsp;</span>
2284
+ <span class="cline-any cline-yes">1x</span>
2285
2285
  <span class="cline-any cline-neutral">&nbsp;</span>
2286
- <span class="cline-any cline-no">&nbsp;</span>
2286
+ <span class="cline-any cline-yes">1x</span>
2287
2287
  <span class="cline-any cline-neutral">&nbsp;</span>
2288
2288
  <span class="cline-any cline-neutral">&nbsp;</span>
2289
2289
  <span class="cline-any cline-neutral">&nbsp;</span>
2290
2290
  <span class="cline-any cline-neutral">&nbsp;</span>
2291
2291
  <span class="cline-any cline-neutral">&nbsp;</span>
2292
- <span class="cline-any cline-yes">12x</span>
2292
+ <span class="cline-any cline-yes">21x</span>
2293
2293
  <span class="cline-any cline-neutral">&nbsp;</span>
2294
2294
  <span class="cline-any cline-neutral">&nbsp;</span>
2295
2295
  <span class="cline-any cline-neutral">&nbsp;</span>
2296
2296
  <span class="cline-any cline-neutral">&nbsp;</span>
2297
2297
  <span class="cline-any cline-neutral">&nbsp;</span>
2298
- <span class="cline-any cline-no">&nbsp;</span>
2298
+ <span class="cline-any cline-yes">1x</span>
2299
2299
  <span class="cline-any cline-neutral">&nbsp;</span>
2300
- <span class="cline-any cline-no">&nbsp;</span>
2301
- <span class="cline-any cline-no">&nbsp;</span>
2302
- <span class="cline-any cline-no">&nbsp;</span>
2300
+ <span class="cline-any cline-yes">1x</span>
2301
+ <span class="cline-any cline-yes">1x</span>
2302
+ <span class="cline-any cline-yes">1x</span>
2303
2303
  <span class="cline-any cline-neutral">&nbsp;</span>
2304
2304
  <span class="cline-any cline-neutral">&nbsp;</span>
2305
2305
  <span class="cline-any cline-neutral">&nbsp;</span>
2306
2306
  <span class="cline-any cline-neutral">&nbsp;</span>
2307
2307
  <span class="cline-any cline-neutral">&nbsp;</span>
2308
2308
  <span class="cline-any cline-neutral">&nbsp;</span>
2309
- <span class="cline-any cline-no">&nbsp;</span>
2309
+ <span class="cline-any cline-yes">1x</span>
2310
2310
  <span class="cline-any cline-neutral">&nbsp;</span>
2311
- <span class="cline-any cline-no">&nbsp;</span>
2311
+ <span class="cline-any cline-yes">1x</span>
2312
2312
  <span class="cline-any cline-neutral">&nbsp;</span>
2313
2313
  <span class="cline-any cline-neutral">&nbsp;</span>
2314
2314
  <span class="cline-any cline-neutral">&nbsp;</span>
2315
2315
  <span class="cline-any cline-neutral">&nbsp;</span>
2316
- <span class="cline-any cline-yes">12x</span>
2316
+ <span class="cline-any cline-yes">20x</span>
2317
2317
  <span class="cline-any cline-neutral">&nbsp;</span>
2318
2318
  <span class="cline-any cline-neutral">&nbsp;</span>
2319
- <span class="cline-any cline-yes">12x</span>
2320
- <span class="cline-any cline-no">&nbsp;</span>
2319
+ <span class="cline-any cline-yes">20x</span>
2320
+ <span class="cline-any cline-yes">1x</span>
2321
2321
  <span class="cline-any cline-neutral">&nbsp;</span>
2322
2322
  <span class="cline-any cline-neutral">&nbsp;</span>
2323
2323
  <span class="cline-any cline-neutral">&nbsp;</span>
2324
2324
  <span class="cline-any cline-neutral">&nbsp;</span>
2325
2325
  <span class="cline-any cline-neutral">&nbsp;</span>
2326
- <span class="cline-any cline-no">&nbsp;</span>
2326
+ <span class="cline-any cline-yes">1x</span>
2327
2327
  <span class="cline-any cline-neutral">&nbsp;</span>
2328
- <span class="cline-any cline-no">&nbsp;</span>
2328
+ <span class="cline-any cline-yes">1x</span>
2329
2329
  <span class="cline-any cline-neutral">&nbsp;</span>
2330
2330
  <span class="cline-any cline-neutral">&nbsp;</span>
2331
- <span class="cline-any cline-yes">12x</span>
2332
- <span class="cline-any cline-yes">42x</span>
2331
+ <span class="cline-any cline-yes">19x</span>
2332
+ <span class="cline-any cline-yes">69x</span>
2333
2333
  <span class="cline-any cline-neutral">&nbsp;</span>
2334
2334
  <span class="cline-any cline-neutral">&nbsp;</span>
2335
2335
  <span class="cline-any cline-neutral">&nbsp;</span>
2336
- <span class="cline-any cline-yes">12x</span>
2337
- <span class="cline-any cline-no">&nbsp;</span>
2336
+ <span class="cline-any cline-yes">19x</span>
2337
+ <span class="cline-any cline-yes">1x</span>
2338
2338
  <span class="cline-any cline-neutral">&nbsp;</span>
2339
2339
  <span class="cline-any cline-neutral">&nbsp;</span>
2340
2340
  <span class="cline-any cline-neutral">&nbsp;</span>
2341
2341
  <span class="cline-any cline-neutral">&nbsp;</span>
2342
2342
  <span class="cline-any cline-neutral">&nbsp;</span>
2343
- <span class="cline-any cline-no">&nbsp;</span>
2343
+ <span class="cline-any cline-yes">1x</span>
2344
2344
  <span class="cline-any cline-neutral">&nbsp;</span>
2345
- <span class="cline-any cline-no">&nbsp;</span>
2345
+ <span class="cline-any cline-yes">1x</span>
2346
2346
  <span class="cline-any cline-neutral">&nbsp;</span>
2347
2347
  <span class="cline-any cline-neutral">&nbsp;</span>
2348
- <span class="cline-any cline-yes">12x</span>
2348
+ <span class="cline-any cline-yes">18x</span>
2349
2349
  <span class="cline-any cline-neutral">&nbsp;</span>
2350
2350
  <span class="cline-any cline-neutral">&nbsp;</span>
2351
- <span class="cline-any cline-yes">12x</span>
2351
+ <span class="cline-any cline-yes">18x</span>
2352
2352
  <span class="cline-any cline-neutral">&nbsp;</span>
2353
- <span class="cline-any cline-yes">12x</span>
2354
- <span class="cline-any cline-no">&nbsp;</span>
2353
+ <span class="cline-any cline-yes">18x</span>
2354
+ <span class="cline-any cline-yes">1x</span>
2355
2355
  <span class="cline-any cline-neutral">&nbsp;</span>
2356
2356
  <span class="cline-any cline-neutral">&nbsp;</span>
2357
2357
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2359,28 +2359,28 @@
2359
2359
  <span class="cline-any cline-neutral">&nbsp;</span>
2360
2360
  <span class="cline-any cline-neutral">&nbsp;</span>
2361
2361
  <span class="cline-any cline-neutral">&nbsp;</span>
2362
- <span class="cline-any cline-no">&nbsp;</span>
2362
+ <span class="cline-any cline-yes">1x</span>
2363
2363
  <span class="cline-any cline-neutral">&nbsp;</span>
2364
- <span class="cline-any cline-no">&nbsp;</span>
2364
+ <span class="cline-any cline-yes">1x</span>
2365
2365
  <span class="cline-any cline-neutral">&nbsp;</span>
2366
2366
  <span class="cline-any cline-neutral">&nbsp;</span>
2367
2367
  <span class="cline-any cline-neutral">&nbsp;</span>
2368
- <span class="cline-any cline-yes">12x</span>
2368
+ <span class="cline-any cline-yes">17x</span>
2369
2369
  <span class="cline-any cline-neutral">&nbsp;</span>
2370
- <span class="cline-any cline-yes">12x</span>
2370
+ <span class="cline-any cline-yes">17x</span>
2371
2371
  <span class="cline-any cline-neutral">&nbsp;</span>
2372
2372
  <span class="cline-any cline-neutral">&nbsp;</span>
2373
2373
  <span class="cline-any cline-neutral">&nbsp;</span>
2374
2374
  <span class="cline-any cline-neutral">&nbsp;</span>
2375
2375
  <span class="cline-any cline-neutral">&nbsp;</span>
2376
2376
  <span class="cline-any cline-neutral">&nbsp;</span>
2377
- <span class="cline-any cline-yes">12x</span>
2377
+ <span class="cline-any cline-yes">17x</span>
2378
2378
  <span class="cline-any cline-neutral">&nbsp;</span>
2379
- <span class="cline-any cline-yes">12x</span>
2379
+ <span class="cline-any cline-yes">17x</span>
2380
2380
  <span class="cline-any cline-neutral">&nbsp;</span>
2381
2381
  <span class="cline-any cline-neutral">&nbsp;</span>
2382
2382
  <span class="cline-any cline-neutral">&nbsp;</span>
2383
- <span class="cline-any cline-no">&nbsp;</span>
2383
+ <span class="cline-any cline-yes">1x</span>
2384
2384
  <span class="cline-any cline-neutral">&nbsp;</span>
2385
2385
  <span class="cline-any cline-neutral">&nbsp;</span>
2386
2386
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2390,30 +2390,30 @@
2390
2390
  <span class="cline-any cline-neutral">&nbsp;</span>
2391
2391
  <span class="cline-any cline-neutral">&nbsp;</span>
2392
2392
  <span class="cline-any cline-neutral">&nbsp;</span>
2393
- <span class="cline-any cline-no">&nbsp;</span>
2393
+ <span class="cline-any cline-yes">1x</span>
2394
2394
  <span class="cline-any cline-neutral">&nbsp;</span>
2395
- <span class="cline-any cline-no">&nbsp;</span>
2395
+ <span class="cline-any cline-yes">1x</span>
2396
2396
  <span class="cline-any cline-neutral">&nbsp;</span>
2397
2397
  <span class="cline-any cline-neutral">&nbsp;</span>
2398
2398
  <span class="cline-any cline-neutral">&nbsp;</span>
2399
- <span class="cline-any cline-yes">12x</span>
2400
- <span class="cline-any cline-yes">24x</span>
2399
+ <span class="cline-any cline-yes">16x</span>
2400
+ <span class="cline-any cline-yes">32x</span>
2401
2401
  <span class="cline-any cline-neutral">&nbsp;</span>
2402
- <span class="cline-any cline-yes">12x</span>
2403
- <span class="cline-any cline-yes">12x</span>
2402
+ <span class="cline-any cline-yes">16x</span>
2403
+ <span class="cline-any cline-yes">16x</span>
2404
2404
  <span class="cline-any cline-neutral">&nbsp;</span>
2405
- <span class="cline-any cline-yes">12x</span>
2406
- <span class="cline-any cline-yes">2x</span>
2407
- <span class="cline-any cline-no">&nbsp;</span>
2408
- <span class="cline-any cline-no">&nbsp;</span>
2409
- <span class="cline-any cline-no">&nbsp;</span>
2405
+ <span class="cline-any cline-yes">16x</span>
2406
+ <span class="cline-any cline-yes">4x</span>
2407
+ <span class="cline-any cline-yes">4x</span>
2408
+ <span class="cline-any cline-yes">7x</span>
2409
+ <span class="cline-any cline-yes">3x</span>
2410
2410
  <span class="cline-any cline-neutral">&nbsp;</span>
2411
2411
  <span class="cline-any cline-neutral">&nbsp;</span>
2412
2412
  <span class="cline-any cline-neutral">&nbsp;</span>
2413
2413
  <span class="cline-any cline-neutral">&nbsp;</span>
2414
2414
  <span class="cline-any cline-neutral">&nbsp;</span>
2415
- <span class="cline-any cline-no">&nbsp;</span>
2416
- <span class="cline-any cline-no">&nbsp;</span>
2415
+ <span class="cline-any cline-yes">4x</span>
2416
+ <span class="cline-any cline-yes">4x</span>
2417
2417
  <span class="cline-any cline-neutral">&nbsp;</span>
2418
2418
  <span class="cline-any cline-neutral">&nbsp;</span>
2419
2419
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2425,8 +2425,8 @@
2425
2425
  <span class="cline-any cline-no">&nbsp;</span>
2426
2426
  <span class="cline-any cline-neutral">&nbsp;</span>
2427
2427
  <span class="cline-any cline-neutral">&nbsp;</span>
2428
- <span class="cline-any cline-no">&nbsp;</span>
2429
- <span class="cline-any cline-no">&nbsp;</span>
2428
+ <span class="cline-any cline-yes">4x</span>
2429
+ <span class="cline-any cline-yes">2x</span>
2430
2430
  <span class="cline-any cline-neutral">&nbsp;</span>
2431
2431
  <span class="cline-any cline-neutral">&nbsp;</span>
2432
2432
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2436,9 +2436,9 @@
2436
2436
  <span class="cline-any cline-neutral">&nbsp;</span>
2437
2437
  <span class="cline-any cline-neutral">&nbsp;</span>
2438
2438
  <span class="cline-any cline-neutral">&nbsp;</span>
2439
- <span class="cline-any cline-no">&nbsp;</span>
2439
+ <span class="cline-any cline-yes">2x</span>
2440
2440
  <span class="cline-any cline-neutral">&nbsp;</span>
2441
- <span class="cline-any cline-no">&nbsp;</span>
2441
+ <span class="cline-any cline-yes">2x</span>
2442
2442
  <span class="cline-any cline-neutral">&nbsp;</span>
2443
2443
  <span class="cline-any cline-neutral">&nbsp;</span>
2444
2444
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2463,7 +2463,7 @@
2463
2463
  <span class="cline-any cline-neutral">&nbsp;</span>
2464
2464
  <span class="cline-any cline-neutral">&nbsp;</span>
2465
2465
  <span class="cline-any cline-neutral">&nbsp;</span>
2466
- <span class="cline-any cline-yes">10x</span>
2466
+ <span class="cline-any cline-yes">12x</span>
2467
2467
  <span class="cline-any cline-neutral">&nbsp;</span>
2468
2468
  <span class="cline-any cline-neutral">&nbsp;</span>
2469
2469
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2472,9 +2472,9 @@
2472
2472
  <span class="cline-any cline-neutral">&nbsp;</span>
2473
2473
  <span class="cline-any cline-neutral">&nbsp;</span>
2474
2474
  <span class="cline-any cline-neutral">&nbsp;</span>
2475
- <span class="cline-any cline-yes">10x</span>
2475
+ <span class="cline-any cline-yes">12x</span>
2476
2476
  <span class="cline-any cline-neutral">&nbsp;</span>
2477
- <span class="cline-any cline-yes">10x</span>
2477
+ <span class="cline-any cline-yes">12x</span>
2478
2478
  <span class="cline-any cline-neutral">&nbsp;</span>
2479
2479
  <span class="cline-any cline-no">&nbsp;</span>
2480
2480
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2492,11 +2492,11 @@
2492
2492
  <span class="cline-any cline-neutral">&nbsp;</span>
2493
2493
  <span class="cline-any cline-neutral">&nbsp;</span>
2494
2494
  <span class="cline-any cline-neutral">&nbsp;</span>
2495
- <span class="cline-any cline-yes">12x</span>
2496
- <span class="cline-any cline-yes">12x</span>
2495
+ <span class="cline-any cline-yes">23x</span>
2496
+ <span class="cline-any cline-yes">23x</span>
2497
2497
  <span class="cline-any cline-neutral">&nbsp;</span>
2498
- <span class="cline-any cline-yes">12x</span>
2499
- <span class="cline-any cline-yes">12x</span>
2498
+ <span class="cline-any cline-yes">23x</span>
2499
+ <span class="cline-any cline-yes">20x</span>
2500
2500
  <span class="cline-any cline-neutral">&nbsp;</span>
2501
2501
  <span class="cline-any cline-neutral">&nbsp;</span>
2502
2502
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2504,10 +2504,10 @@
2504
2504
  <span class="cline-any cline-yes">2x</span>
2505
2505
  <span class="cline-any cline-neutral">&nbsp;</span>
2506
2506
  <span class="cline-any cline-neutral">&nbsp;</span>
2507
- <span class="cline-any cline-yes">10x</span>
2507
+ <span class="cline-any cline-yes">18x</span>
2508
2508
  <span class="cline-any cline-neutral">&nbsp;</span>
2509
2509
  <span class="cline-any cline-neutral">&nbsp;</span>
2510
- <span class="cline-any cline-no">&nbsp;</span>
2510
+ <span class="cline-any cline-yes">3x</span>
2511
2511
  <span class="cline-any cline-neutral">&nbsp;</span>
2512
2512
  <span class="cline-any cline-no">&nbsp;</span>
2513
2513
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2520,9 +2520,9 @@
2520
2520
  <span class="cline-any cline-neutral">&nbsp;</span>
2521
2521
  <span class="cline-any cline-neutral">&nbsp;</span>
2522
2522
  <span class="cline-any cline-neutral">&nbsp;</span>
2523
- <span class="cline-any cline-yes">1x</span>
2523
+ <span class="cline-any cline-yes">3x</span>
2524
2524
  <span class="cline-any cline-neutral">&nbsp;</span>
2525
- <span class="cline-any cline-yes">1x</span>
2525
+ <span class="cline-any cline-yes">3x</span>
2526
2526
  <span class="cline-any cline-neutral">&nbsp;</span>
2527
2527
  <span class="cline-any cline-neutral">&nbsp;</span>
2528
2528
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2550,9 +2550,9 @@
2550
2550
  <span class="cline-any cline-neutral">&nbsp;</span>
2551
2551
  <span class="cline-any cline-neutral">&nbsp;</span>
2552
2552
  <span class="cline-any cline-neutral">&nbsp;</span>
2553
- <span class="cline-any cline-no">&nbsp;</span>
2553
+ <span class="cline-any cline-yes">1x</span>
2554
2554
  <span class="cline-any cline-neutral">&nbsp;</span>
2555
- <span class="cline-any cline-no">&nbsp;</span>
2555
+ <span class="cline-any cline-yes">1x</span>
2556
2556
  <span class="cline-any cline-neutral">&nbsp;</span>
2557
2557
  <span class="cline-any cline-neutral">&nbsp;</span>
2558
2558
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2587,7 +2587,7 @@
2587
2587
  <span class="cline-any cline-neutral">&nbsp;</span>
2588
2588
  <span class="cline-any cline-neutral">&nbsp;</span>
2589
2589
  <span class="cline-any cline-yes">1x</span>
2590
- <span class="cline-any cline-yes">17x</span>
2590
+ <span class="cline-any cline-yes">19x</span>
2591
2591
  <span class="cline-any cline-neutral">&nbsp;</span>
2592
2592
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
2593
2593
  Context,
@@ -2733,8 +2733,8 @@ export function getValueByType(value: ValueType, fieldType: FieldType): ValueTyp
2733
2733
  return typeof value === "string" ? value : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
2734
2734
  case "integer":
2735
2735
  return parseInt(value as string, 10);
2736
- <span class="branch-2 cbranch-no" title="branch not covered" > case "double":</span>
2737
- <span class="cstat-no" title="statement not covered" > return parseFloat(value as string);</span>
2736
+ case "double":
2737
+ return parseFloat(value as string);
2738
2738
  case "boolean":
2739
2739
  return value === true;
2740
2740
  case "array":
@@ -2955,8 +2955,8 @@ export class FeaturevisorInstance {
2955
2955
  &nbsp;
2956
2956
  const value = getBucketedNumber(bucketKey);
2957
2957
  &nbsp;
2958
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.configureBucketValue) {
2959
- <span class="cstat-no" title="statement not covered" > return this.configureBucketValue(feature, context, value);</span>
2958
+ if (this.configureBucketValue) {
2959
+ return this.configureBucketValue(feature, context, value);
2960
2960
  }
2961
2961
  &nbsp;
2962
2962
  return value;
@@ -3084,15 +3084,15 @@ export class FeaturevisorInstance {
3084
3084
  const feature = this.getFeature(featureKey);
3085
3085
  &nbsp;
3086
3086
  // not found
3087
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!feature) {
3088
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3087
+ if (!feature) {
3088
+ evaluation = {
3089
3089
  featureKey: key,
3090
3090
  reason: EvaluationReason.NOT_FOUND,
3091
3091
  };
3092
3092
  &nbsp;
3093
- <span class="cstat-no" title="statement not covered" > this.logger.warn("feature not found", evaluation);</span>
3093
+ this.logger.warn("feature not found", evaluation);
3094
3094
  &nbsp;
3095
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3095
+ return evaluation;
3096
3096
  }
3097
3097
  &nbsp;
3098
3098
  // deprecated
@@ -3105,16 +3105,16 @@ export class FeaturevisorInstance {
3105
3105
  // forced
3106
3106
  const force = findForceFromFeature(feature, context, this.datafileReader);
3107
3107
  &nbsp;
3108
- <span class="missing-if-branch" title="if path not taken" >I</span>if (force &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >typeof force.enabled !== "undefined")</span> {
3109
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3108
+ if (force &amp;&amp; typeof force.enabled !== "undefined") {
3109
+ evaluation = {
3110
3110
  featureKey: feature.key,
3111
3111
  reason: EvaluationReason.FORCED,
3112
3112
  enabled: force.enabled,
3113
3113
  };
3114
3114
  &nbsp;
3115
- <span class="cstat-no" title="statement not covered" > this.logger.debug("forced enabled found", evaluation);</span>
3115
+ this.logger.debug("forced enabled found", evaluation);
3116
3116
  &nbsp;
3117
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3117
+ return evaluation;
3118
3118
  }
3119
3119
  &nbsp;
3120
3120
  // required
@@ -3163,35 +3163,35 @@ export class FeaturevisorInstance {
3163
3163
  &nbsp;
3164
3164
  if (matchedTraffic) {
3165
3165
  // check if mutually exclusive
3166
- <span class="missing-if-branch" title="if path not taken" >I</span>if (feature.ranges &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >feature.ranges.length &gt; 0)</span> {
3167
- const matchedRange = <span class="cstat-no" title="statement not covered" >feature.ranges.find(<span class="fstat-no" title="function not covered" >(r</span>ange) =&gt; {</span>
3168
- <span class="cstat-no" title="statement not covered" > return bucketValue &gt;= range[0] &amp;&amp; bucketValue &lt; range[1];</span>
3166
+ if (feature.ranges &amp;&amp; feature.ranges.length &gt; 0) {
3167
+ const matchedRange = feature.ranges.find((range) =&gt; {
3168
+ return bucketValue &gt;= range[0] &amp;&amp; bucketValue &lt; range[1];
3169
3169
  });
3170
3170
  &nbsp;
3171
3171
  // matched
3172
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (matchedRange) {</span>
3173
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3172
+ if (matchedRange) {
3173
+ evaluation = {
3174
3174
  featureKey: feature.key,
3175
3175
  reason: EvaluationReason.ALLOCATED,
3176
3176
  enabled:
3177
- typeof matchedTraffic.enabled === "undefined" ? true : matchedTraffic.enabled,
3177
+ typeof matchedTraffic.enabled === "undefined" ? true : <span class="branch-1 cbranch-no" title="branch not covered" >matchedTraffic.enabled,</span>
3178
3178
  bucketValue,
3179
3179
  };
3180
3180
  &nbsp;
3181
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3181
+ return evaluation;
3182
3182
  }
3183
3183
  &nbsp;
3184
3184
  // no match
3185
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3185
+ evaluation = {
3186
3186
  featureKey: feature.key,
3187
3187
  reason: EvaluationReason.OUT_OF_RANGE,
3188
3188
  enabled: false,
3189
3189
  bucketValue,
3190
3190
  };
3191
3191
  &nbsp;
3192
- <span class="cstat-no" title="statement not covered" > this.logger.debug("not matched", evaluation);</span>
3192
+ this.logger.debug("not matched", evaluation);
3193
3193
  &nbsp;
3194
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3194
+ return evaluation;
3195
3195
  }
3196
3196
  &nbsp;
3197
3197
  // override from rule
@@ -3269,15 +3269,15 @@ export class FeaturevisorInstance {
3269
3269
  &nbsp;
3270
3270
  const flag = this.evaluateFlag(featureKey, context);
3271
3271
  &nbsp;
3272
- <span class="missing-if-branch" title="if path not taken" >I</span>if (flag.enabled === false) {
3273
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3272
+ if (flag.enabled === false) {
3273
+ evaluation = {
3274
3274
  featureKey: key,
3275
3275
  reason: EvaluationReason.DISABLED,
3276
3276
  };
3277
3277
  &nbsp;
3278
- <span class="cstat-no" title="statement not covered" > this.logger.debug("feature is disabled", evaluation);</span>
3278
+ this.logger.debug("feature is disabled", evaluation);
3279
3279
  &nbsp;
3280
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3280
+ return evaluation;
3281
3281
  }
3282
3282
  &nbsp;
3283
3283
  // sticky
@@ -3321,15 +3321,15 @@ export class FeaturevisorInstance {
3321
3321
  const feature = this.getFeature(featureKey);
3322
3322
  &nbsp;
3323
3323
  // not found
3324
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!feature) {
3325
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3324
+ if (!feature) {
3325
+ evaluation = {
3326
3326
  featureKey: key,
3327
3327
  reason: EvaluationReason.NOT_FOUND,
3328
3328
  };
3329
3329
  &nbsp;
3330
- <span class="cstat-no" title="statement not covered" > this.logger.warn("feature not found", evaluation);</span>
3330
+ this.logger.warn("feature not found", evaluation);
3331
3331
  &nbsp;
3332
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3332
+ return evaluation;
3333
3333
  }
3334
3334
  &nbsp;
3335
3335
  // no variations
@@ -3349,19 +3349,19 @@ export class FeaturevisorInstance {
3349
3349
  // forced
3350
3350
  const force = findForceFromFeature(feature, context, this.datafileReader);
3351
3351
  &nbsp;
3352
- <span class="missing-if-branch" title="if path not taken" >I</span>if (force &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >force.variation)</span> {
3353
- const variation = <span class="cstat-no" title="statement not covered" >feature.variations.find(<span class="fstat-no" title="function not covered" >(v</span>) =&gt; <span class="cstat-no" title="statement not covered" >v.value === force.variation)</span>;</span>
3352
+ if (force &amp;&amp; force.variation) {
3353
+ const variation = feature.variations.find((v) =&gt; v.value === force.variation);
3354
3354
  &nbsp;
3355
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (variation) {</span>
3356
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3355
+ if (variation) {
3356
+ evaluation = {
3357
3357
  featureKey: feature.key,
3358
3358
  reason: EvaluationReason.FORCED,
3359
3359
  variation,
3360
3360
  };
3361
3361
  &nbsp;
3362
- <span class="cstat-no" title="statement not covered" > this.logger.debug("forced variation found", evaluation);</span>
3362
+ this.logger.debug("forced variation found", evaluation);
3363
3363
  &nbsp;
3364
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3364
+ return evaluation;
3365
3365
  }
3366
3366
  }
3367
3367
  &nbsp;
@@ -3377,11 +3377,11 @@ export class FeaturevisorInstance {
3377
3377
  &nbsp;
3378
3378
  if (matchedTraffic) {
3379
3379
  // override from rule
3380
- <span class="missing-if-branch" title="if path not taken" >I</span>if (matchedTraffic.variation) {
3381
- const variation = <span class="cstat-no" title="statement not covered" >feature.variations.find(<span class="fstat-no" title="function not covered" >(v</span>) =&gt; <span class="cstat-no" title="statement not covered" >v.value === matchedTraffic.variation)</span>;</span>
3380
+ if (matchedTraffic.variation) {
3381
+ const variation = feature.variations.find((v) =&gt; v.value === matchedTraffic.variation);
3382
3382
  &nbsp;
3383
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (variation) {</span>
3384
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3383
+ if (variation) {
3384
+ evaluation = {
3385
3385
  featureKey: feature.key,
3386
3386
  reason: EvaluationReason.RULE,
3387
3387
  variation,
@@ -3389,9 +3389,9 @@ export class FeaturevisorInstance {
3389
3389
  ruleKey: matchedTraffic.key,
3390
3390
  };
3391
3391
  &nbsp;
3392
- <span class="cstat-no" title="statement not covered" > this.logger.debug("override from rule", evaluation);</span>
3392
+ this.logger.debug("override from rule", evaluation);
3393
3393
  &nbsp;
3394
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3394
+ return evaluation;
3395
3395
  }
3396
3396
  }
3397
3397
  &nbsp;
@@ -3450,7 +3450,7 @@ export class FeaturevisorInstance {
3450
3450
  return evaluation.variation.value;
3451
3451
  }
3452
3452
  &nbsp;
3453
- <span class="cstat-no" title="statement not covered" > return undefined;</span>
3453
+ return undefined;
3454
3454
  } catch (e) {
3455
3455
  <span class="cstat-no" title="statement not covered" > this.logger.error("getVariation", { featureKey, error: e });</span>
3456
3456
  &nbsp;
@@ -3518,60 +3518,60 @@ export class FeaturevisorInstance {
3518
3518
  &nbsp;
3519
3519
  const flag = this.evaluateFlag(featureKey, context);
3520
3520
  &nbsp;
3521
- <span class="missing-if-branch" title="if path not taken" >I</span>if (flag.enabled === false) {
3522
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3521
+ if (flag.enabled === false) {
3522
+ evaluation = {
3523
3523
  featureKey: key,
3524
3524
  reason: EvaluationReason.DISABLED,
3525
3525
  };
3526
3526
  &nbsp;
3527
- <span class="cstat-no" title="statement not covered" > this.logger.debug("feature is disabled", evaluation);</span>
3527
+ this.logger.debug("feature is disabled", evaluation);
3528
3528
  &nbsp;
3529
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3529
+ return evaluation;
3530
3530
  }
3531
3531
  &nbsp;
3532
3532
  // sticky
3533
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.stickyFeatures &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this.stickyFeatures[key])</span> {
3534
- const variables = <span class="cstat-no" title="statement not covered" >this.stickyFeatures[key].variables;</span>
3533
+ if (this.stickyFeatures &amp;&amp; this.stickyFeatures[key]) {
3534
+ const variables = this.stickyFeatures[key].variables;
3535
3535
  &nbsp;
3536
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (variables) {</span>
3537
- const result = <span class="cstat-no" title="statement not covered" >variables[variableKey];</span>
3536
+ if (variables) {
3537
+ const result = variables[variableKey];
3538
3538
  &nbsp;
3539
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof result !== "undefined") {</span>
3540
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3539
+ if (typeof result !== "undefined") {
3540
+ evaluation = {
3541
3541
  featureKey: key,
3542
3542
  reason: EvaluationReason.STICKY,
3543
3543
  variableKey,
3544
3544
  variableValue: result,
3545
3545
  };
3546
3546
  &nbsp;
3547
- <span class="cstat-no" title="statement not covered" > this.logger.debug("using sticky variable", evaluation);</span>
3547
+ this.logger.debug("using sticky variable", evaluation);
3548
3548
  &nbsp;
3549
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3549
+ return evaluation;
3550
3550
  }
3551
3551
  }
3552
3552
  }
3553
3553
  &nbsp;
3554
3554
  // initial
3555
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
3555
+ if (
3556
3556
  this.statuses &amp;&amp;
3557
3557
  !this.statuses.ready &amp;&amp;
3558
- <span class="branch-2 cbranch-no" title="branch not covered" > this.initialFeatures </span>&amp;&amp;
3559
- <span class="branch-3 cbranch-no" title="branch not covered" > this.initialFeatures[key]</span>
3558
+ this.initialFeatures &amp;&amp;
3559
+ this.initialFeatures[key]
3560
3560
  ) {
3561
- const variables = <span class="cstat-no" title="statement not covered" >this.initialFeatures[key].variables;</span>
3561
+ const variables = this.initialFeatures[key].variables;
3562
3562
  &nbsp;
3563
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (variables) {</span>
3564
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof variables[variableKey] !== "undefined") {</span>
3565
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3563
+ if (variables) {
3564
+ if (typeof variables[variableKey] !== "undefined") {
3565
+ evaluation = {
3566
3566
  featureKey: key,
3567
3567
  reason: EvaluationReason.INITIAL,
3568
3568
  variableKey,
3569
3569
  variableValue: variables[variableKey],
3570
3570
  };
3571
3571
  &nbsp;
3572
- <span class="cstat-no" title="statement not covered" > this.logger.debug("using initial variable", evaluation);</span>
3572
+ this.logger.debug("using initial variable", evaluation);
3573
3573
  &nbsp;
3574
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3574
+ return evaluation;
3575
3575
  }
3576
3576
  }
3577
3577
  }
@@ -3579,16 +3579,16 @@ export class FeaturevisorInstance {
3579
3579
  const feature = this.getFeature(featureKey);
3580
3580
  &nbsp;
3581
3581
  // not found
3582
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!feature) {
3583
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3582
+ if (!feature) {
3583
+ evaluation = {
3584
3584
  featureKey: key,
3585
3585
  reason: EvaluationReason.NOT_FOUND,
3586
3586
  variableKey,
3587
3587
  };
3588
3588
  &nbsp;
3589
- <span class="cstat-no" title="statement not covered" > this.logger.warn("feature not found in datafile", evaluation);</span>
3589
+ this.logger.warn("feature not found in datafile", evaluation);
3590
3590
  &nbsp;
3591
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3591
+ return evaluation;
3592
3592
  }
3593
3593
  &nbsp;
3594
3594
  const variableSchema = Array.isArray(feature.variablesSchema)
@@ -3596,16 +3596,16 @@ export class FeaturevisorInstance {
3596
3596
  : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
3597
3597
  &nbsp;
3598
3598
  // variable schema not found
3599
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!variableSchema) {
3600
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3599
+ if (!variableSchema) {
3600
+ evaluation = {
3601
3601
  featureKey: key,
3602
3602
  reason: EvaluationReason.NOT_FOUND,
3603
3603
  variableKey,
3604
3604
  };
3605
3605
  &nbsp;
3606
- <span class="cstat-no" title="statement not covered" > this.logger.warn("variable schema not found", evaluation);</span>
3606
+ this.logger.warn("variable schema not found", evaluation);
3607
3607
  &nbsp;
3608
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3608
+ return evaluation;
3609
3609
  }
3610
3610
  &nbsp;
3611
3611
  const finalContext = this.interceptContext ? <span class="branch-0 cbranch-no" title="branch not covered" >this.interceptContext(context) </span>: context;
@@ -3613,8 +3613,8 @@ export class FeaturevisorInstance {
3613
3613
  // forced
3614
3614
  const force = findForceFromFeature(feature, context, this.datafileReader);
3615
3615
  &nbsp;
3616
- <span class="missing-if-branch" title="if path not taken" >I</span>if (force &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >force.variables </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >typeof force.variables[variableKey] !== "undefined")</span> {
3617
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3616
+ if (force &amp;&amp; force.variables &amp;&amp; typeof force.variables[variableKey] !== "undefined") {
3617
+ evaluation = {
3618
3618
  featureKey: feature.key,
3619
3619
  reason: EvaluationReason.FORCED,
3620
3620
  variableKey,
@@ -3622,9 +3622,9 @@ export class FeaturevisorInstance {
3622
3622
  variableValue: force.variables[variableKey],
3623
3623
  };
3624
3624
  &nbsp;
3625
- <span class="cstat-no" title="statement not covered" > this.logger.debug("forced variable", evaluation);</span>
3625
+ this.logger.debug("forced variable", evaluation);
3626
3626
  &nbsp;
3627
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3627
+ return evaluation;
3628
3628
  }
3629
3629
  &nbsp;
3630
3630
  // bucketing
@@ -3639,11 +3639,11 @@ export class FeaturevisorInstance {
3639
3639
  &nbsp;
3640
3640
  if (matchedTraffic) {
3641
3641
  // override from rule
3642
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
3642
+ if (
3643
3643
  matchedTraffic.variables &amp;&amp;
3644
- <span class="branch-1 cbranch-no" title="branch not covered" > typeof matchedTraffic.variables[variableKey] !== "undefined"</span>
3644
+ typeof matchedTraffic.variables[variableKey] !== "undefined"
3645
3645
  ) {
3646
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3646
+ evaluation = {
3647
3647
  featureKey: feature.key,
3648
3648
  reason: EvaluationReason.RULE,
3649
3649
  variableKey,
@@ -3653,9 +3653,9 @@ export class FeaturevisorInstance {
3653
3653
  ruleKey: matchedTraffic.key,
3654
3654
  };
3655
3655
  &nbsp;
3656
- <span class="cstat-no" title="statement not covered" > this.logger.debug("override from rule", evaluation);</span>
3656
+ this.logger.debug("override from rule", evaluation);
3657
3657
  &nbsp;
3658
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3658
+ return evaluation;
3659
3659
  }
3660
3660
  &nbsp;
3661
3661
  // regular allocation
@@ -3666,19 +3666,19 @@ export class FeaturevisorInstance {
3666
3666
  const variableFromVariation = variation.variables.find((v) =&gt; v.key === variableKey);
3667
3667
  &nbsp;
3668
3668
  if (variableFromVariation) {
3669
- <span class="missing-if-branch" title="if path not taken" >I</span>if (variableFromVariation.overrides) {
3670
- const override = <span class="cstat-no" title="statement not covered" >variableFromVariation.overrides.find(<span class="fstat-no" title="function not covered" >(o</span>) =&gt; {</span>
3671
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (o.conditions) {</span>
3672
- <span class="cstat-no" title="statement not covered" > return allConditionsAreMatched(</span>
3673
- typeof o.conditions === "string" ? JSON.parse(o.conditions) : o.conditions,
3669
+ if (variableFromVariation.overrides) {
3670
+ const override = variableFromVariation.overrides.find((o) =&gt; {
3671
+ if (o.conditions) {
3672
+ return allConditionsAreMatched(
3673
+ typeof o.conditions === "string" ? <span class="branch-0 cbranch-no" title="branch not covered" >JSON.parse(o.conditions) </span>: o.conditions,
3674
3674
  finalContext,
3675
3675
  );
3676
3676
  }
3677
3677
  &nbsp;
3678
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (o.segments) {</span>
3679
- <span class="cstat-no" title="statement not covered" > return allGroupSegmentsAreMatched(</span>
3680
- typeof o.segments === "string" &amp;&amp; o.segments !== "*"
3681
- ? JSON.parse(o.segments)
3678
+ if (o.segments) {
3679
+ return allGroupSegmentsAreMatched(
3680
+ typeof o.segments === "string" &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >o.segments !== "*"</span>
3681
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >JSON.parse(o.segments)</span>
3682
3682
  : o.segments,
3683
3683
  finalContext,
3684
3684
  this.datafileReader,
@@ -3688,8 +3688,8 @@ export class FeaturevisorInstance {
3688
3688
  <span class="cstat-no" title="statement not covered" > return false;</span>
3689
3689
  });
3690
3690
  &nbsp;
3691
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (override) {</span>
3692
- <span class="cstat-no" title="statement not covered" > evaluation = {</span>
3691
+ if (override) {
3692
+ evaluation = {
3693
3693
  featureKey: feature.key,
3694
3694
  reason: EvaluationReason.OVERRIDE,
3695
3695
  variableKey,
@@ -3699,9 +3699,9 @@ export class FeaturevisorInstance {
3699
3699
  ruleKey: matchedTraffic.key,
3700
3700
  };
3701
3701
  &nbsp;
3702
- <span class="cstat-no" title="statement not covered" > this.logger.debug("variable override", evaluation);</span>
3702
+ this.logger.debug("variable override", evaluation);
3703
3703
  &nbsp;
3704
- <span class="cstat-no" title="statement not covered" > return evaluation;</span>
3704
+ return evaluation;
3705
3705
  }
3706
3706
  }
3707
3707
  &nbsp;
@@ -3770,7 +3770,7 @@ export class FeaturevisorInstance {
3770
3770
  return evaluation.variableValue;
3771
3771
  }
3772
3772
  &nbsp;
3773
- <span class="cstat-no" title="statement not covered" > return undefined;</span>
3773
+ return undefined;
3774
3774
  } catch (e) {
3775
3775
  <span class="cstat-no" title="statement not covered" > this.logger.error("getVariable", { featureKey, variableKey, error: e });</span>
3776
3776
  &nbsp;
@@ -3808,14 +3808,14 @@ export class FeaturevisorInstance {
3808
3808
  return getValueByType(variableValue, "integer") as number | undefined;
3809
3809
  }
3810
3810
  &nbsp;
3811
- <span class="fstat-no" title="function not covered" > getVariableDouble(</span>
3811
+ getVariableDouble(
3812
3812
  featureKey: FeatureKey | Feature,
3813
3813
  variableKey: string,
3814
3814
  context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
3815
3815
  ): number | undefined {
3816
- const variableValue = <span class="cstat-no" title="statement not covered" >this.getVariable(featureKey, variableKey, context);</span>
3816
+ const variableValue = this.getVariable(featureKey, variableKey, context);
3817
3817
  &nbsp;
3818
- <span class="cstat-no" title="statement not covered" > return getValueByType(variableValue, "double") as number | undefined;</span>
3818
+ return getValueByType(variableValue, "double") as number | undefined;
3819
3819
  }
3820
3820
  &nbsp;
3821
3821
  getVariableArray(
@@ -3859,7 +3859,7 @@ export function createInstance(options: InstanceOptions): FeaturevisorInstance {
3859
3859
  <div class='footer quiet pad2 space-top1 center small'>
3860
3860
  Code coverage generated by
3861
3861
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3862
- at 2023-09-16T19:49:33.532Z
3862
+ at 2023-09-16T21:14:34.384Z
3863
3863
  </div>
3864
3864
  <script src="prettify.js"></script>
3865
3865
  <script>