https://github.com/N-BodyShop/changa
- HEAD
- refs/cache-automerge/4e/d05d687a42360a41f9b1af73522169c2cc1a3e
- refs/cache-automerge/6b/f64a69a3530c3b7fb5413b8e0a0f2b1403ad6b
- refs/cache-automerge/c7/6a99ef8540651daeb115329f97ccd48a2574da
- refs/cache-automerge/db/51e1796ab6ac742dd928406a651b91f273b10d
- refs/cache-automerge/e5/32d1895f3abfb06a07c0a4241a6108fcdb142d
- refs/changes/00/1700/1
- refs/changes/00/5200/1
- refs/changes/00/5200/2
- refs/changes/00/5200/3
- refs/changes/00/5200/4
- refs/changes/01/1701/1
- refs/changes/01/1701/2
- refs/changes/01/1701/3
- refs/changes/01/1701/4
- refs/changes/02/1702/1
- refs/changes/02/1702/2
- refs/changes/02/1802/1
- refs/changes/02/3602/1
- refs/changes/02/3602/10
- refs/changes/02/3602/11
- refs/changes/02/3602/12
- refs/changes/02/3602/13
- refs/changes/02/3602/14
- refs/changes/02/3602/15
- refs/changes/02/3602/16
- refs/changes/02/3602/17
- refs/changes/02/3602/18
- refs/changes/02/3602/19
- refs/changes/02/3602/2
- refs/changes/02/3602/20
- refs/changes/02/3602/21
- refs/changes/02/3602/22
- refs/changes/02/3602/23
- refs/changes/02/3602/24
- refs/changes/02/3602/25
- refs/changes/02/3602/26
- refs/changes/02/3602/27
- refs/changes/02/3602/28
- refs/changes/02/3602/29
- refs/changes/02/3602/3
- refs/changes/02/3602/30
- refs/changes/02/3602/31
- refs/changes/02/3602/32
- refs/changes/02/3602/33
- refs/changes/02/3602/34
- refs/changes/02/3602/35
- refs/changes/02/3602/36
- refs/changes/02/3602/37
- refs/changes/02/3602/38
- refs/changes/02/3602/39
- refs/changes/02/3602/4
- refs/changes/02/3602/40
- refs/changes/02/3602/41
- refs/changes/02/3602/42
- refs/changes/02/3602/43
- refs/changes/02/3602/44
- refs/changes/02/3602/45
- refs/changes/02/3602/46
- refs/changes/02/3602/47
- refs/changes/02/3602/48
- refs/changes/02/3602/49
- refs/changes/02/3602/5
- refs/changes/02/3602/50
- refs/changes/02/3602/51
- refs/changes/02/3602/52
- refs/changes/02/3602/53
- refs/changes/02/3602/6
- refs/changes/02/3602/7
- refs/changes/02/3602/8
- refs/changes/02/3602/9
- refs/changes/03/1703/1
- refs/changes/03/1703/2
- refs/changes/03/4403/1
- refs/changes/04/1704/1
- refs/changes/04/4404/1
- refs/changes/04/4404/2
- refs/changes/04/4404/3
- refs/changes/05/1705/1
- refs/changes/05/1705/2
- refs/changes/05/2105/1
- refs/changes/05/2105/2
- refs/changes/05/4405/1
- refs/changes/06/1706/1
- refs/changes/06/1706/2
- refs/changes/07/1707/1
- refs/changes/07/1707/2
- refs/changes/07/1707/3
- refs/changes/07/207/1
- refs/changes/07/207/2
- refs/changes/07/207/3
- refs/changes/07/207/4
- refs/changes/07/207/5
- refs/changes/07/207/6
- refs/changes/07/4807/1
- refs/changes/08/1708/1
- refs/changes/08/1708/2
- refs/changes/08/208/1
- refs/changes/08/208/2
- refs/changes/08/208/3
- refs/changes/08/208/4
- refs/changes/08/208/5
- refs/changes/08/208/6
- refs/changes/08/208/7
- refs/changes/08/208/8
- refs/changes/08/2908/1
- refs/changes/08/2908/2
- refs/changes/08/2908/3
- refs/changes/08/2908/4
- refs/changes/09/1009/1
- refs/changes/09/1709/1
- refs/changes/09/1709/2
- refs/changes/09/209/1
- refs/changes/10/1010/1
- refs/changes/10/1710/1
- refs/changes/10/1710/2
- refs/changes/11/1711/1
- refs/changes/11/1711/2
- refs/changes/11/2911/1
- refs/changes/11/2911/2
- refs/changes/11/2911/3
- refs/changes/11/2911/4
- refs/changes/11/2911/5
- refs/changes/11/3311/1
- refs/changes/11/5111/1
- refs/changes/12/1712/1
- refs/changes/12/1712/2
- refs/changes/12/212/1
- refs/changes/12/212/2
- refs/changes/12/3312/1
- refs/changes/12/3712/1
- refs/changes/12/3712/2
- refs/changes/12/3712/3
- refs/changes/12/3712/4
- refs/changes/12/3712/5
- refs/changes/12/712/1
- refs/changes/12/712/2
- refs/changes/12/712/3
- refs/changes/12/712/4
- refs/changes/12/712/5
- refs/changes/12/712/6
- refs/changes/12/712/7
- refs/changes/12/712/8
- refs/changes/12/712/9
- refs/changes/12/812/1
- refs/changes/12/812/2
- refs/changes/12/812/3
- refs/changes/13/1713/1
- refs/changes/13/1713/2
- refs/changes/13/5013/1
- refs/changes/13/813/1
- refs/changes/14/1714/1
- refs/changes/14/1714/2
- refs/changes/14/3114/1
- refs/changes/15/1115/1
- refs/changes/15/1715/1
- refs/changes/15/1715/2
- refs/changes/15/4815/1
- refs/changes/15/4815/2
- refs/changes/15/4815/3
- refs/changes/15/4815/4
- refs/changes/15/4815/5
- refs/changes/16/1716/1
- refs/changes/16/1716/2
- refs/changes/16/2516/1
- refs/changes/16/4416/1
- refs/changes/16/4416/2
- refs/changes/16/4416/3
- refs/changes/16/4416/4
- refs/changes/17/1717/1
- refs/changes/17/1717/2
- refs/changes/17/4417/1
- refs/changes/17/4417/2
- refs/changes/17/4817/1
- refs/changes/17/4817/2
- refs/changes/17/4817/3
- refs/changes/17/4817/4
- refs/changes/18/1718/1
- refs/changes/18/1718/2
- refs/changes/18/918/1
- refs/changes/19/1719/1
- refs/changes/19/1719/2
- refs/changes/20/1720/1
- refs/changes/20/1720/2
- refs/changes/20/4320/1
- refs/changes/21/1721/1
- refs/changes/21/1721/2
- refs/changes/21/4821/1
- refs/changes/21/4821/2
- refs/changes/22/1122/1
- refs/changes/22/1722/1
- refs/changes/22/1722/2
- refs/changes/22/322/1
- refs/changes/22/322/2
- refs/changes/22/322/3
- refs/changes/22/322/4
- refs/changes/22/322/5
- refs/changes/22/322/6
- refs/changes/22/322/7
- refs/changes/22/322/8
- refs/changes/22/322/9
- refs/changes/22/4822/1
- refs/changes/22/4822/2
- refs/changes/22/4822/3
- refs/changes/22/5222/1
- refs/changes/23/1223/1
- refs/changes/23/1723/1
- refs/changes/23/1723/2
- refs/changes/23/223/1
- refs/changes/23/4323/1
- refs/changes/24/1724/1
- refs/changes/24/1724/2
- refs/changes/24/224/1
- refs/changes/24/3124/1
- refs/changes/24/3124/2
- refs/changes/24/3124/3
- refs/changes/24/4324/1
- refs/changes/24/4324/2
- refs/changes/25/1125/1
- refs/changes/25/1725/1
- refs/changes/25/1725/2
- refs/changes/25/225/1
- refs/changes/25/4925/1
- refs/changes/26/1726/1
- refs/changes/26/1726/2
- refs/changes/26/226/1
- refs/changes/26/226/10
- refs/changes/26/226/11
- refs/changes/26/226/12
- refs/changes/26/226/13
- refs/changes/26/226/14
- refs/changes/26/226/15
- refs/changes/26/226/16
- refs/changes/26/226/17
- refs/changes/26/226/18
- refs/changes/26/226/19
- refs/changes/26/226/2
- refs/changes/26/226/20
- refs/changes/26/226/21
- refs/changes/26/226/22
- refs/changes/26/226/23
- refs/changes/26/226/24
- refs/changes/26/226/25
- refs/changes/26/226/26
- refs/changes/26/226/27
- refs/changes/26/226/3
- refs/changes/26/226/4
- refs/changes/26/226/5
- refs/changes/26/226/6
- refs/changes/26/226/7
- refs/changes/26/226/8
- refs/changes/26/226/9
- refs/changes/26/5226/1
- refs/changes/26/5226/2
- refs/changes/27/1727/1
- refs/changes/27/1727/2
- refs/changes/27/927/1
- refs/changes/27/927/2
- refs/changes/27/927/3
- refs/changes/28/1728/1
- refs/changes/28/1728/2
- refs/changes/28/3728/1
- refs/changes/28/3728/2
- refs/changes/28/3728/3
- refs/changes/29/1729/1
- refs/changes/29/1729/2
- refs/changes/29/5229/1
- refs/changes/30/1730/1
- refs/changes/30/1730/2
- refs/changes/30/330/1
- refs/changes/30/330/2
- refs/changes/30/330/3
- refs/changes/30/330/4
- refs/changes/30/330/5
- refs/changes/30/330/6
- refs/changes/30/330/7
- refs/changes/30/4830/1
- refs/changes/30/5230/1
- refs/changes/31/1731/1
- refs/changes/31/1731/2
- refs/changes/31/5231/1
- refs/changes/31/5231/2
- refs/changes/31/5231/3
- refs/changes/31/831/1
- refs/changes/32/1032/1
- refs/changes/32/1032/2
- refs/changes/32/1732/1
- refs/changes/32/1732/2
- refs/changes/32/2232/1
- refs/changes/32/4832/1
- refs/changes/33/1733/1
- refs/changes/33/1733/2
- refs/changes/33/2033/1
- refs/changes/33/2033/10
- refs/changes/33/2033/11
- refs/changes/33/2033/12
- refs/changes/33/2033/2
- refs/changes/33/2033/3
- refs/changes/33/2033/4
- refs/changes/33/2033/5
- refs/changes/33/2033/6
- refs/changes/33/2033/7
- refs/changes/33/2033/8
- refs/changes/33/2033/9
- refs/changes/33/2333/1
- refs/changes/34/1734/1
- refs/changes/34/1734/2
- refs/changes/35/1735/1
- refs/changes/35/1735/2
- refs/changes/35/4835/1
- refs/changes/35/4835/2
- refs/changes/36/1736/1
- refs/changes/36/1736/2
- refs/changes/36/4636/1
- refs/changes/37/1737/1
- refs/changes/37/1737/2
- refs/changes/37/2837/1
- refs/changes/37/5237/1
- refs/changes/38/1738/1
- refs/changes/38/1738/2
- refs/changes/39/1739/1
- refs/changes/39/1739/2
- refs/changes/40/1740/1
- refs/changes/40/1740/2
- refs/changes/40/640/1
- refs/changes/41/1741/1
- refs/changes/41/1741/2
- refs/changes/41/3241/1
- refs/changes/41/3241/2
- refs/changes/41/3241/3
- refs/changes/41/3241/4
- refs/changes/41/3241/5
- refs/changes/41/3241/6
- refs/changes/41/3341/1
- refs/changes/41/3341/2
- refs/changes/42/1742/1
- refs/changes/42/1742/2
- refs/changes/43/1743/1
- refs/changes/43/1743/2
- refs/changes/43/2443/1
- refs/changes/43/2443/2
- refs/changes/43/2443/3
- refs/changes/44/1744/1
- refs/changes/44/1744/2
- refs/changes/45/1745/1
- refs/changes/45/1745/2
- refs/changes/46/1746/1
- refs/changes/46/1746/2
- refs/changes/46/1746/3
- refs/changes/47/1747/1
- refs/changes/47/1747/2
- refs/changes/47/4847/1
- refs/changes/48/1748/1
- refs/changes/48/1748/2
- refs/changes/48/1748/3
- refs/changes/48/2348/1
- refs/changes/48/2948/1
- refs/changes/48/2948/2
- refs/changes/48/2948/3
- refs/changes/48/2948/4
- refs/changes/48/2948/5
- refs/changes/48/2948/6
- refs/changes/48/2948/7
- refs/changes/48/2948/8
- refs/changes/48/3148/1
- refs/changes/48/3148/2
- refs/changes/48/4448/1
- refs/changes/48/4648/1
- refs/changes/48/4848/1
- refs/changes/48/4848/2
- refs/changes/48/4848/3
- refs/changes/48/4848/4
- refs/changes/49/1749/1
- refs/changes/49/1749/2
- refs/changes/49/2449/1
- refs/changes/49/2449/2
- refs/changes/49/3149/1
- refs/changes/49/3149/2
- refs/changes/49/3149/3
- refs/changes/49/3349/1
- refs/changes/49/5149/1
- refs/changes/49/5149/2
- refs/changes/49/5149/3
- refs/changes/50/1750/1
- refs/changes/50/1750/2
- refs/changes/50/3150/1
- refs/changes/50/3150/2
- refs/changes/50/3150/3
- refs/changes/50/3350/1
- refs/changes/51/1351/1
- refs/changes/51/1351/2
- refs/changes/51/1751/1
- refs/changes/51/1751/2
- refs/changes/51/1751/3
- refs/changes/51/2751/1
- refs/changes/51/2751/2
- refs/changes/51/2751/3
- refs/changes/51/2751/4
- refs/changes/51/2751/5
- refs/changes/51/2751/6
- refs/changes/51/2751/7
- refs/changes/51/2751/8
- refs/changes/51/3151/1
- refs/changes/51/3151/2
- refs/changes/51/3151/3
- refs/changes/51/3251/1
- refs/changes/51/3251/2
- refs/changes/52/1752/1
- refs/changes/52/1752/2
- refs/changes/52/3152/1
- refs/changes/52/3252/1
- refs/changes/52/3252/2
- refs/changes/52/3352/1
- refs/changes/52/452/1
- refs/changes/52/452/2
- refs/changes/53/1753/1
- refs/changes/53/1753/2
- refs/changes/53/3253/1
- refs/changes/53/3253/2
- refs/changes/53/3353/1
- refs/changes/54/1754/1
- refs/changes/54/1754/2
- refs/changes/54/1854/1
- refs/changes/54/1854/2
- refs/changes/54/1854/3
- refs/changes/54/1854/4
- refs/changes/54/1854/5
- refs/changes/54/2854/1
- refs/changes/54/2854/2
- refs/changes/54/2854/3
- refs/changes/54/3354/1
- refs/changes/55/1755/1
- refs/changes/56/1756/1
- refs/changes/56/1756/2
- refs/changes/56/1756/3
- refs/changes/56/1856/1
- refs/changes/56/1856/2
- refs/changes/57/1757/1
- refs/changes/57/1757/2
- refs/changes/57/1857/1
- refs/changes/57/3257/1
- refs/changes/57/3257/2
- refs/changes/57/3257/3
- refs/changes/57/3257/4
- refs/changes/57/4457/1
- refs/changes/57/4457/10
- refs/changes/57/4457/2
- refs/changes/57/4457/3
- refs/changes/57/4457/4
- refs/changes/57/4457/5
- refs/changes/57/4457/6
- refs/changes/57/4457/7
- refs/changes/57/4457/8
- refs/changes/57/4457/9
- refs/changes/58/1758/1
- refs/changes/58/1758/2
- refs/changes/58/1758/3
- refs/changes/58/1858/1
- refs/changes/58/1858/2
- refs/changes/58/3258/1
- refs/changes/58/3258/2
- refs/changes/58/3258/3
- refs/changes/58/3258/4
- refs/changes/58/4358/1
- refs/changes/58/4358/2
- refs/changes/58/4358/3
- refs/changes/59/1759/1
- refs/changes/59/1759/2
- refs/changes/59/1859/1
- refs/changes/59/1859/2
- refs/changes/59/3259/1
- refs/changes/59/3259/2
- refs/changes/59/3259/3
- refs/changes/59/3259/4
- refs/changes/59/3259/5
- refs/changes/59/3259/6
- refs/changes/59/4759/1
- refs/changes/59/4759/2
- refs/changes/59/4759/3
- refs/changes/60/1760/1
- refs/changes/60/1760/2
- refs/changes/61/1761/1
- refs/changes/61/1761/2
- refs/changes/62/1762/1
- refs/changes/62/1762/2
- refs/changes/62/2262/1
- refs/changes/62/2262/2
- refs/changes/62/2262/3
- refs/changes/62/4762/1
- refs/changes/62/762/1
- refs/changes/62/762/2
- refs/changes/62/762/3
- refs/changes/63/1763/1
- refs/changes/63/1763/2
- refs/changes/63/2263/1
- refs/changes/64/1764/1
- refs/changes/64/1764/2
- refs/changes/64/1864/1
- refs/changes/64/2064/1
- refs/changes/65/1765/1
- refs/changes/65/1765/2
- refs/changes/66/1766/1
- refs/changes/66/1766/2
- refs/changes/66/1866/1
- refs/changes/66/2266/1
- refs/changes/66/466/1
- refs/changes/66/466/2
- refs/changes/66/466/3
- refs/changes/66/466/4
- refs/changes/67/1767/1
- refs/changes/67/1767/2
- refs/changes/67/2267/1
- refs/changes/67/867/1
- refs/changes/68/1768/1
- refs/changes/68/1768/2
- refs/changes/68/2168/1
- refs/changes/68/2268/1
- refs/changes/69/1769/1
- refs/changes/69/1769/2
- refs/changes/69/2169/1
- refs/changes/69/2169/2
- refs/changes/69/2169/3
- refs/changes/69/2169/4
- refs/changes/69/2169/5
- refs/changes/69/2769/1
- refs/changes/70/1770/1
- refs/changes/70/1770/2
- refs/changes/70/2770/1
- refs/changes/70/2770/2
- refs/changes/70/4370/1
- refs/changes/70/4370/10
- refs/changes/70/4370/11
- refs/changes/70/4370/12
- refs/changes/70/4370/13
- refs/changes/70/4370/2
- refs/changes/70/4370/3
- refs/changes/70/4370/4
- refs/changes/70/4370/5
- refs/changes/70/4370/6
- refs/changes/70/4370/7
- refs/changes/70/4370/8
- refs/changes/70/4370/9
- refs/changes/71/1771/1
- refs/changes/71/1771/2
- refs/changes/71/2271/1
- refs/changes/71/2271/2
- refs/changes/71/2971/1
- refs/changes/71/2971/2
- refs/changes/71/4771/1
- refs/changes/71/4771/2
- refs/changes/71/4771/3
- refs/changes/71/4771/4
- refs/changes/71/4871/1
- refs/changes/71/4871/2
- refs/changes/71/4871/3
- refs/changes/71/4871/4
- refs/changes/72/1772/1
- refs/changes/72/1772/2
- refs/changes/72/2272/1
- refs/changes/72/2272/2
- refs/changes/72/2272/3
- refs/changes/72/4772/1
- refs/changes/72/4772/2
- refs/changes/72/4772/3
- refs/changes/72/4772/4
- refs/changes/72/4772/5
- refs/changes/72/4772/6
- refs/changes/72/4772/7
- refs/changes/72/4772/8
- refs/changes/73/1073/1
- refs/changes/73/1073/2
- refs/changes/73/1073/3
- refs/changes/73/1073/4
- refs/changes/73/1773/1
- refs/changes/73/1773/2
- refs/changes/73/2073/1
- refs/changes/73/2073/2
- refs/changes/73/473/1
- refs/changes/73/473/2
- refs/changes/73/473/3
- refs/changes/73/473/4
- refs/changes/74/1774/1
- refs/changes/74/1774/2
- refs/changes/74/2074/1
- refs/changes/74/2074/2
- refs/changes/74/2074/3
- refs/changes/74/4074/1
- refs/changes/74/4074/2
- refs/changes/74/4074/3
- refs/changes/74/4074/4
- refs/changes/74/4074/5
- refs/changes/74/4774/1
- refs/changes/74/4774/2
- refs/changes/74/4774/3
- refs/changes/74/4774/4
- refs/changes/74/4774/5
- refs/changes/75/1775/1
- refs/changes/75/1775/2
- refs/changes/75/4775/1
- refs/changes/76/1776/1
- refs/changes/76/1776/2
- refs/changes/76/1776/3
- refs/changes/76/4976/1
- refs/changes/76/4976/2
- refs/changes/76/4976/3
- refs/changes/76/576/1
- refs/changes/76/576/2
- refs/changes/76/576/3
- refs/changes/76/576/4
- refs/changes/76/576/5
- refs/changes/76/576/6
- refs/changes/76/576/7
- refs/changes/76/576/8
- refs/changes/77/1777/1
- refs/changes/77/1777/2
- refs/changes/77/4777/1
- refs/changes/77/4777/2
- refs/changes/78/1778/1
- refs/changes/78/1778/2
- refs/changes/78/2378/1
- refs/changes/78/2378/2
- refs/changes/78/2378/3
- refs/changes/78/2378/4
- refs/changes/78/2378/5
- refs/changes/78/2378/6
- refs/changes/78/2378/7
- refs/changes/78/2478/1
- refs/changes/78/2478/2
- refs/changes/78/978/1
- refs/changes/79/1779/1
- refs/changes/79/1779/2
- refs/changes/79/2479/1
- refs/changes/79/2479/2
- refs/changes/79/2979/1
- refs/changes/79/3379/1
- refs/changes/79/3379/2
- refs/changes/79/3379/3
- refs/changes/79/3379/4
- refs/changes/79/3379/5
- refs/changes/79/4079/1
- refs/changes/79/4879/1
- refs/changes/79/4879/2
- refs/changes/79/5179/1
- refs/changes/80/1780/1
- refs/changes/80/1780/2
- refs/changes/80/2480/1
- refs/changes/80/2480/2
- refs/changes/80/2480/3
- refs/changes/80/2480/4
- refs/changes/80/2480/5
- refs/changes/80/4080/1
- refs/changes/80/4080/10
- refs/changes/80/4080/11
- refs/changes/80/4080/12
- refs/changes/80/4080/13
- refs/changes/80/4080/14
- refs/changes/80/4080/15
- refs/changes/80/4080/16
- refs/changes/80/4080/17
- refs/changes/80/4080/18
- refs/changes/80/4080/19
- refs/changes/80/4080/2
- refs/changes/80/4080/20
- refs/changes/80/4080/21
- refs/changes/80/4080/22
- refs/changes/80/4080/23
- refs/changes/80/4080/3
- refs/changes/80/4080/4
- refs/changes/80/4080/5
- refs/changes/80/4080/6
- refs/changes/80/4080/7
- refs/changes/80/4080/8
- refs/changes/80/4080/9
- refs/changes/80/4880/1
- refs/changes/80/4880/2
- refs/changes/80/5180/1
- refs/changes/80/5180/2
- refs/changes/80/5180/3
- refs/changes/81/1781/1
- refs/changes/81/1781/2
- refs/changes/81/2081/1
- refs/changes/81/2481/1
- refs/changes/81/2481/2
- refs/changes/81/2481/3
- refs/changes/81/2481/4
- refs/changes/81/2481/5
- refs/changes/81/2481/6
- refs/changes/81/2481/7
- refs/changes/81/2481/8
- refs/changes/81/2481/9
- refs/changes/82/1782/1
- refs/changes/82/1782/2
- refs/changes/82/3582/1
- refs/changes/82/382/1
- refs/changes/82/382/2
- refs/changes/82/4282/1
- refs/changes/82/4282/2
- refs/changes/82/4282/3
- refs/changes/82/4282/4
- refs/changes/83/1783/1
- refs/changes/83/2483/1
- refs/changes/83/2483/2
- refs/changes/83/3583/1
- refs/changes/83/3583/2
- refs/changes/83/3583/3
- refs/changes/84/1784/1
- refs/changes/84/1784/2
- refs/changes/84/384/1
- refs/changes/85/1785/1
- refs/changes/85/485/1
- refs/changes/86/1786/1
- refs/changes/86/2286/1
- refs/changes/86/386/1
- refs/changes/86/3886/1
- refs/changes/86/986/1
- refs/changes/86/986/2
- refs/changes/87/1787/1
- refs/changes/87/1787/2
- refs/changes/87/1787/3
- refs/changes/87/3887/1
- refs/changes/87/3887/2
- refs/changes/87/3887/3
- refs/changes/87/3887/4
- refs/changes/87/5187/1
- refs/changes/88/1788/1
- refs/changes/88/1788/2
- refs/changes/88/2088/1
- refs/changes/88/3888/1
- refs/changes/88/3888/2
- refs/changes/88/3888/3
- refs/changes/88/3888/4
- refs/changes/88/4288/1
- refs/changes/88/4288/2
- refs/changes/88/4288/3
- refs/changes/88/5188/1
- refs/changes/89/1789/1
- refs/changes/89/1789/2
- refs/changes/89/1789/3
- refs/changes/89/2989/1
- refs/changes/89/3389/1
- refs/changes/89/3889/1
- refs/changes/89/3889/2
- refs/changes/89/3889/3
- refs/changes/89/4289/1
- refs/changes/89/4289/2
- refs/changes/89/4289/3
- refs/changes/89/4289/4
- refs/changes/89/4989/1
- refs/changes/89/4989/2
- refs/changes/89/4989/3
- refs/changes/89/4989/4
- refs/changes/89/4989/5
- refs/changes/89/5189/1
- refs/changes/90/1790/1
- refs/changes/90/1790/2
- refs/changes/90/990/1
- refs/changes/90/990/2
- refs/changes/91/1791/1
- refs/changes/91/4291/1
- refs/changes/91/4291/2
- refs/changes/91/991/1
- refs/changes/91/991/2
- refs/changes/92/1792/1
- refs/changes/92/1892/1
- refs/changes/92/1892/2
- refs/changes/92/3392/1
- refs/changes/93/1793/1
- refs/changes/93/1893/1
- refs/changes/93/1893/2
- refs/changes/93/3393/1
- refs/changes/93/3393/10
- refs/changes/93/3393/11
- refs/changes/93/3393/12
- refs/changes/93/3393/13
- refs/changes/93/3393/14
- refs/changes/93/3393/2
- refs/changes/93/3393/3
- refs/changes/93/3393/4
- refs/changes/93/3393/5
- refs/changes/93/3393/6
- refs/changes/93/3393/7
- refs/changes/93/3393/8
- refs/changes/93/3393/9
- refs/changes/94/1694/1
- refs/changes/94/1794/1
- refs/changes/94/1794/2
- refs/changes/94/1894/1
- refs/changes/94/1894/2
- refs/changes/94/4294/1
- refs/changes/94/4294/2
- refs/changes/94/4294/3
- refs/changes/94/494/1
- refs/changes/95/1695/1
- refs/changes/95/1795/1
- refs/changes/95/1795/2
- refs/changes/96/1696/1
- refs/changes/96/1696/2
- refs/changes/96/1796/1
- refs/changes/96/1796/2
- refs/changes/96/1996/1
- refs/changes/96/496/1
- refs/changes/97/1697/1
- refs/changes/97/1697/2
- refs/changes/97/1697/3
- refs/changes/97/1797/1
- refs/changes/97/1797/2
- refs/changes/97/5197/1
- refs/changes/98/1698/1
- refs/changes/98/1698/2
- refs/changes/98/1698/3
- refs/changes/98/1698/4
- refs/changes/98/1798/1
- refs/changes/98/1798/2
- refs/changes/99/1699/1
- refs/changes/99/1699/2
- refs/changes/99/3599/1
- refs/changes/99/3599/2
- refs/changes/99/4299/1
- refs/changes/99/4299/2
- refs/changes/99/5199/1
- refs/heads/abhigupta/ldbdump
- refs/heads/abhigupta/mslbtest
- refs/heads/bwk/float_fix
- refs/heads/changa-2.0
- refs/heads/changa-3.1
- refs/heads/changasmp
- refs/heads/ddwithprefix
- refs/heads/devarak/hilbertlb
- refs/heads/domaindecompwithqd
- refs/heads/harshit
- refs/heads/harshitha/bucketsendwithinnode
- refs/heads/harshitha/ddwithdynamicinsert
- refs/heads/harshitha/hierlbshufflewoqdckloop
- refs/heads/harshitha/optimizedddtbhlbgrav
- refs/heads/harshitha/unshufflewithqd
- refs/heads/hierarchicallb
- refs/heads/intranodelbusingckloop
- refs/heads/jchoi/gpumanager_release
- refs/heads/jchoi/hapi-mempool
- refs/heads/jchoi/remove_cuda_check
- refs/heads/jchoi/travis
- refs/heads/jchoi/volta
- refs/heads/jetley/cache
- refs/heads/jetley/commapprox
- refs/heads/jetley/commgraph
- refs/heads/jetley/gpuopt
- refs/heads/jetley/lbtest
- refs/heads/jetley/mstest
- refs/heads/jetley/nonrec
- refs/heads/jetley/push
- refs/heads/jetley/smp
- refs/heads/jetley/treebuild
- refs/heads/jianqiao/LocksteppingFromBucket
- refs/heads/jianqiao/LocksteppingFromZeroBucket
- refs/heads/jianqiao/NonLocksteppingFromBucket
- refs/heads/jianqiao/PurdueGPUKernel
- refs/heads/jianqiao/SimulateChaNGa_from_PurdueKernel
- refs/heads/jianqiao/bucketBased
- refs/heads/jianqiao/gpu_remote_tree_walk
- refs/heads/jianqiao/gpulocaltreewalk
- refs/heads/jianqiao/gpulocaltreewalk_rebased
- refs/heads/jianqiao/lockstepping
- refs/heads/lossy_chkp
- refs/heads/lukasz/cudaSmpFix
- refs/heads/lukasz/cudadev
- refs/heads/lukasz/ddbyload
- refs/heads/lukasz/gpufixes
- refs/heads/lukasz/octsplit8
- refs/heads/lukasz/streamer
- refs/heads/lukasz/streamerfast
- refs/heads/lukasz/streamerstable
- refs/heads/lukasz/streamerstable_cd
- refs/heads/lukasz/tram_cachereq
- refs/heads/lukasz/tram_merge
- refs/heads/master
- refs/heads/mirror
- refs/heads/moving-mesh
- refs/heads/mprobson/new-gpuManager-api
- refs/heads/mprobson/updated-gpuManager-api-dangerZone
- refs/heads/mprobson/updated-gpuManager-api-rebase
- refs/heads/multi_step
- refs/heads/no-gravity-fix
- refs/heads/olawlor/gpu_registration
- refs/heads/optimizedtreebuild
- refs/heads/phil/test_cbase_pup
- refs/heads/res/changes/3393
- refs/heads/review/harshitha_menon/1115
- refs/heads/review/harshitha_menon/330
- refs/heads/review/robel_geda/3353
- refs/heads/review/robel_geda/3886
- refs/heads/review/thomas_r_quinn/4323
- refs/heads/review/thomas_r_quinn/5013
- refs/heads/review/tim_haines/4759
- refs/heads/review/tim_haines/4774
- refs/heads/review/tim_haines/4775
- refs/heads/review/tim_haines/4807
- refs/heads/streamerreplication
- refs/heads/streamerstable_pics
- refs/heads/tp_replication
- refs/heads/trq/LB_cleanup
- refs/heads/trq/LW_empty_node
- refs/heads/trq/LW_init
- refs/heads/trq/NC_star_fix
- refs/heads/trq/SFC_LB
- refs/heads/trq/Shear
- refs/heads/trq/benchmark0
- refs/heads/trq/benchmark_noflush
- refs/heads/trq/chemeq
- refs/heads/trq/ci-charm-change
- refs/heads/trq/colortable_check
- refs/heads/trq/cool_rates_cleanup
- refs/heads/trq/cpp_fix
- refs/heads/trq/cudadev
- refs/heads/trq/ddMemory
- refs/heads/trq/default_map
- refs/heads/trq/dumpframe_fix
- refs/heads/trq/elapsed_time
- refs/heads/trq/fastmultipole
- refs/heads/trq/fastresmooth
- refs/heads/trq/fscanf_cleanup
- refs/heads/trq/github_action
- refs/heads/trq/gpu-memrace
- refs/heads/trq/gpu-multicopy
- refs/heads/trq/gpu-walk-build
- refs/heads/trq/gpuDoc
- refs/heads/trq/gpu_charm_v7
- refs/heads/trq/grackle3
- refs/heads/trq/hierarchical_lb_fix
- refs/heads/trq/igasorder
- refs/heads/trq/interact_stats
- refs/heads/trq/jeanssoft
- refs/heads/trq/large_photo
- refs/heads/trq/lb_off_output
- refs/heads/trq/loadbalance_checkpoint
- refs/heads/trq/log_starlog_format
- refs/heads/trq/lw_restart_fix
- refs/heads/trq/lwout_fix
- refs/heads/trq/manga-action
- refs/heads/trq/memory_cleanup
- refs/heads/trq/metals_bookkeeping
- refs/heads/trq/min_pieces
- refs/heads/trq/moving-mesh-makefiles
- refs/heads/trq/mslb_notopo
- refs/heads/trq/multisteplb
- refs/heads/trq/new_order
- refs/heads/trq/no_fDivv_corrector
- refs/heads/trq/no_m64
- refs/heads/trq/no_noNodeLookupTable
- refs/heads/trq/nsidm-restart
- refs/heads/trq/onestar_update
- refs/heads/trq/open_errno
- refs/heads/trq/parent_gt_child
- refs/heads/trq/particleMemory
- refs/heads/trq/pe_unshuffle
- refs/heads/trq/proxy_pup
- refs/heads/trq/quiesent_checkpoint
- refs/heads/trq/random
- refs/heads/trq/sb_poverrho_fix
- refs/heads/trq/sb_slowfix
- refs/heads/trq/scaledmoments
- refs/heads/trq/signal
- refs/heads/trq/smp
- refs/heads/trq/smp-action
- refs/heads/trq/superbubble_energycheck
- refs/heads/trq/testckloop2
- refs/heads/trq/testcollapse_update
- refs/heads/trq/testlb
- refs/heads/trq/testsmp
- refs/heads/trq/testsmpcache2
- refs/heads/trq/testsmpcache3
- refs/heads/trq/tipsy_open_check
- refs/heads/trq/udot_step_revert
- refs/heads/trq/uninitialized_io
- refs/heads/trq/unused_cleanup
- refs/heads/trq/update_lb
- refs/heads/trq/usergrav_fix
- refs/heads/trq/warnings_cleanup
- refs/heads/trq/xdr
- refs/heads/trq/zerowrite_fix
- refs/heads/trqForked
- refs/heads/yanhua/nodeparallel
- refs/meta/config
- refs/notes/review
- refs/remotes/CVS/HEAD
- refs/remotes/CVS/gwl
- refs/remotes/CVS/master
- refs/remotes/CVS/uw_hpcc
- refs/remotes/origin/devarak/hilbert
- refs/tags/BeforeGenericTree
- refs/tags/ChaNGa-2_0
- refs/tags/changa-no-refactor
- refs/tags/start
Raw File
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.Processing "take a new snapshot" request ...
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Tip revision: 852b3842fdc4dd982a2c51d502ff552bb5ab5247 authored by Tim Haines on 23 October 2018, 23:21:25 UTC
Complete overhaul of build system
Complete overhaul of build system
Tip revision: 852b384
formatted_string.h
#pragma once
#include <algorithm>
#include <array>
#include <cstdio>
#include <string>
#include <vector>
/**
* \class formatted_string
*
* \brief A simple formatted string to replace `s[n]printf` usage
*
* This is a simple handle class that provides storage for a formatted string
* that would normally be allocated using a C-style array and populated with
* `s[n]printf`. Storage is allocated either on the stack or the heap, depending
* on the runtime size of the input as determined by calling
* `std::snprintf(nullptr, 0, format, args);`. The underlying string can
* be read using the class members `c_str` to retrieve a `char const*` or
* `to_string` to retrieve a `std::string`.
*
* \warning Modifying the underlying data store is undefined behavior!
*
*
* ===
* Example usage:
* @code
* // Old way
* char str[100];
* sprintf(str, "%s %d", "Hello", 3);
*
* // New way
* auto str = make_formatted_string("%s %d", "Hello", 3);
* @endcode
*/
template <typename... Args> class formatted_string {
public:
/// Maximum length of the formatted string before heap allocation is used.
static constexpr auto max_len = 32;
private:
/*
* The storage for the formatted string
* A union is used to save space.
*/
union arena {
std::array<char, max_len> array;
std::vector<char> vector;
arena() {}
~arena() {}
};
arena storage;
/// length of string (not including null-terminator)
int len = 0;
bool is_short() const noexcept { return len < max_len; }
public:
/**
* \param format The C-style printf format string
* \param args A parameter pack of values to put into the string
*
* This uses the special form of `snprintf` that was introduced in C++11.
* It determines the size of the resulting string that would be needed
* to hold the formatted arguments. See
* [cppref](https://en.cppreference.com/w/cpp/io/c/fprintf) for details.
*/
explicit formatted_string(char const *format, Args... args) {
static_assert(sizeof...(args) > 0, "Must specify at least one argument");
len = std::snprintf(nullptr, 0, format, args...);
char *const buffer = [&]() {
if (is_short()) {
new (&storage.array) decltype(storage.array)();
return storage.array.data();
} else {
new (&storage.vector) decltype(storage.vector)(
static_cast<size_t>(len) + 1);
return storage.vector.data();
}
}();
std::snprintf(buffer, static_cast<size_t>(len + 1), format, args...);
}
/// \brief Move constructor
template <typename... Ts>
formatted_string(formatted_string<Ts...> &&rhs) noexcept {
this->len = rhs.len;
if (is_short()) {
new (&this->storage.array) decltype(this->storage.array)();
std::copy(rhs.storage.array.begin(), rhs.storage.array.end(),
this->storage.array.begin());
} else {
new (&this->storage.vector) decltype(storage.vector)(
std::move(rhs.storage.vector));
}
}
/// \brief Move assignment operator
template <typename... Ts>
formatted_string &operator=(formatted_string<Ts...> &&rhs) noexcept {
new (this) formatted_string<Ts...>(std::move(rhs));
return *this;
}
/**
* Copy semantics make little sense, so they are explicitly deleted.
*/
formatted_string(formatted_string const &) = delete;
formatted_string &operator=(formatted_string const &) = delete;
/**
* Retrieve the underlying string as a `char const*`.
* This is much like the `c_str` member of `std::string`.
*/
char const *c_str() const noexcept {
return (is_short()) ? storage.array.data() : storage.vector.data();
}
/**
* Retrieve the underlying formatted string and place it in an
* owning `std::string` object.
*/
std::string to_string() const { return c_str(); }
/**
* The destructor only does work when the underlying string is long
* enough to require heap storage (len > max_len).
*/
~formatted_string() {
if (!is_short()) {
storage.vector.~vector();
}
}
};
/**
* C++ cannot deduce parameter types for constructors (this is fixed in
* C++17; see below). As is common in the STL (e.g., std::make_pair), a
* helper function is provided to overcome this limitation.
*
* ===
* This allows the user to write
* @code
* auto str = make_formatted_string("%s %d", "Hello", 3);
* @endcode
* instead of
* @code
* auto str = formatted_string<(char&)[5], int>("%s %d", "Hello", 3);
* @endcode
*/
template <typename... Args>
formatted_string<Args...> make_formatted_string(char const *format,
Args... args) {
return formatted_string<Args...>(format, args...);
}