mikunyan 3.9.6 → 3.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1096) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/README.md +103 -76
  4. data/Rakefile +14 -6
  5. data/exe/mikunyan-image +71 -70
  6. data/exe/mikunyan-json +46 -65
  7. data/ext/decoders/crunch/crn_decomp.h +3826 -0
  8. data/ext/decoders/crunch/crn_defs.h +286 -0
  9. data/ext/decoders/crunch/crnlib.h +642 -0
  10. data/ext/decoders/crunch/dds_defs.h +149 -0
  11. data/ext/decoders/crunch/extconf.rb +9 -0
  12. data/ext/decoders/crunch/main.cpp +174 -0
  13. data/ext/decoders/native/astc.c +751 -358
  14. data/ext/decoders/native/astc.h +1 -1
  15. data/ext/decoders/native/color.h +87 -0
  16. data/ext/decoders/native/dxtc.c +44 -71
  17. data/ext/decoders/native/dxtc.h +2 -2
  18. data/ext/decoders/native/endianness.h +180 -0
  19. data/ext/decoders/native/etc.c +328 -156
  20. data/ext/decoders/native/etc.h +8 -4
  21. data/ext/decoders/native/extconf.rb +1 -1
  22. data/ext/decoders/native/fp16.h +36 -0
  23. data/ext/decoders/native/fp16/bitcasts.h +76 -0
  24. data/ext/decoders/native/fp16/fp16.h +451 -0
  25. data/ext/decoders/native/main.c +332 -80
  26. data/ext/decoders/native/pvrtc.c +258 -0
  27. data/ext/decoders/native/pvrtc.h +29 -0
  28. data/ext/decoders/native/rgb.c +96 -20
  29. data/ext/decoders/native/rgb.h +7 -1
  30. data/lib/mikunyan.rb +3 -7
  31. data/lib/mikunyan/asset.rb +286 -313
  32. data/lib/mikunyan/asset_bundle.rb +139 -93
  33. data/lib/mikunyan/base_object.rb +34 -0
  34. data/lib/mikunyan/binary_reader.rb +135 -147
  35. data/lib/mikunyan/constants.rb +506 -340
  36. data/lib/mikunyan/decoders.rb +7 -3
  37. data/lib/mikunyan/decoders/image_decoder.rb +499 -462
  38. data/lib/mikunyan/object_value.rb +96 -79
  39. data/lib/mikunyan/type_tree.rb +143 -74
  40. data/lib/mikunyan/types/text_asset.rb +19 -0
  41. data/lib/mikunyan/types/texture2d.rb +33 -0
  42. data/lib/mikunyan/typetrees/1/137ce611c2e1d71982d2c84bce12d0d6.json +1 -0
  43. data/lib/mikunyan/typetrees/1/86e34eb8ee7642b089fb98c9d81dd9b0.json +1 -0
  44. data/lib/mikunyan/typetrees/1/a372646834bcaf26eab1d21b29e39553.json +1 -0
  45. data/lib/mikunyan/typetrees/104/00ad972a9b8de1baeacb62e297cbb968.json +1 -0
  46. data/lib/mikunyan/typetrees/104/30a4b95a67419124ad203faff026115f.json +1 -0
  47. data/lib/mikunyan/typetrees/109/486ba4e15dbd6aea8ac1a064305889c8.json +1 -0
  48. data/lib/mikunyan/typetrees/111/9eabac6ec66ffe818e008883728fcc1b.json +1 -0
  49. data/lib/mikunyan/typetrees/111/cc8f6e05143e049494c7eac0553f3883.json +1 -0
  50. data/lib/mikunyan/typetrees/115/2da9c96f9efc8b31a480d5b8858755f3.json +1 -0
  51. data/lib/mikunyan/typetrees/115/f46e8e30ecc293493f18ab27134210ee.json +1 -0
  52. data/lib/mikunyan/typetrees/121/ec82ba41da8a4a1621af9908b6786836.json +1 -0
  53. data/lib/mikunyan/typetrees/123/852794becbcf95f66992da2b96a69704.json +1 -0
  54. data/lib/mikunyan/typetrees/124/e0da148901d81b94249c67d75de59cc6.json +1 -0
  55. data/lib/mikunyan/typetrees/128/6a15532222689268bc8a148f4e84e7ab.json +1 -0
  56. data/lib/mikunyan/typetrees/128/9a83846bdc10f24de3183b3d1b510d5c.json +1 -0
  57. data/lib/mikunyan/typetrees/128/b14bcb0865632d1b2d6e215a000e4c0f.json +1 -0
  58. data/lib/mikunyan/typetrees/135/8c86f4ac6b7f47c045560d4383aadc8d.json +1 -0
  59. data/lib/mikunyan/typetrees/136/fbf6b031c32e461ee61be429e5fee7eb.json +1 -0
  60. data/lib/mikunyan/typetrees/137/96a47566b4e135078f690a4a69935d58.json +1 -0
  61. data/lib/mikunyan/typetrees/137/b1b907f989fddc2c56485955b540ff3e.json +1 -0
  62. data/lib/mikunyan/typetrees/137/b78821b6aeb5b79c8961728a9f068024.json +1 -0
  63. data/lib/mikunyan/typetrees/137/ecc1595a8954f445d7681cf02ea158c2.json +1 -0
  64. data/lib/mikunyan/typetrees/142/97da5f4688e45a57c8b42d4f42497297.json +1 -0
  65. data/lib/mikunyan/typetrees/142/f284abb6f2df17ebedae2b6b50436810.json +1 -0
  66. data/lib/mikunyan/typetrees/150/74d387e7f1b0ef0e146e96940005546f.json +1 -0
  67. data/lib/mikunyan/typetrees/150/857195b5935cf8fb7c0b98cba9717eac.json +1 -0
  68. data/lib/mikunyan/typetrees/150/f123b055a61dfa7dc679d78cdaecd383.json +1 -0
  69. data/lib/mikunyan/typetrees/157/10355709bc95355f57466913ac850d0b.json +1 -0
  70. data/lib/mikunyan/typetrees/157/69b01db128625aa95f1f92fb890ff045.json +1 -0
  71. data/lib/mikunyan/typetrees/157/b6ac05d288ffb84268e85f2738366aa7.json +1 -0
  72. data/lib/mikunyan/typetrees/198/4dbfaa1def6adb569b550804b19b4305.json +1 -0
  73. data/lib/mikunyan/typetrees/198/879cd82f1c9caa2bb7914c6871319fc0.json +1 -0
  74. data/lib/mikunyan/typetrees/198/d5d86f79c1252a3e0a705f20245b62b8.json +1 -0
  75. data/lib/mikunyan/typetrees/198/fa4023d185313a79ec5ee562b614c409.json +1 -0
  76. data/lib/mikunyan/typetrees/199/1bd80d4f81d414c0d14b0515fd8cd9e5.json +1 -0
  77. data/lib/mikunyan/typetrees/199/42f950f8898f13af3f02c7244e897db0.json +1 -0
  78. data/lib/mikunyan/typetrees/199/c96a64061d3e391b7f3309bd4a644969.json +1 -0
  79. data/lib/mikunyan/typetrees/199/daea1bb1bba6613afb2cb001ca8fa0d4.json +1 -0
  80. data/lib/mikunyan/typetrees/20/073e485bdb4950dba97985230fc515dd.json +1 -0
  81. data/lib/mikunyan/typetrees/20/46fda2d131e65f9426462feecebc25c4.json +1 -0
  82. data/lib/mikunyan/typetrees/20/961be27d12d60b1b3421191d5256a876.json +1 -0
  83. data/lib/mikunyan/typetrees/200/26165a24a953362edb6a7078f6536c4b.json +1 -0
  84. data/lib/mikunyan/typetrees/21/225d280603d6b901bb660283ef2dc6c1.json +1 -0
  85. data/lib/mikunyan/typetrees/21/66405447c6973a81e978410c391172fe.json +1 -0
  86. data/lib/mikunyan/typetrees/21/d871346d990bbc294d02f4c366bf1b6d.json +1 -0
  87. data/lib/mikunyan/typetrees/210/1440a9413c35197e76f1f47223d5eab7.json +1 -0
  88. data/lib/mikunyan/typetrees/212/5fc4a64809a91d647f0b1220ca09f136.json +1 -0
  89. data/lib/mikunyan/typetrees/212/84c6ac46ef89030991cbbb3fd21d2889.json +1 -0
  90. data/lib/mikunyan/typetrees/212/91ffea0726900cb751e36f83816df13e.json +1 -0
  91. data/lib/mikunyan/typetrees/212/a98cccc4ebd5d08ae472761d4f6dc8b2.json +1 -0
  92. data/lib/mikunyan/typetrees/213/2f0ee1e689a979766d022d88d6007338.json +1 -0
  93. data/lib/mikunyan/typetrees/213/314dede0713638b3fad1628f6329dc62.json +1 -0
  94. data/lib/mikunyan/typetrees/213/76ce55d4dbaf38f5c674ea9f0a344951.json +1 -0
  95. data/lib/mikunyan/typetrees/213/e7c5c01b0369574e9346ce846e1e8e63.json +1 -0
  96. data/lib/mikunyan/typetrees/222/5750e5904e20e1e9b768424d8704a10d.json +1 -0
  97. data/lib/mikunyan/typetrees/222/9e0ab8d396f3249a3958dd930f81f61b.json +1 -0
  98. data/lib/mikunyan/typetrees/223/d8082d7a3661a3f9ca00a93a61606585.json +1 -0
  99. data/lib/mikunyan/typetrees/224/7e050781d08ca9d10bc74beb7e91c3b5.json +1 -0
  100. data/lib/mikunyan/typetrees/224/eb5e2816cebf56985ba81ee03349f325.json +1 -0
  101. data/lib/mikunyan/typetrees/225/5bc42b93159267aabba724a6a7923603.json +1 -0
  102. data/lib/mikunyan/typetrees/23/2838e2afe8d6a61d270093d4d54eb362.json +1 -0
  103. data/lib/mikunyan/typetrees/23/af863b6969b9b82be9450f0574339f65.json +1 -0
  104. data/lib/mikunyan/typetrees/23/c92361750edbfbcada6f2537e8db21ad.json +1 -0
  105. data/lib/mikunyan/typetrees/23/d618295bd5f15441b5b80b1f57e92d09.json +1 -0
  106. data/lib/mikunyan/typetrees/241/b55bcb08834f91481d00ecf2baf6b298.json +1 -0
  107. data/lib/mikunyan/typetrees/243/d68e4f940c79b84a66a3020175a2fc76.json +1 -0
  108. data/lib/mikunyan/typetrees/245/48b8a458c641bcd5191d251713454097.json +1 -0
  109. data/lib/mikunyan/typetrees/258/2d2b1d63eb2a68ed94bbf7f50fc21d7b.json +1 -0
  110. data/lib/mikunyan/typetrees/258/b35bf02952f2946208ff6b4deca3a6a9.json +1 -0
  111. data/lib/mikunyan/typetrees/28/01053c13f5acc24d9236a5e6e7e1410d.json +1 -0
  112. data/lib/mikunyan/typetrees/28/11eb3417a626b4b8276ad6fe42d3dbd3.json +1 -0
  113. data/lib/mikunyan/typetrees/28/1e87d82d4fd058509a3c7866db0e7356.json +1 -0
  114. data/lib/mikunyan/typetrees/28/7230c9eb36a0c72a7187ad952551e1e5.json +1 -0
  115. data/lib/mikunyan/typetrees/28/ee6c40817d2951929cdb4f5a60874f5d.json +1 -0
  116. data/lib/mikunyan/typetrees/320/941d49d79db52b4d31946d5082b518d4.json +1 -0
  117. data/lib/mikunyan/typetrees/33/9d1630b1d7e3bc24abe46e5860a2a179.json +1 -0
  118. data/lib/mikunyan/typetrees/331/147b112c44d8942fa03fd5b2db85b74d.json +1 -0
  119. data/lib/mikunyan/typetrees/4/761ca81f78491542badc37f810ab3455.json +1 -0
  120. data/lib/mikunyan/typetrees/4/937a6b5c5f5b313185d252e38d145b17.json +1 -0
  121. data/lib/mikunyan/typetrees/43/3366c840a288282b3b12f2f3e038c473.json +1 -0
  122. data/lib/mikunyan/typetrees/43/434b934f757d042e20f52d8c2ae20843.json +1 -0
  123. data/lib/mikunyan/typetrees/43/6d698cb82bd752d1b83575c6e59915a8.json +1 -0
  124. data/lib/mikunyan/typetrees/43/97ec0712102a3ea3f1cf8c0a4e47c070.json +1 -0
  125. data/lib/mikunyan/typetrees/48/266d53113fa30d2b858f2768f92eaa14.json +1 -0
  126. data/lib/mikunyan/typetrees/48/8db760073e1392061e4a36995f0735af.json +1 -0
  127. data/lib/mikunyan/typetrees/48/a70f7abc6586fb35b3a0641aa81e9375.json +1 -0
  128. data/lib/mikunyan/typetrees/49/486ba4e15dbd6aea8ac1a064305889c8.json +1 -0
  129. data/lib/mikunyan/typetrees/49/936739f45f26fd8b81a4ea70f2c8cad4.json +1 -0
  130. data/lib/mikunyan/typetrees/64/5b7f3f798459ea619e4927106fd1fe4b.json +1 -0
  131. data/lib/mikunyan/typetrees/64/a4f61324ce0d2adbb58fa519e9537250.json +1 -0
  132. data/lib/mikunyan/typetrees/65/439e66a89c7fdef6f0927c9256c0773a.json +1 -0
  133. data/lib/mikunyan/typetrees/687078895/cf2fdd6d6ec48e8832b545670b813675.json +1 -0
  134. data/lib/mikunyan/typetrees/74/1ece1117b1e6a8b84516b3eb77051cc3.json +1 -0
  135. data/lib/mikunyan/typetrees/74/81e28d3a4102fabc98ac701e6a192ad4.json +1 -0
  136. data/lib/mikunyan/typetrees/74/c184743520186f546000de20f4d19736.json +1 -0
  137. data/lib/mikunyan/typetrees/74/f665ce86182d9caf3ead9030330dcdd1.json +1 -0
  138. data/lib/mikunyan/typetrees/81/305e4aeacbb64b15862510dad47502cb.json +1 -0
  139. data/lib/mikunyan/typetrees/82/615d22f1dbb7206b1870a49854e33c55.json +1 -0
  140. data/lib/mikunyan/typetrees/83/b23449465e3763dd19335a88ea09ae99.json +1 -0
  141. data/lib/mikunyan/typetrees/89/1ef8dc1e91e0cd01bd07036e6665ea40.json +1 -0
  142. data/lib/mikunyan/typetrees/89/8ae46eedf9c00edaad35d0d09290bc8b.json +1 -0
  143. data/lib/mikunyan/typetrees/89/f92d618c5266ea3a8ca770b6eca728c8.json +1 -0
  144. data/lib/mikunyan/typetrees/90/32844caee83b124ec87852294d39b8b6.json +1 -0
  145. data/lib/mikunyan/typetrees/90/b6bbd0e88d1feb636d89bd766ea5934f.json +1 -0
  146. data/lib/mikunyan/typetrees/91/01ccfe05c6fbc7ff03dcf8afa8213ff5.json +1 -0
  147. data/lib/mikunyan/typetrees/91/12873460c642bda0bf9e3d57283cd673.json +1 -0
  148. data/lib/mikunyan/typetrees/91/fc82e38aa4ec91a42bead3793b8ad3a8.json +1 -0
  149. data/lib/mikunyan/typetrees/92/e0da148901d81b94249c67d75de59cc6.json +1 -0
  150. data/lib/mikunyan/typetrees/95/75f8b558401cf01ba36d0e612cdbd8fa.json +1 -0
  151. data/lib/mikunyan/typetrees/95/c4c62993971a4c233bae8f8954b4509c.json +1 -0
  152. data/lib/mikunyan/typetrees/96/178a7faebee648639373e3fc701c4d42.json +1 -0
  153. data/lib/mikunyan/typetrees/96/a11f8eb485ea905be1a9eb49e42085e7.json +1 -0
  154. data/lib/mikunyan/typetrees/96/fb00968925d0a9c61e2630478746ac93.json +1 -0
  155. data/lib/mikunyan/version.rb +4 -2
  156. data/mikunyan.gemspec +22 -17
  157. metadata +194 -948
  158. data/lib/mikunyan/typetrees/0005ee889bd7f6b79a25da117f739c52.dat +0 -0
  159. data/lib/mikunyan/typetrees/005cae4626b69aa0d1bd6fd3677642d0.dat +0 -0
  160. data/lib/mikunyan/typetrees/0065ac6da4da61da4e46189f1b77b002.dat +0 -0
  161. data/lib/mikunyan/typetrees/00ad972a9b8de1baeacb62e297cbb968.dat +0 -0
  162. data/lib/mikunyan/typetrees/00b2dd52d07280ff931ca2ce840c6c5f.dat +0 -0
  163. data/lib/mikunyan/typetrees/00f3fced245b297f9ac50a0d4903fb6a.dat +0 -0
  164. data/lib/mikunyan/typetrees/01053c13f5acc24d9236a5e6e7e1410d.dat +0 -0
  165. data/lib/mikunyan/typetrees/01266d578502b6b76488f3bd3d604eef.dat +0 -0
  166. data/lib/mikunyan/typetrees/016a05ed91534852640fa073275aca15.dat +0 -0
  167. data/lib/mikunyan/typetrees/01ccfe05c6fbc7ff03dcf8afa8213ff5.dat +0 -0
  168. data/lib/mikunyan/typetrees/02121256d773b25c5090287b274c2b00.dat +0 -0
  169. data/lib/mikunyan/typetrees/02151504e19732024609e7cca6c0fc96.dat +0 -0
  170. data/lib/mikunyan/typetrees/026979ad7a2cb1623d33ebc2dcb307bc.dat +0 -0
  171. data/lib/mikunyan/typetrees/02d4f5f7486a5229b8f5dd49f538d23b.dat +0 -0
  172. data/lib/mikunyan/typetrees/02ff34fcfecd5a7519f8e4eccfcefc17.dat +0 -0
  173. data/lib/mikunyan/typetrees/037ba63dcd92d264f6321c61b115c80a.dat +0 -0
  174. data/lib/mikunyan/typetrees/0384181f7887c2df26d7de81361d3c24.dat +0 -0
  175. data/lib/mikunyan/typetrees/03882ede131aa51c0b2120a860363c45.dat +0 -0
  176. data/lib/mikunyan/typetrees/045e54722afb3e5b99ffc842b54ccd04.dat +0 -0
  177. data/lib/mikunyan/typetrees/046bff2bbcefd18a3c0b4cc1d32a342b.dat +0 -0
  178. data/lib/mikunyan/typetrees/049f614729255b717181bfd2310bfe39.dat +0 -0
  179. data/lib/mikunyan/typetrees/04ad34c7fb5894db97cb831635ea9464.dat +0 -0
  180. data/lib/mikunyan/typetrees/05377b3b7453e5f7a0a753ea7534b4b6.dat +0 -0
  181. data/lib/mikunyan/typetrees/054d6dd0949fc88be1ece98a89f48175.dat +0 -0
  182. data/lib/mikunyan/typetrees/06086ac852a0fdd488bb63eeb1a3f7be.dat +0 -0
  183. data/lib/mikunyan/typetrees/06eb94418931331dd508acc90ef39a0d.dat +0 -0
  184. data/lib/mikunyan/typetrees/07188f5574f3168b6584882cdc1906e4.dat +0 -0
  185. data/lib/mikunyan/typetrees/073ba87290db010f9d392b6926f26ffa.dat +0 -0
  186. data/lib/mikunyan/typetrees/0767fe19945b90006a374575a30a318d.dat +0 -0
  187. data/lib/mikunyan/typetrees/07b289e80f1d75c9c03ee649281af143.dat +0 -0
  188. data/lib/mikunyan/typetrees/07e972f95515e2dab33d93f8e59cde4d.dat +0 -0
  189. data/lib/mikunyan/typetrees/0816a72ba3f00b1bb13b23f8799619af.dat +0 -0
  190. data/lib/mikunyan/typetrees/0827148b052dd69232c20460ddde3d1a.dat +0 -0
  191. data/lib/mikunyan/typetrees/0857307b3a8cb783c311d8ff42959462.dat +0 -0
  192. data/lib/mikunyan/typetrees/086efb68ee41abe4e98e1ae93ae96290.dat +0 -0
  193. data/lib/mikunyan/typetrees/087e32a39c822978a1c5e410162b381b.dat +0 -0
  194. data/lib/mikunyan/typetrees/08a0f671ed575df2b956a9523f3389b4.dat +0 -0
  195. data/lib/mikunyan/typetrees/08b842bfb6779a99abd9772f354c4592.dat +0 -0
  196. data/lib/mikunyan/typetrees/09218ec64a12208744dfa28d3de424d5.dat +0 -0
  197. data/lib/mikunyan/typetrees/09403e79c0029e5f17528d3321a9c65a.dat +0 -0
  198. data/lib/mikunyan/typetrees/09a818b7453024f2d6eda315b98175bf.dat +0 -0
  199. data/lib/mikunyan/typetrees/0a5826fcb70aafc9a26f5e47e814f052.dat +0 -0
  200. data/lib/mikunyan/typetrees/0b6483cb76bd6cb09661f1999a14d7c3.dat +0 -0
  201. data/lib/mikunyan/typetrees/0b8eb6c7354ef2c2627f1911a201b5b2.dat +0 -0
  202. data/lib/mikunyan/typetrees/0be713b9a525f321879cf7985e5cb6a0.dat +0 -0
  203. data/lib/mikunyan/typetrees/0d1862c92c0019a9db5f10f5385be1ca.dat +0 -0
  204. data/lib/mikunyan/typetrees/0d37e988cc66cbb6f84a09d92fcc2fb1.dat +0 -0
  205. data/lib/mikunyan/typetrees/0d71112c6b0ce418bc75623a52f92e5c.dat +0 -0
  206. data/lib/mikunyan/typetrees/0dad589c25ae993410daa4813b24a978.dat +0 -0
  207. data/lib/mikunyan/typetrees/0e7a017b0eef40ee05c8e3355e289d48.dat +0 -0
  208. data/lib/mikunyan/typetrees/0e8c6e4f803514bccb43b7d8901ed3f3.dat +0 -0
  209. data/lib/mikunyan/typetrees/0eb12c7055a972aec53d53a646cc4fec.dat +0 -0
  210. data/lib/mikunyan/typetrees/0f7da8d76d164df704e661b2f926d0ba.dat +0 -0
  211. data/lib/mikunyan/typetrees/0fdbf6896f263df755a7392766cd7bd5.dat +0 -0
  212. data/lib/mikunyan/typetrees/10355709bc95355f57466913ac850d0b.dat +0 -0
  213. data/lib/mikunyan/typetrees/1047dc8a46bd55bbc47ee36971fbc899.dat +0 -0
  214. data/lib/mikunyan/typetrees/1101c105388a97c11253c9138a48b054.dat +0 -0
  215. data/lib/mikunyan/typetrees/116f6e5f5e2f9936f14b3e7afdaeebe0.dat +0 -0
  216. data/lib/mikunyan/typetrees/119a33484a175efb17550e468dab2c29.dat +0 -0
  217. data/lib/mikunyan/typetrees/11eb3417a626b4b8276ad6fe42d3dbd3.dat +0 -0
  218. data/lib/mikunyan/typetrees/1209f97dc24e29870a0b4d4c10691c51.dat +0 -0
  219. data/lib/mikunyan/typetrees/12873460c642bda0bf9e3d57283cd673.dat +0 -0
  220. data/lib/mikunyan/typetrees/12967e00d88a19565085202f8f7e8aae.dat +0 -0
  221. data/lib/mikunyan/typetrees/12c502cde72c7fa23c4f00e01ba92852.dat +0 -0
  222. data/lib/mikunyan/typetrees/136d01abbc91c99a320d66ce5fc6f77f.dat +0 -0
  223. data/lib/mikunyan/typetrees/137ce611c2e1d71982d2c84bce12d0d6.dat +0 -0
  224. data/lib/mikunyan/typetrees/13ad0b2f92f4248f339c2652b3f879d6.dat +0 -0
  225. data/lib/mikunyan/typetrees/13f0890d0c86a09d0cf0942446b5e6d3.dat +0 -0
  226. data/lib/mikunyan/typetrees/13f9a259302b7e528447dbac68c18621.dat +0 -0
  227. data/lib/mikunyan/typetrees/143bcbfec35489e37c72eaff4a352ac0.dat +0 -0
  228. data/lib/mikunyan/typetrees/144607134da52f2b16c382198714d681.dat +0 -0
  229. data/lib/mikunyan/typetrees/147e16de37e14923a45314e271221c54.dat +0 -0
  230. data/lib/mikunyan/typetrees/14ea9b41501766e6cda33f69772f1b67.dat +0 -0
  231. data/lib/mikunyan/typetrees/1547ef62e8cc49596b74b4259299ab7d.dat +0 -0
  232. data/lib/mikunyan/typetrees/167715f8020989bf87dc860ded480c9f.dat +0 -0
  233. data/lib/mikunyan/typetrees/168b7ccfe32e20d397ad9cc1ee64e88d.dat +0 -0
  234. data/lib/mikunyan/typetrees/16998ea62da750122066f949ab50157e.dat +0 -0
  235. data/lib/mikunyan/typetrees/16b1122494c0e77b196c413ac29842c6.dat +0 -0
  236. data/lib/mikunyan/typetrees/16e5b1b7ee14464356e9664219da0c82.dat +0 -0
  237. data/lib/mikunyan/typetrees/1747b0850e27d5e5afe2b3c5588e7181.dat +0 -0
  238. data/lib/mikunyan/typetrees/1762b46dd7a05651e197ae50eb8dc6ea.dat +0 -0
  239. data/lib/mikunyan/typetrees/17c3ea4c4fea71108c10fd27f2f36db1.dat +0 -0
  240. data/lib/mikunyan/typetrees/18372dbbd17b67380e4a62c927380a50.dat +0 -0
  241. data/lib/mikunyan/typetrees/1893d8e186073d53da657b023dc8bd12.dat +0 -0
  242. data/lib/mikunyan/typetrees/1980e6a59157d8bdee2bcaa3b7bcab95.dat +0 -0
  243. data/lib/mikunyan/typetrees/19d012ac862d35ae708b3e9819c144a6.dat +0 -0
  244. data/lib/mikunyan/typetrees/1a423ac0d72444d8b1e5648eea27de62.dat +0 -0
  245. data/lib/mikunyan/typetrees/1a443e14c645af0d1c787c747df78c79.dat +0 -0
  246. data/lib/mikunyan/typetrees/1a4924a6ba27c4cd346c378e252bbcd9.dat +0 -0
  247. data/lib/mikunyan/typetrees/1a8aa22f22aad282eb5847acc32c48c4.dat +0 -0
  248. data/lib/mikunyan/typetrees/1b15f8914d09a0f91015c60200600ad1.dat +0 -0
  249. data/lib/mikunyan/typetrees/1b81c9a9d553d513ad18b473cac9f3e5.dat +0 -0
  250. data/lib/mikunyan/typetrees/1c28236b6f2e0ac5cb3e915ba08809aa.dat +0 -0
  251. data/lib/mikunyan/typetrees/1c9aca6db12271b86e4759fcbd47ef4f.dat +0 -0
  252. data/lib/mikunyan/typetrees/1d188dac655495743ede8bf50e900348.dat +0 -0
  253. data/lib/mikunyan/typetrees/1d3212ed4ba9330b8cc6a4aa196a2b2f.dat +0 -0
  254. data/lib/mikunyan/typetrees/1d5aedbe4e95c8322fb5f141098c6e91.dat +0 -0
  255. data/lib/mikunyan/typetrees/1dd6a73cef747aa451d1eb4bc7ab6ba9.dat +0 -0
  256. data/lib/mikunyan/typetrees/1df2470081a677848028328c36afe347.dat +0 -0
  257. data/lib/mikunyan/typetrees/1e347d6a49dd26eca64146d8d1629c16.dat +0 -0
  258. data/lib/mikunyan/typetrees/1e831f2ccbb8f0cceabd75e4ae614edd.dat +0 -0
  259. data/lib/mikunyan/typetrees/1e8486720809f1f1134ad46a75855191.dat +0 -0
  260. data/lib/mikunyan/typetrees/1e87d82d4fd058509a3c7866db0e7356.dat +0 -0
  261. data/lib/mikunyan/typetrees/1eaa927fe597a5c984688ede0d7e0c46.dat +0 -0
  262. data/lib/mikunyan/typetrees/1ebcb3bc9f2a38130d9e3274f3c00201.dat +0 -0
  263. data/lib/mikunyan/typetrees/1ef8dc1e91e0cd01bd07036e6665ea40.dat +0 -0
  264. data/lib/mikunyan/typetrees/1f1262cc26714f10d5f84e0f8eb03864.dat +0 -0
  265. data/lib/mikunyan/typetrees/1f168f9bb657a2e84643dbc260a659e5.dat +0 -0
  266. data/lib/mikunyan/typetrees/1f61f675d1dd7911aa25c13d26476576.dat +0 -0
  267. data/lib/mikunyan/typetrees/1f6570e305da0841cf9545e1911c898b.dat +0 -0
  268. data/lib/mikunyan/typetrees/1f77b228205c78ee0df7e2b634863853.dat +0 -0
  269. data/lib/mikunyan/typetrees/1f994725ca628a20bb0526cedf9cb44b.dat +0 -0
  270. data/lib/mikunyan/typetrees/2030e4be48f1e6444ee7c802aa6ee04e.dat +0 -0
  271. data/lib/mikunyan/typetrees/204e3cd3604f3794a9ebc57816470b8b.dat +0 -0
  272. data/lib/mikunyan/typetrees/214291cadd50789a88176745966ff855.dat +0 -0
  273. data/lib/mikunyan/typetrees/214cccc3a5487f6e7d0e4dd13d2c7d9f.dat +0 -0
  274. data/lib/mikunyan/typetrees/2173d638d2217fa07eb74c6944dd831b.dat +0 -0
  275. data/lib/mikunyan/typetrees/21d00f71a60e4a3591c1c3d3dde7880f.dat +0 -0
  276. data/lib/mikunyan/typetrees/21d6ee4b99f9cbbf255d69f64c9d1459.dat +0 -0
  277. data/lib/mikunyan/typetrees/223200cd03b4c76caeaf422122a2b091.dat +0 -0
  278. data/lib/mikunyan/typetrees/224c10c05e99a377d1e41a2fa1c1dda1.dat +0 -0
  279. data/lib/mikunyan/typetrees/225d280603d6b901bb660283ef2dc6c1.dat +0 -0
  280. data/lib/mikunyan/typetrees/22a1ad8b8f62a891ca211417fe8d161b.dat +0 -0
  281. data/lib/mikunyan/typetrees/22a5fc27bdf2aeb77176acbab394d4f7.dat +0 -0
  282. data/lib/mikunyan/typetrees/22c6bb27058872e03ec09f60e1f71f77.dat +0 -0
  283. data/lib/mikunyan/typetrees/22de8a8e6131edd3951ff8d815999077.dat +0 -0
  284. data/lib/mikunyan/typetrees/22f105beba59b8a348fd1db5e1101ee6.dat +0 -0
  285. data/lib/mikunyan/typetrees/235608d8b8db7ffe00ee926ad1e4fcfb.dat +0 -0
  286. data/lib/mikunyan/typetrees/239f5922bb05f812c78d41a84451927a.dat +0 -0
  287. data/lib/mikunyan/typetrees/23aa0d39991cfaa3b448dc52e1b4e2f1.dat +0 -0
  288. data/lib/mikunyan/typetrees/23f7a8828f26b85351a2c73b9d042b58.dat +0 -0
  289. data/lib/mikunyan/typetrees/2409a93f8e4d219a23ac09a3771cd85e.dat +0 -0
  290. data/lib/mikunyan/typetrees/2413ff22e97a320f3db90e252bed5064.dat +0 -0
  291. data/lib/mikunyan/typetrees/2490347089301e3db2eac4055fd8f87d.dat +0 -0
  292. data/lib/mikunyan/typetrees/24e89a7207828509d5c5875a93b2106e.dat +0 -0
  293. data/lib/mikunyan/typetrees/252b1dbbc4b7cfed2594e04d6ff33e9a.dat +0 -0
  294. data/lib/mikunyan/typetrees/255352c3db1172a6a9c5c2605486d937.dat +0 -0
  295. data/lib/mikunyan/typetrees/26165a24a953362edb6a7078f6536c4b.dat +0 -0
  296. data/lib/mikunyan/typetrees/266d53113fa30d2b858f2768f92eaa14.dat +0 -0
  297. data/lib/mikunyan/typetrees/26b86854c33bca2efc9692ce14f5966d.dat +0 -0
  298. data/lib/mikunyan/typetrees/26edfe99eae8bb02d8148494ac056b19.dat +0 -0
  299. data/lib/mikunyan/typetrees/2706c8356160cd6aaa396532b3ce39ab.dat +0 -0
  300. data/lib/mikunyan/typetrees/270ad6077395c13a4cfafac5671a5620.dat +0 -0
  301. data/lib/mikunyan/typetrees/276165a162f9cbfeb3214464b7b8e7af.dat +0 -0
  302. data/lib/mikunyan/typetrees/27653c16987c2f00f7e701860db978b9.dat +0 -0
  303. data/lib/mikunyan/typetrees/27e91f156f1a8d11d4bcd66d3d6d52e8.dat +0 -0
  304. data/lib/mikunyan/typetrees/28460a98ae14a912f5c0393c9ebc21ba.dat +0 -0
  305. data/lib/mikunyan/typetrees/285301d63833986d582fb1893479d7f0.dat +0 -0
  306. data/lib/mikunyan/typetrees/2864d30fb7a07ba8c735165d90ed5ff2.dat +0 -0
  307. data/lib/mikunyan/typetrees/286928b2e061e5b81ab8f7095965a508.dat +0 -0
  308. data/lib/mikunyan/typetrees/2875b25dc4d545986bf5cb670c3769a0.dat +0 -0
  309. data/lib/mikunyan/typetrees/2892f2afcbbee74930c24875cff022b3.dat +0 -0
  310. data/lib/mikunyan/typetrees/28d4502541c70ba42b2303f87d8aea30.dat +0 -0
  311. data/lib/mikunyan/typetrees/28e15ac090050b5620a2b6b376f6be3d.dat +0 -0
  312. data/lib/mikunyan/typetrees/28fee9b8bbe71485d2aecff29c338906.dat +0 -0
  313. data/lib/mikunyan/typetrees/29418211d65c19bd8bd25a6d92cc89e1.dat +0 -0
  314. data/lib/mikunyan/typetrees/299723c380e0ae74b7740e291f44b5dd.dat +0 -0
  315. data/lib/mikunyan/typetrees/29a94a8e52beb2ddf2294ee984774759.dat +0 -0
  316. data/lib/mikunyan/typetrees/29e4301913d608e0be4aa608708bcf04.dat +0 -0
  317. data/lib/mikunyan/typetrees/2a819caa7d1cb8b5a354b3d2cdc21cf7.dat +0 -0
  318. data/lib/mikunyan/typetrees/2aa85eb9fb12fbc18406ad844d0dfce4.dat +0 -0
  319. data/lib/mikunyan/typetrees/2ad38f20aa997894b440f55bb2faa772.dat +0 -0
  320. data/lib/mikunyan/typetrees/2aebfac28b12b8d6fbf0d97563035a17.dat +0 -0
  321. data/lib/mikunyan/typetrees/2b9a59c22c5788fb05c2751753769e73.dat +0 -0
  322. data/lib/mikunyan/typetrees/2bf1eebd069f0d939216d45cc299be85.dat +0 -0
  323. data/lib/mikunyan/typetrees/2c303ef7be71806aaffa0121527d7fea.dat +0 -0
  324. data/lib/mikunyan/typetrees/2d0f68bd23c44c2815f9d5376ace084f.dat +0 -0
  325. data/lib/mikunyan/typetrees/2d2b1d63eb2a68ed94bbf7f50fc21d7b.dat +0 -0
  326. data/lib/mikunyan/typetrees/2d33f228d257f7b0b88c98914786292c.dat +0 -0
  327. data/lib/mikunyan/typetrees/2da9c96f9efc8b31a480d5b8858755f3.dat +0 -0
  328. data/lib/mikunyan/typetrees/2dbcc357c62060bea7491f02a0a3d0fa.dat +0 -0
  329. data/lib/mikunyan/typetrees/2dd9afa6072e9ccae001437684a2eae5.dat +0 -0
  330. data/lib/mikunyan/typetrees/2def4fa21af26d3102178151c2b47141.dat +0 -0
  331. data/lib/mikunyan/typetrees/2ef918365da75913b10d30a85c9a815e.dat +0 -0
  332. data/lib/mikunyan/typetrees/2f02075ebca922e67afa3ddddc951609.dat +0 -0
  333. data/lib/mikunyan/typetrees/2f0ee1e689a979766d022d88d6007338.dat +0 -0
  334. data/lib/mikunyan/typetrees/2f25cddba4c1ccf16383b175860f1817.dat +0 -0
  335. data/lib/mikunyan/typetrees/2f3af372d1cb4f523d9b630c7d796e66.dat +0 -0
  336. data/lib/mikunyan/typetrees/2f903e13950e7204e5adb9d0359bd5b2.dat +0 -0
  337. data/lib/mikunyan/typetrees/304725e57bc52f76ceaa856632058097.dat +0 -0
  338. data/lib/mikunyan/typetrees/305e4aeacbb64b15862510dad47502cb.dat +0 -0
  339. data/lib/mikunyan/typetrees/30667f06a99e7931816757b4b7fbce5c.dat +0 -0
  340. data/lib/mikunyan/typetrees/306f0c2739dc8ad54fb4a1a44d1a3880.dat +0 -0
  341. data/lib/mikunyan/typetrees/30a40cec9f8c45e9aeca61bb77e596ec.dat +0 -0
  342. data/lib/mikunyan/typetrees/30a60d48ac05138e74c99389277a6a1d.dat +0 -0
  343. data/lib/mikunyan/typetrees/30bd9b8cf9127e0899f5f5ddc0a7ef6b.dat +0 -0
  344. data/lib/mikunyan/typetrees/30e5283aee3520fef10b77ffad62c83d.dat +0 -0
  345. data/lib/mikunyan/typetrees/310b66fa6f7980b50a9afc5ae3de4be7.dat +0 -0
  346. data/lib/mikunyan/typetrees/313e0ef8529b6cf61e4628fea22c1248.dat +0 -0
  347. data/lib/mikunyan/typetrees/313f624e8093f279302b3b6525bbb83a.dat +0 -0
  348. data/lib/mikunyan/typetrees/31a3036cdbecf796277c319a4537c802.dat +0 -0
  349. data/lib/mikunyan/typetrees/32094882bae6171c02d75bd88c4d43e1.dat +0 -0
  350. data/lib/mikunyan/typetrees/3283853e944bcba5a34dbc0848eec183.dat +0 -0
  351. data/lib/mikunyan/typetrees/330078ad6b3dd7f2ddb7acc3e27016bd.dat +0 -0
  352. data/lib/mikunyan/typetrees/3383c534169866b1d8b813ef0c7efa0a.dat +0 -0
  353. data/lib/mikunyan/typetrees/3383de6791220633b8bf013ca6c7698c.dat +0 -0
  354. data/lib/mikunyan/typetrees/33c22162b5b5f467fe7a7006ec52a136.dat +0 -0
  355. data/lib/mikunyan/typetrees/34f82447344517eacb2e4f407ad31706.dat +0 -0
  356. data/lib/mikunyan/typetrees/35143c3dc21459692fdaf21d2e208b06.dat +0 -0
  357. data/lib/mikunyan/typetrees/3516f0737a1242d1296fb738f8e40f76.dat +0 -0
  358. data/lib/mikunyan/typetrees/351ec242900b73e5560978fbb0d0cf82.dat +0 -0
  359. data/lib/mikunyan/typetrees/351f9bb942a4da561dcc5fef0ef510fa.dat +0 -0
  360. data/lib/mikunyan/typetrees/35b5aac7e54392457593cab60408b045.dat +0 -0
  361. data/lib/mikunyan/typetrees/35f443f871a6e42f9927fa28f8624097.dat +0 -0
  362. data/lib/mikunyan/typetrees/35fe4dba66818845b49463deb48b4734.dat +0 -0
  363. data/lib/mikunyan/typetrees/3616ba8255b2e0b96f89f1d32a86917d.dat +0 -0
  364. data/lib/mikunyan/typetrees/36f7b2db46f99efbdbf3c762b0b382d1.dat +0 -0
  365. data/lib/mikunyan/typetrees/370b0f89c6f401663e2eb09de9796164.dat +0 -0
  366. data/lib/mikunyan/typetrees/3729a4fed3f20838308759acc8a3f2a4.dat +0 -0
  367. data/lib/mikunyan/typetrees/37efb94307307a222a4b44847853eb41.dat +0 -0
  368. data/lib/mikunyan/typetrees/38a0b7bcc276529c80d90d35e4d84b8b.dat +0 -0
  369. data/lib/mikunyan/typetrees/3a500d83b71456e038d03ae52811afd9.dat +0 -0
  370. data/lib/mikunyan/typetrees/3a6bcd3696897d807684f3618ad3703c.dat +0 -0
  371. data/lib/mikunyan/typetrees/3a7ca5d09a7c50a9a8fc4016c0d9eacf.dat +0 -0
  372. data/lib/mikunyan/typetrees/3acd9a6db557e2793568933508522dff.dat +0 -0
  373. data/lib/mikunyan/typetrees/3b0d63b530177b95b8456ba44dbbeb5b.dat +0 -0
  374. data/lib/mikunyan/typetrees/3b26cb0c7d7e87bb45886cb857409b54.dat +0 -0
  375. data/lib/mikunyan/typetrees/3b43dde4518e4846a3d21126d51cb10f.dat +0 -0
  376. data/lib/mikunyan/typetrees/3b8b6e6bb5334a23b9fdc673bf73adf7.dat +0 -0
  377. data/lib/mikunyan/typetrees/3b9086da85ee83d3b154eb2ea7fcba05.dat +0 -0
  378. data/lib/mikunyan/typetrees/3c11da6c3ab6191099ff9deeef7469ef.dat +0 -0
  379. data/lib/mikunyan/typetrees/3c22e0cc9d3429687479f46554eab311.dat +0 -0
  380. data/lib/mikunyan/typetrees/3c2ce35247b35fd2f612ba19e32d5f44.dat +0 -0
  381. data/lib/mikunyan/typetrees/3c6a89d0e033d366453210256ef1d7d3.dat +0 -0
  382. data/lib/mikunyan/typetrees/3c7741a17041c5316eee28e6894a1cbd.dat +0 -0
  383. data/lib/mikunyan/typetrees/3c87bdb0795e3e66f4b309308b847d3c.dat +0 -0
  384. data/lib/mikunyan/typetrees/3d0a9ade9f227dc11c8b499c261794e8.dat +0 -0
  385. data/lib/mikunyan/typetrees/3d0f69809d8a2f86ea31f70e7319a44a.dat +0 -0
  386. data/lib/mikunyan/typetrees/3d612124d62c9db4ff7642f6570decd6.dat +0 -0
  387. data/lib/mikunyan/typetrees/3d914550764c2274e8c62817ee10d65b.dat +0 -0
  388. data/lib/mikunyan/typetrees/3e10119f7d2d4d7e643a43d856c0dcfb.dat +0 -0
  389. data/lib/mikunyan/typetrees/3e26b7a0e24abd3fd61d61cf59b6c4de.dat +0 -0
  390. data/lib/mikunyan/typetrees/3eced59289a820b4fa3bd784dbcc21f5.dat +0 -0
  391. data/lib/mikunyan/typetrees/3ffd1baba4bd4f48922b8cbdef0e2a03.dat +0 -0
  392. data/lib/mikunyan/typetrees/3fffe3ab5176cce0865f5ff4f2fa427d.dat +0 -0
  393. data/lib/mikunyan/typetrees/406a3dc2b89329c85e3a9847abbe8fe5.dat +0 -0
  394. data/lib/mikunyan/typetrees/40da10691c0dcc34b5660762da133b32.dat +0 -0
  395. data/lib/mikunyan/typetrees/412c400c20dea4a9fc447f1a44404e68.dat +0 -0
  396. data/lib/mikunyan/typetrees/418787f0cbb25432ee54f9837940729a.dat +0 -0
  397. data/lib/mikunyan/typetrees/4197459266a6342554ae11d2361e03bd.dat +0 -0
  398. data/lib/mikunyan/typetrees/41c90ae9d2ff8f897261f8d5233c154e.dat +0 -0
  399. data/lib/mikunyan/typetrees/41cdd7329b57ba13590d9321a595218f.dat +0 -0
  400. data/lib/mikunyan/typetrees/41fae1321bd7ad1650d7cecc8b7738f4.dat +0 -0
  401. data/lib/mikunyan/typetrees/42cb37e0be59eee623e414924928a40b.dat +0 -0
  402. data/lib/mikunyan/typetrees/434b934f757d042e20f52d8c2ae20843.dat +0 -0
  403. data/lib/mikunyan/typetrees/43688f077be008681d7eb9c994a18319.dat +0 -0
  404. data/lib/mikunyan/typetrees/43796121850ca62303af099e74b78099.dat +0 -0
  405. data/lib/mikunyan/typetrees/439e66a89c7fdef6f0927c9256c0773a.dat +0 -0
  406. data/lib/mikunyan/typetrees/442339d34eb0fadbe32ec143c60178f9.dat +0 -0
  407. data/lib/mikunyan/typetrees/448f646b445110ec08e0fa261c60874b.dat +0 -0
  408. data/lib/mikunyan/typetrees/44e2e865d4b8ca1e2ff1a674fe72520c.dat +0 -0
  409. data/lib/mikunyan/typetrees/45346f514b26cc508276ebd72faa6efc.dat +0 -0
  410. data/lib/mikunyan/typetrees/45b09dc0aed1f613c87ca0244816df75.dat +0 -0
  411. data/lib/mikunyan/typetrees/46236a8c8f841316135a0708a271d46b.dat +0 -0
  412. data/lib/mikunyan/typetrees/46c7e33b8dcc4199930c0b6e936c806d.dat +0 -0
  413. data/lib/mikunyan/typetrees/46cbdd6fc1deba025fb300d3ab19d3f1.dat +0 -0
  414. data/lib/mikunyan/typetrees/46e5682e0f5a4297bf46ffb5fe276535.dat +0 -0
  415. data/lib/mikunyan/typetrees/46fda2d131e65f9426462feecebc25c4.dat +0 -0
  416. data/lib/mikunyan/typetrees/471d5e9908ef24e3f514e9c015278dcc.dat +0 -0
  417. data/lib/mikunyan/typetrees/47e415e4ded437316718ef638dadd1bb.dat +0 -0
  418. data/lib/mikunyan/typetrees/47ec19649a1286158a8473b98a437ad9.dat +0 -0
  419. data/lib/mikunyan/typetrees/4837f860c05f8a94a4f956b92e3dad20.dat +0 -0
  420. data/lib/mikunyan/typetrees/4855c8964e40430d995b0b5a16b06c29.dat +0 -0
  421. data/lib/mikunyan/typetrees/486ba4e15dbd6aea8ac1a064305889c8.dat +0 -0
  422. data/lib/mikunyan/typetrees/486fa2a06d3c4322486ff9d1ae9a91d8.dat +0 -0
  423. data/lib/mikunyan/typetrees/48d16bd72d4e00f18fcf7f164ca78fcf.dat +0 -0
  424. data/lib/mikunyan/typetrees/4978b2bc5bfb76f1d26d687ea1bd8be3.dat +0 -0
  425. data/lib/mikunyan/typetrees/49bb43122aea696618d75afae92c2b3d.dat +0 -0
  426. data/lib/mikunyan/typetrees/49ff511929094ac12ffaa4ab38ed7bd1.dat +0 -0
  427. data/lib/mikunyan/typetrees/4b93aa1a138b912b0c421019169acf04.dat +0 -0
  428. data/lib/mikunyan/typetrees/4bb640239fe9179b3fe914ef2ad73248.dat +0 -0
  429. data/lib/mikunyan/typetrees/4bfc6b1eb274517782a296ebc8d1af84.dat +0 -0
  430. data/lib/mikunyan/typetrees/4c4cafd75c2bdccfb2af56ac8cc9c6de.dat +0 -0
  431. data/lib/mikunyan/typetrees/4c974799da79b8bb90685d05d744a927.dat +0 -0
  432. data/lib/mikunyan/typetrees/4c9ee0b79c5e5bcbd0628aa9ea5398e4.dat +0 -0
  433. data/lib/mikunyan/typetrees/4c9efaab9658908236c454765ba987c8.dat +0 -0
  434. data/lib/mikunyan/typetrees/4d47eb52c44b5042b1d33f9885218658.dat +0 -0
  435. data/lib/mikunyan/typetrees/4da3f794df175c929b97594573801119.dat +0 -0
  436. data/lib/mikunyan/typetrees/4dbfaa1def6adb569b550804b19b4305.dat +0 -0
  437. data/lib/mikunyan/typetrees/4e2656508795cad0cb5c8aa02bd550b6.dat +0 -0
  438. data/lib/mikunyan/typetrees/4e3ad1f5059719dbf410367459b499a5.dat +0 -0
  439. data/lib/mikunyan/typetrees/4e588b6332554634ea7e07f6680f0582.dat +0 -0
  440. data/lib/mikunyan/typetrees/4ea79602e4aa87588eee6d1905d8cb7a.dat +0 -0
  441. data/lib/mikunyan/typetrees/4eabbb423148bfffb763dbee212b366b.dat +0 -0
  442. data/lib/mikunyan/typetrees/4f127c0d7cb01c946ae357e54fae15e1.dat +0 -0
  443. data/lib/mikunyan/typetrees/4f92691a2b77d52dbc397527bff35e5a.dat +0 -0
  444. data/lib/mikunyan/typetrees/5092b508377b9c6d5ad9895b3d286788.dat +0 -0
  445. data/lib/mikunyan/typetrees/515d8c2462ffd1457616311bf40b514f.dat +0 -0
  446. data/lib/mikunyan/typetrees/51963c3dcc24197eabb30cc6868420d9.dat +0 -0
  447. data/lib/mikunyan/typetrees/51a13aeaa0d05081dc075fcbb2f63ef8.dat +0 -0
  448. data/lib/mikunyan/typetrees/51c84e1e88d9b0111efef8b6e10c4a32.dat +0 -0
  449. data/lib/mikunyan/typetrees/52b9481201679837cd249e4a88b7e191.dat +0 -0
  450. data/lib/mikunyan/typetrees/52e5341311c906096706ed87a43d93a7.dat +0 -0
  451. data/lib/mikunyan/typetrees/5306e362d8eb0dd3ad5636b4ed4552a7.dat +0 -0
  452. data/lib/mikunyan/typetrees/538345acf19ef6ab1d9baaa1fa798ea4.dat +0 -0
  453. data/lib/mikunyan/typetrees/53dd52a23ef6605f90d1e659f26de1d7.dat +0 -0
  454. data/lib/mikunyan/typetrees/549eb077bec973227cd80a75ad8936ee.dat +0 -0
  455. data/lib/mikunyan/typetrees/54ec8f0635016644e98d13e28d89a99f.dat +0 -0
  456. data/lib/mikunyan/typetrees/54f9e32744f326f7a0bad79d35247e39.dat +0 -0
  457. data/lib/mikunyan/typetrees/5540f11fd4650f927a3ddea613e3fac4.dat +0 -0
  458. data/lib/mikunyan/typetrees/5627f7a0d565659b25cb38a17f6465cd.dat +0 -0
  459. data/lib/mikunyan/typetrees/56afddc7f2dabfd6c1b92f818c212973.dat +0 -0
  460. data/lib/mikunyan/typetrees/571c0f2afe47acf1cd520f332d803b55.dat +0 -0
  461. data/lib/mikunyan/typetrees/578296e9395d8cd2cdb48a693fbcef63.dat +0 -0
  462. data/lib/mikunyan/typetrees/581f43365e98d398f5a716a8662bb6c2.dat +0 -0
  463. data/lib/mikunyan/typetrees/5839854f435cc7e9094966fb28f1d4fd.dat +0 -0
  464. data/lib/mikunyan/typetrees/583dd2bd3110da224e35404a92a6b223.dat +0 -0
  465. data/lib/mikunyan/typetrees/58ef73d2332f4214c1edee344bebe42a.dat +0 -0
  466. data/lib/mikunyan/typetrees/59827bcd10f00f02e580cc25fd9b35dd.dat +0 -0
  467. data/lib/mikunyan/typetrees/5a49bcd872a89bb1868c4eff8906b310.dat +0 -0
  468. data/lib/mikunyan/typetrees/5aa0b5d1e3115ca6e2087ab05a7bba32.dat +0 -0
  469. data/lib/mikunyan/typetrees/5b1b6bf0de1c285996cbfcf535f79a8b.dat +0 -0
  470. data/lib/mikunyan/typetrees/5bbb1d896df4d71b93d2eb023283c967.dat +0 -0
  471. data/lib/mikunyan/typetrees/5bc42b93159267aabba724a6a7923603.dat +0 -0
  472. data/lib/mikunyan/typetrees/5bcd76d798e7b9f2f3ffd398fd2aa6d0.dat +0 -0
  473. data/lib/mikunyan/typetrees/5be518883c8348ae95891bc413f25d9a.dat +0 -0
  474. data/lib/mikunyan/typetrees/5c5443aa48dc982498dc45b407dd366c.dat +0 -0
  475. data/lib/mikunyan/typetrees/5c56c5326122dbfc17f05b4bd1073819.dat +0 -0
  476. data/lib/mikunyan/typetrees/5db1b04c981af23853d34d9c3b3e4e04.dat +0 -0
  477. data/lib/mikunyan/typetrees/5e04ed38a99206bb912ef5540d987422.dat +0 -0
  478. data/lib/mikunyan/typetrees/5e3043c1e8b48dc540b5587049a5652a.dat +0 -0
  479. data/lib/mikunyan/typetrees/5e4ba266c81110b8a145f252b27434fe.dat +0 -0
  480. data/lib/mikunyan/typetrees/5e6c5cfe60546fff82d8f510201e1333.dat +0 -0
  481. data/lib/mikunyan/typetrees/5efa4c14815cf0fce98ec9ccc0a5cd0f.dat +0 -0
  482. data/lib/mikunyan/typetrees/5efb55d345c70f1e0ab1086d54664f1b.dat +0 -0
  483. data/lib/mikunyan/typetrees/5fab403b08c59ff6a1cae93a9297e7ea.dat +0 -0
  484. data/lib/mikunyan/typetrees/5fb5352926a129871956f20d77d944ea.dat +0 -0
  485. data/lib/mikunyan/typetrees/5fc4c3a218278ab4061cbdc2b3421051.dat +0 -0
  486. data/lib/mikunyan/typetrees/600abd4d46cc5440a8c9fc82e53617c5.dat +0 -0
  487. data/lib/mikunyan/typetrees/605682f38c4566637070ca76d9c7d2fe.dat +0 -0
  488. data/lib/mikunyan/typetrees/60dad57ee0f8f8b133ea8cb45b9ec36e.dat +0 -0
  489. data/lib/mikunyan/typetrees/618e59f5518f89d1b3a5c7394befc2a2.dat +0 -0
  490. data/lib/mikunyan/typetrees/619374d5c7f049786553fa386d48f88b.dat +0 -0
  491. data/lib/mikunyan/typetrees/61a1f8107fe55e8dc70b53ee2eff2756.dat +0 -0
  492. data/lib/mikunyan/typetrees/61ac6bba7ed5747525d406d2d0585a95.dat +0 -0
  493. data/lib/mikunyan/typetrees/61fe5cedbfcc1fc0104298e4c582bfac.dat +0 -0
  494. data/lib/mikunyan/typetrees/620f42f8420121766d34f6447784f183.dat +0 -0
  495. data/lib/mikunyan/typetrees/626e47f12c9e82cbe8d22e58e9c22441.dat +0 -0
  496. data/lib/mikunyan/typetrees/6286036292a215a5bb0bcb1dd22f9363.dat +0 -0
  497. data/lib/mikunyan/typetrees/62e541c3b7db7e26fd3d18076463a677.dat +0 -0
  498. data/lib/mikunyan/typetrees/62fa22027c3b351611164287e25fd49f.dat +0 -0
  499. data/lib/mikunyan/typetrees/6348b3796b6b02138fc1dfafb5b20b0d.dat +0 -0
  500. data/lib/mikunyan/typetrees/63f2ec883b52eee871736caedebed659.dat +0 -0
  501. data/lib/mikunyan/typetrees/641020e7e2ce4264829d051c6fe93352.dat +0 -0
  502. data/lib/mikunyan/typetrees/6435a529e2ad3f76e629c15d69227f03.dat +0 -0
  503. data/lib/mikunyan/typetrees/643e11867d6e720ee84a107eb84644bd.dat +0 -0
  504. data/lib/mikunyan/typetrees/645b27b9c2e45aeb8f35a172ff464989.dat +0 -0
  505. data/lib/mikunyan/typetrees/6485f962bc35ac4b9c73ccc6e9a54a91.dat +0 -0
  506. data/lib/mikunyan/typetrees/64eff32a9399a62c0c1ff38ffc206094.dat +0 -0
  507. data/lib/mikunyan/typetrees/657663fcc23615b4f420398b9cf66800.dat +0 -0
  508. data/lib/mikunyan/typetrees/65d43587d7c352e4bd0630c5e2d2b298.dat +0 -0
  509. data/lib/mikunyan/typetrees/66405447c6973a81e978410c391172fe.dat +0 -0
  510. data/lib/mikunyan/typetrees/66699f4e7c97d82ff8b9383b2509b87e.dat +0 -0
  511. data/lib/mikunyan/typetrees/668204d5ecec40adf49520ed6a9025d2.dat +0 -0
  512. data/lib/mikunyan/typetrees/66c04efe53dbe7127cfdf869a8f95b15.dat +0 -0
  513. data/lib/mikunyan/typetrees/66e56c6f103e8a727c7ae530a8f7455d.dat +0 -0
  514. data/lib/mikunyan/typetrees/66fcee7a9b922f2ff5b0d9b52d46547c.dat +0 -0
  515. data/lib/mikunyan/typetrees/6764d788de27a14bb8ce1638fde37482.dat +0 -0
  516. data/lib/mikunyan/typetrees/676cc4c231281a90a6a7cd15c124eff4.dat +0 -0
  517. data/lib/mikunyan/typetrees/676f41d3949568666a56b6761578e00c.dat +0 -0
  518. data/lib/mikunyan/typetrees/678a2b17764e129def610fbc5b8c42bf.dat +0 -0
  519. data/lib/mikunyan/typetrees/67dc4bcb545456d2d3c96334a159cc9a.dat +0 -0
  520. data/lib/mikunyan/typetrees/67de679f93c1a1fada22b4ffaafbf382.dat +0 -0
  521. data/lib/mikunyan/typetrees/6826552d2f82ad461f4aef84f4d94ea3.dat +0 -0
  522. data/lib/mikunyan/typetrees/6883009ec58a82ea61000b9c42c5c162.dat +0 -0
  523. data/lib/mikunyan/typetrees/68d2447015cd020e38d89e52e297f90b.dat +0 -0
  524. data/lib/mikunyan/typetrees/68dffa1eee93c91703996387b600aa7e.dat +0 -0
  525. data/lib/mikunyan/typetrees/6932d6d1d46264c8680a181056f98be2.dat +0 -0
  526. data/lib/mikunyan/typetrees/6974f6c74321933ec4ba7437a55be2c3.dat +0 -0
  527. data/lib/mikunyan/typetrees/69930e70a6ce1751fde0232474bd6ee0.dat +0 -0
  528. data/lib/mikunyan/typetrees/69b01db128625aa95f1f92fb890ff045.dat +0 -0
  529. data/lib/mikunyan/typetrees/69c8dbb0802cc4bc9be68d5c7309b764.dat +0 -0
  530. data/lib/mikunyan/typetrees/69d2caf8f9638b6169d920c89d9ef16f.dat +0 -0
  531. data/lib/mikunyan/typetrees/6a315ab47bbb18fc937ba08523937b61.dat +0 -0
  532. data/lib/mikunyan/typetrees/6a6f68020de4f8d31c56c86f0382f285.dat +0 -0
  533. data/lib/mikunyan/typetrees/6ac2d1181bb850de49408801e9642c7c.dat +0 -0
  534. data/lib/mikunyan/typetrees/6ad9191fff669ba9974499b49a164eb6.dat +0 -0
  535. data/lib/mikunyan/typetrees/6b0764702e7fa567f1b7e41c78cc2429.dat +0 -0
  536. data/lib/mikunyan/typetrees/6bc25415a9108f87531e4c7946928d9b.dat +0 -0
  537. data/lib/mikunyan/typetrees/6bd7d7520290d78de5f270d96e24bb2b.dat +0 -0
  538. data/lib/mikunyan/typetrees/6bdc295cd9692eca0774303098f1d146.dat +0 -0
  539. data/lib/mikunyan/typetrees/6bf84760b5b66259d18266ef96ef7de1.dat +0 -0
  540. data/lib/mikunyan/typetrees/6c0f58fbee223f3b8a8fac3394f703bf.dat +0 -0
  541. data/lib/mikunyan/typetrees/6c7dcb0569480fe5a3393817b73dc97e.dat +0 -0
  542. data/lib/mikunyan/typetrees/6caeaf097185ade2eb31f23d1085537f.dat +0 -0
  543. data/lib/mikunyan/typetrees/6ccd29968422b0c727655900a021b33e.dat +0 -0
  544. data/lib/mikunyan/typetrees/6d1b97337aac9cb7094c7e1041b3e875.dat +0 -0
  545. data/lib/mikunyan/typetrees/6d5c997e9b5456804ba113755fc21d77.dat +0 -0
  546. data/lib/mikunyan/typetrees/6d624ed7be5b7d2bfe7a5333bdd41dae.dat +0 -0
  547. data/lib/mikunyan/typetrees/6dc0d34c2c0e79e0039a0ce24b8d7ad7.dat +0 -0
  548. data/lib/mikunyan/typetrees/6dcbd8595bad0e6a28405a02cf214475.dat +0 -0
  549. data/lib/mikunyan/typetrees/6e5277573492549897ee4815066ae959.dat +0 -0
  550. data/lib/mikunyan/typetrees/6ec5696dc525f7bf85a7bb2e1ae000a9.dat +0 -0
  551. data/lib/mikunyan/typetrees/6ed2fb56a9c16fd1781896a923bc5110.dat +0 -0
  552. data/lib/mikunyan/typetrees/6ef34d0e751e6b1699a5ea302b822e33.dat +0 -0
  553. data/lib/mikunyan/typetrees/6f0618d26354f0289c7090aaf688981a.dat +0 -0
  554. data/lib/mikunyan/typetrees/6f10d8f832d5adde6982d4515b3f0bb3.dat +0 -0
  555. data/lib/mikunyan/typetrees/6f5cd06250f9dcc3ca6c3bca26c54a4a.dat +0 -0
  556. data/lib/mikunyan/typetrees/6fe7137b38c0f129e598c03aabcd1b7d.dat +0 -0
  557. data/lib/mikunyan/typetrees/706686d4d71b0e1bf7c80acdaa4ee6f5.dat +0 -0
  558. data/lib/mikunyan/typetrees/70694abce333e1b33ac59f2073897f8c.dat +0 -0
  559. data/lib/mikunyan/typetrees/708b7450c6da65399971dc7713450987.dat +0 -0
  560. data/lib/mikunyan/typetrees/710ba136b5e726ce760e399a154d3147.dat +0 -0
  561. data/lib/mikunyan/typetrees/715d61497b6835c6d6051c1782d084d8.dat +0 -0
  562. data/lib/mikunyan/typetrees/7230c9eb36a0c72a7187ad952551e1e5.dat +0 -0
  563. data/lib/mikunyan/typetrees/72a04b61fcb3921ca9eae80f2e8116f2.dat +0 -0
  564. data/lib/mikunyan/typetrees/730963c6e93acb528bb26d1152f2f185.dat +0 -0
  565. data/lib/mikunyan/typetrees/736709e4aa82fa6e43c313608fdab426.dat +0 -0
  566. data/lib/mikunyan/typetrees/7426e29c09461093e756fbae4d601f21.dat +0 -0
  567. data/lib/mikunyan/typetrees/742c910494e1117e52cc42600eedf188.dat +0 -0
  568. data/lib/mikunyan/typetrees/742dfb0ecafe88a375d25ddf3b57c48f.dat +0 -0
  569. data/lib/mikunyan/typetrees/7487684e77cbd197aaf389864da1d8c7.dat +0 -0
  570. data/lib/mikunyan/typetrees/74d387e7f1b0ef0e146e96940005546f.dat +0 -0
  571. data/lib/mikunyan/typetrees/74dee2a3d385f2275898fdb717601239.dat +0 -0
  572. data/lib/mikunyan/typetrees/74e21134ffaafd89e66055c6276511eb.dat +0 -0
  573. data/lib/mikunyan/typetrees/7516312baadcdf604129e59e48ddd279.dat +0 -0
  574. data/lib/mikunyan/typetrees/75545c074fd129c54b22e1a6bcdcb66f.dat +0 -0
  575. data/lib/mikunyan/typetrees/7596aa057c69a1ec1a3a89ad75428393.dat +0 -0
  576. data/lib/mikunyan/typetrees/75be9be17431b833cd73a47d360d8ccf.dat +0 -0
  577. data/lib/mikunyan/typetrees/75d2f1d383a6d305cf13e74d9fbcbe27.dat +0 -0
  578. data/lib/mikunyan/typetrees/75e5f675169cf0850fafafa08a65cb38.dat +0 -0
  579. data/lib/mikunyan/typetrees/7602eb8dc1aab6b53a21f0eec61dcf50.dat +0 -0
  580. data/lib/mikunyan/typetrees/761ca81f78491542badc37f810ab3455.dat +0 -0
  581. data/lib/mikunyan/typetrees/762765b0cbe6e45e90e5327a46f736f3.dat +0 -0
  582. data/lib/mikunyan/typetrees/766ecf7bc48297e7896ab27f26a20718.dat +0 -0
  583. data/lib/mikunyan/typetrees/76ce55d4dbaf38f5c674ea9f0a344951.dat +0 -0
  584. data/lib/mikunyan/typetrees/76f4b627feb164db63eb7309397cc41c.dat +0 -0
  585. data/lib/mikunyan/typetrees/774f723655447fbac1acb3d6e2efe779.dat +0 -0
  586. data/lib/mikunyan/typetrees/77e140a777f2dcacb51121e0a5bd1f53.dat +0 -0
  587. data/lib/mikunyan/typetrees/7820575911fe2da513f40293adce9a18.dat +0 -0
  588. data/lib/mikunyan/typetrees/7827d12c70d793eea089e3d7f39d261d.dat +0 -0
  589. data/lib/mikunyan/typetrees/783160b4237e2d925847373d2e3e1f74.dat +0 -0
  590. data/lib/mikunyan/typetrees/78b7ad80f74e5183d7232e985f897e07.dat +0 -0
  591. data/lib/mikunyan/typetrees/78d8adfab8d2f5e87dc9f0940edf643e.dat +0 -0
  592. data/lib/mikunyan/typetrees/796f96b562ba5f95590515f1ff2b4ad4.dat +0 -0
  593. data/lib/mikunyan/typetrees/7a8e9c0bbba2cc55cba94498d74ce288.dat +0 -0
  594. data/lib/mikunyan/typetrees/7a92461726e9f3f6530e31cf5af5d1bf.dat +0 -0
  595. data/lib/mikunyan/typetrees/7a929c15d05fa9e0429b1b0b1aebc4fa.dat +0 -0
  596. data/lib/mikunyan/typetrees/7af10101ba0f53047f2ef70d8a9c804b.dat +0 -0
  597. data/lib/mikunyan/typetrees/7b060099aa81c5b21d273334dca40500.dat +0 -0
  598. data/lib/mikunyan/typetrees/7b2c23a9c82c5c46e142acfea65b3c97.dat +0 -0
  599. data/lib/mikunyan/typetrees/7b7447a6cf3fc8277777e805eba85851.dat +0 -0
  600. data/lib/mikunyan/typetrees/7bc51621c4b5daf39c657881089220a1.dat +0 -0
  601. data/lib/mikunyan/typetrees/7bdd8f909403558edc7cfc68ea95b815.dat +0 -0
  602. data/lib/mikunyan/typetrees/7c40ce9e4c671f7594f3d4fae7c32466.dat +0 -0
  603. data/lib/mikunyan/typetrees/7c5cf6d08d3a08f2a7974b31506de880.dat +0 -0
  604. data/lib/mikunyan/typetrees/7c6240188efe9290095ed1a669f90ec1.dat +0 -0
  605. data/lib/mikunyan/typetrees/7c68f879768df44f439ae870b70b6a9e.dat +0 -0
  606. data/lib/mikunyan/typetrees/7c6dc2b255110b522e6c300e8632f2a1.dat +0 -0
  607. data/lib/mikunyan/typetrees/7cbb1c953f2ed3ca40125e473bf2fce0.dat +0 -0
  608. data/lib/mikunyan/typetrees/7cdec7ef01e50eed77502d4e277c3e0d.dat +0 -0
  609. data/lib/mikunyan/typetrees/7cf0af7e0c7d50808a569121e7a4c0de.dat +0 -0
  610. data/lib/mikunyan/typetrees/7d2188e085d3917ebec9a1067d74de59.dat +0 -0
  611. data/lib/mikunyan/typetrees/7d7186ff509eeb1be635ead41f130cbb.dat +0 -0
  612. data/lib/mikunyan/typetrees/7db9444f76a2b8f439e4581d2274d36b.dat +0 -0
  613. data/lib/mikunyan/typetrees/7e050781d08ca9d10bc74beb7e91c3b5.dat +0 -0
  614. data/lib/mikunyan/typetrees/7e328a225b72b97191b52d631ccf62d2.dat +0 -0
  615. data/lib/mikunyan/typetrees/7ec49b5572da843e0e7d21ab5459a2da.dat +0 -0
  616. data/lib/mikunyan/typetrees/7ef50d120c6291f8451b25ad8abf0965.dat +0 -0
  617. data/lib/mikunyan/typetrees/7f52d4deb56f283a259b5e24c4bf3f54.dat +0 -0
  618. data/lib/mikunyan/typetrees/7f5bc8091a8db0e9aa2b5fbf64e7951b.dat +0 -0
  619. data/lib/mikunyan/typetrees/7f814eabb66e0fb6a82a15ef17f7e1d3.dat +0 -0
  620. data/lib/mikunyan/typetrees/7fab9e77215788a4f643d5f7397ffbb3.dat +0 -0
  621. data/lib/mikunyan/typetrees/7fb1270153bd6ccfa8bc7546dda95254.dat +0 -0
  622. data/lib/mikunyan/typetrees/805ccd3567f53eef88ad4ad0bfa2d5fe.dat +0 -0
  623. data/lib/mikunyan/typetrees/806230bcf014183c8e3ad32dfd4280ed.dat +0 -0
  624. data/lib/mikunyan/typetrees/80ba7945b19e87c90c6aa46fb4c7b9b2.dat +0 -0
  625. data/lib/mikunyan/typetrees/8146f1f01d4bf220c339260799ed1bb6.dat +0 -0
  626. data/lib/mikunyan/typetrees/818ddfe606de30c07daa36d729f982e2.dat +0 -0
  627. data/lib/mikunyan/typetrees/8198e72b2e2a96b9cfa38636b5565e13.dat +0 -0
  628. data/lib/mikunyan/typetrees/81d6f63da53d28f32efd4d3f6b1d3da8.dat +0 -0
  629. data/lib/mikunyan/typetrees/81e28d3a4102fabc98ac701e6a192ad4.dat +0 -0
  630. data/lib/mikunyan/typetrees/827f095b42d421f9185c642342736534.dat +0 -0
  631. data/lib/mikunyan/typetrees/82cbe6ba9f2fd496d8e14747a764dc4f.dat +0 -0
  632. data/lib/mikunyan/typetrees/82ef0bad8dda8ba9bd5e1c02d979553c.dat +0 -0
  633. data/lib/mikunyan/typetrees/833f8aadff717234b49269a5132edc7c.dat +0 -0
  634. data/lib/mikunyan/typetrees/8401d562403dab942459c07642072dd6.dat +0 -0
  635. data/lib/mikunyan/typetrees/841a9336c1bf3f743885c5872cc07610.dat +0 -0
  636. data/lib/mikunyan/typetrees/84441ff585c6e370e29c822a10ffaca8.dat +0 -0
  637. data/lib/mikunyan/typetrees/845046c14ae4f0948a7d3dbc4a0c539e.dat +0 -0
  638. data/lib/mikunyan/typetrees/8473edbc0acb04069b62cedcb384b5b3.dat +0 -0
  639. data/lib/mikunyan/typetrees/849b9d0ee2b45ed2b7ad871a6e9e7829.dat +0 -0
  640. data/lib/mikunyan/typetrees/849d2b6794bdc167b0ed4680bad500a8.dat +0 -0
  641. data/lib/mikunyan/typetrees/84c6ac46ef89030991cbbb3fd21d2889.dat +0 -0
  642. data/lib/mikunyan/typetrees/852794becbcf95f66992da2b96a69704.dat +0 -0
  643. data/lib/mikunyan/typetrees/863223fe4e4f151f9fac463e584de569.dat +0 -0
  644. data/lib/mikunyan/typetrees/86897fc97905918dc891437fa7a15696.dat +0 -0
  645. data/lib/mikunyan/typetrees/86d77ad7cf81dd25dd72cba6c8c6469f.dat +0 -0
  646. data/lib/mikunyan/typetrees/86e3dfad5ee7276a4684d1a52abff92e.dat +0 -0
  647. data/lib/mikunyan/typetrees/87a093027ec05bed0b579a2358a5b05d.dat +0 -0
  648. data/lib/mikunyan/typetrees/87dade7c5c3deedeb0ce5d9a8841f158.dat +0 -0
  649. data/lib/mikunyan/typetrees/87f77e11a02b179bb214bd76d685b401.dat +0 -0
  650. data/lib/mikunyan/typetrees/8925033300616905004fa9e086f1cbc9.dat +0 -0
  651. data/lib/mikunyan/typetrees/896dbaf3b3aebe84868b2f32670d760f.dat +0 -0
  652. data/lib/mikunyan/typetrees/89e4db8e910533e9ee1d1aea4ff83e90.dat +0 -0
  653. data/lib/mikunyan/typetrees/8a5260f6b3834d07a94ab067294b0cc5.dat +0 -0
  654. data/lib/mikunyan/typetrees/8b15ee3625eb1303de45e98f5be1f26a.dat +0 -0
  655. data/lib/mikunyan/typetrees/8b8d4b439b97c4ced21e607f897bafd8.dat +0 -0
  656. data/lib/mikunyan/typetrees/8ba111f9d4192ab8bc45d1660fd86fc6.dat +0 -0
  657. data/lib/mikunyan/typetrees/8c484a566ae9d66ee0aceea5a42e3789.dat +0 -0
  658. data/lib/mikunyan/typetrees/8c55b3391474b0260c3d86e0c2bcd993.dat +0 -0
  659. data/lib/mikunyan/typetrees/8c628dc93bfed0b3426a4bac24a61747.dat +0 -0
  660. data/lib/mikunyan/typetrees/8c76f4279782912a6b3aa48b66ed01b7.dat +0 -0
  661. data/lib/mikunyan/typetrees/8c86f4ac6b7f47c045560d4383aadc8d.dat +0 -0
  662. data/lib/mikunyan/typetrees/8d0a59169a1ccf55f552c37131047e9c.dat +0 -0
  663. data/lib/mikunyan/typetrees/8d3c252a2ef87c9fce3fb31e19ba56a8.dat +0 -0
  664. data/lib/mikunyan/typetrees/8d9b6bdaddb4b93dfcd710699c75727e.dat +0 -0
  665. data/lib/mikunyan/typetrees/8dd2e23af15a28379c28908e65221abe.dat +0 -0
  666. data/lib/mikunyan/typetrees/8df95c0391bc4e4f4e0a42aba29ab8a2.dat +0 -0
  667. data/lib/mikunyan/typetrees/8ea24924f881c1cd4138c7788c0ef205.dat +0 -0
  668. data/lib/mikunyan/typetrees/8fbd7a1c59a8d433c600d62fa2740c9d.dat +0 -0
  669. data/lib/mikunyan/typetrees/904f143a242ea542145368df1fc29c24.dat +0 -0
  670. data/lib/mikunyan/typetrees/9075bdf87ce7fe1d17fed3456a6a834b.dat +0 -0
  671. data/lib/mikunyan/typetrees/912cebe0cd9b0a9e0d0a548bfa2fd382.dat +0 -0
  672. data/lib/mikunyan/typetrees/914d9c276e68b21df32efb3447e983bf.dat +0 -0
  673. data/lib/mikunyan/typetrees/91ffea0726900cb751e36f83816df13e.dat +0 -0
  674. data/lib/mikunyan/typetrees/921d3a8ec14bca7a3ac12be64e59d740.dat +0 -0
  675. data/lib/mikunyan/typetrees/922285a96e080d3b0fb9d1483ace0c71.dat +0 -0
  676. data/lib/mikunyan/typetrees/924f3272ed53ff58e2379a7684f5069a.dat +0 -0
  677. data/lib/mikunyan/typetrees/927fb27ec5aa6f52f67992bafc6e1df8.dat +0 -0
  678. data/lib/mikunyan/typetrees/92a27f6a5e14dc6ab8018923723c818c.dat +0 -0
  679. data/lib/mikunyan/typetrees/92f1b9794cb255b2fbf962648186a962.dat +0 -0
  680. data/lib/mikunyan/typetrees/936739f45f26fd8b81a4ea70f2c8cad4.dat +0 -0
  681. data/lib/mikunyan/typetrees/936ac825c5beb010bed3b6b7953f4dd2.dat +0 -0
  682. data/lib/mikunyan/typetrees/937a6b5c5f5b313185d252e38d145b17.dat +0 -0
  683. data/lib/mikunyan/typetrees/93c3d14c8b88c38e3aa39de936d38caa.dat +0 -0
  684. data/lib/mikunyan/typetrees/940c9db2511f9898769e11849d71f82f.dat +0 -0
  685. data/lib/mikunyan/typetrees/94a19169d56c4f123092fd0d1e4bdba1.dat +0 -0
  686. data/lib/mikunyan/typetrees/94d6c861f2b382fd81a12d2a1b1e7ce2.dat +0 -0
  687. data/lib/mikunyan/typetrees/954706197f5ed745cd14444d281f1516.dat +0 -0
  688. data/lib/mikunyan/typetrees/959ce281abde8687d3ab1adce9e00f5a.dat +0 -0
  689. data/lib/mikunyan/typetrees/961be27d12d60b1b3421191d5256a876.dat +0 -0
  690. data/lib/mikunyan/typetrees/964c223b82bb8bac12cd3e53186a3e13.dat +0 -0
  691. data/lib/mikunyan/typetrees/9657457af3bc45d81a0b5871a0d18e77.dat +0 -0
  692. data/lib/mikunyan/typetrees/96785e58aac89a09fce6ca2c9448311b.dat +0 -0
  693. data/lib/mikunyan/typetrees/96a47566b4e135078f690a4a69935d58.dat +0 -0
  694. data/lib/mikunyan/typetrees/96bc046967bdbe77c417e21eb49ce1ae.dat +0 -0
  695. data/lib/mikunyan/typetrees/96c46d945b3cc21e2a5ca09659ae4ef2.dat +0 -0
  696. data/lib/mikunyan/typetrees/974cb1de01d7acb61e52fe38b84e0ee0.dat +0 -0
  697. data/lib/mikunyan/typetrees/97da5f4688e45a57c8b42d4f42497297.dat +0 -0
  698. data/lib/mikunyan/typetrees/97dc11471130df660f6d50adbeb2d686.dat +0 -0
  699. data/lib/mikunyan/typetrees/97ec0712102a3ea3f1cf8c0a4e47c070.dat +0 -0
  700. data/lib/mikunyan/typetrees/9805cf0348f163ad092ab00ca9d122d1.dat +0 -0
  701. data/lib/mikunyan/typetrees/983db003d56cd893ea50a9b80e743a79.dat +0 -0
  702. data/lib/mikunyan/typetrees/99359255da094b94c150311921ba4420.dat +0 -0
  703. data/lib/mikunyan/typetrees/996817b009f16e87aaae3624bce113c2.dat +0 -0
  704. data/lib/mikunyan/typetrees/999a8dbc0e53be755905751739c9e11c.dat +0 -0
  705. data/lib/mikunyan/typetrees/99bd795c8f9317e294a68c7fbe03ca20.dat +0 -0
  706. data/lib/mikunyan/typetrees/9a17ee635b6dc8432d0ec80c4ad73e29.dat +0 -0
  707. data/lib/mikunyan/typetrees/9a83846bdc10f24de3183b3d1b510d5c.dat +0 -0
  708. data/lib/mikunyan/typetrees/9aed068deda3d33814c4fb67736e29a2.dat +0 -0
  709. data/lib/mikunyan/typetrees/9af59502167704cb56d2208a8f4cb9d4.dat +0 -0
  710. data/lib/mikunyan/typetrees/9b387d50420c652bc1655e5246825221.dat +0 -0
  711. data/lib/mikunyan/typetrees/9b3c138987aed9be83010b14bab944c5.dat +0 -0
  712. data/lib/mikunyan/typetrees/9ba48aaf9d1e25c3df443b187b038f86.dat +0 -0
  713. data/lib/mikunyan/typetrees/9bcd9c6543c17c98a8822bd42ec93276.dat +0 -0
  714. data/lib/mikunyan/typetrees/9ca11a3c3ac28b3faadefc2077eeed2c.dat +0 -0
  715. data/lib/mikunyan/typetrees/9cd47fa65c9a8be7ae36db2dc33968b2.dat +0 -0
  716. data/lib/mikunyan/typetrees/9d1630b1d7e3bc24abe46e5860a2a179.dat +0 -0
  717. data/lib/mikunyan/typetrees/9e0ab8d396f3249a3958dd930f81f61b.dat +0 -0
  718. data/lib/mikunyan/typetrees/9e26f96591d351c8dfe911b5dc239000.dat +0 -0
  719. data/lib/mikunyan/typetrees/9eabac6ec66ffe818e008883728fcc1b.dat +0 -0
  720. data/lib/mikunyan/typetrees/9ec70d7af96c9625d1bfca15d188b85c.dat +0 -0
  721. data/lib/mikunyan/typetrees/9ee328006f16e91aebcb4f27698f145a.dat +0 -0
  722. data/lib/mikunyan/typetrees/9f1c6f94c1da7e8f10bb554b37c6790b.dat +0 -0
  723. data/lib/mikunyan/typetrees/9f459ec8887c3967985546f1fde8df43.dat +0 -0
  724. data/lib/mikunyan/typetrees/9f6e88bbe6df9df9cf7291b5706b5552.dat +0 -0
  725. data/lib/mikunyan/typetrees/9fc1437f6cfe5c490d2e978f16ab14c6.dat +0 -0
  726. data/lib/mikunyan/typetrees/9fc31ad55662eaea988a01e22a644c39.dat +0 -0
  727. data/lib/mikunyan/typetrees/a02319b1d2e24272d1b421900c6ad759.dat +0 -0
  728. data/lib/mikunyan/typetrees/a0efb292088d42a70bf1e896a86b432c.dat +0 -0
  729. data/lib/mikunyan/typetrees/a13e161c148750300e73c4a6fce7bfbd.dat +0 -0
  730. data/lib/mikunyan/typetrees/a1537a31e824cbbd6c05da4642c985b8.dat +0 -0
  731. data/lib/mikunyan/typetrees/a1976c4b66d47015022b085de5b49ccb.dat +0 -0
  732. data/lib/mikunyan/typetrees/a19b930d9a846346a5d8b896c5e96486.dat +0 -0
  733. data/lib/mikunyan/typetrees/a1ade835112d0f2821871fa3c6e4e587.dat +0 -0
  734. data/lib/mikunyan/typetrees/a1c1ffb08b1cc7f3f88f09356496a286.dat +0 -0
  735. data/lib/mikunyan/typetrees/a1d647cb11661f7cf6547453ea5f9861.dat +0 -0
  736. data/lib/mikunyan/typetrees/a1ed39a19efb6f3ebc0a032dc6d587c9.dat +0 -0
  737. data/lib/mikunyan/typetrees/a2612890399b22f059e37145e4db6ff9.dat +0 -0
  738. data/lib/mikunyan/typetrees/a2dc9dbb5b830efd10b60100b47d8d36.dat +0 -0
  739. data/lib/mikunyan/typetrees/a3125dde8c910a6d078682616f144a80.dat +0 -0
  740. data/lib/mikunyan/typetrees/a3523f5739a17bb6054dde6c088584ce.dat +0 -0
  741. data/lib/mikunyan/typetrees/a372646834bcaf26eab1d21b29e39553.dat +0 -0
  742. data/lib/mikunyan/typetrees/a3c506becc8f7d25351b47778de7ebb5.dat +0 -0
  743. data/lib/mikunyan/typetrees/a3d63d57b4f43b62a77e83e05699a5f6.dat +0 -0
  744. data/lib/mikunyan/typetrees/a439ae65edce4289e3ff832904fea27d.dat +0 -0
  745. data/lib/mikunyan/typetrees/a443a7ce5365c746c6e9c64036662d13.dat +0 -0
  746. data/lib/mikunyan/typetrees/a46a51168885aa63162102ca3f63007a.dat +0 -0
  747. data/lib/mikunyan/typetrees/a47e8a7b7a1ef3aba7372439af5d26a7.dat +0 -0
  748. data/lib/mikunyan/typetrees/a49b27a93f3de2ad5ef668735e5042b2.dat +0 -0
  749. data/lib/mikunyan/typetrees/a4f194097b08bc4c5019c3a4ea6f5cbd.dat +0 -0
  750. data/lib/mikunyan/typetrees/a52792d409265e0e596cf29f070ecb5d.dat +0 -0
  751. data/lib/mikunyan/typetrees/a545a5020d58adc9f675e7c540cc8528.dat +0 -0
  752. data/lib/mikunyan/typetrees/a5610d8eea1dd355fe6d1abe467ef169.dat +0 -0
  753. data/lib/mikunyan/typetrees/a5c609a17035f4d56f2ae04d1b39a920.dat +0 -0
  754. data/lib/mikunyan/typetrees/a5c7631994dff71adc95b7f89031b93b.dat +0 -0
  755. data/lib/mikunyan/typetrees/a607b371095d71157668890ef7ba9916.dat +0 -0
  756. data/lib/mikunyan/typetrees/a60842f261bd4d64035c8ec28d3479e8.dat +0 -0
  757. data/lib/mikunyan/typetrees/a6eed3721efd15a26738b18db46be12f.dat +0 -0
  758. data/lib/mikunyan/typetrees/a70f7abc6586fb35b3a0641aa81e9375.dat +0 -0
  759. data/lib/mikunyan/typetrees/a780b20860600360dca50aabf28af3a8.dat +0 -0
  760. data/lib/mikunyan/typetrees/a7ab35bd41beb7749427a39f92a03d4b.dat +0 -0
  761. data/lib/mikunyan/typetrees/a83755f3cbd13d1fb2fee65b71f3d548.dat +0 -0
  762. data/lib/mikunyan/typetrees/a8d5288ef078923b2de828fe161efa45.dat +0 -0
  763. data/lib/mikunyan/typetrees/a9151a17a865b711150442f2d88c1562.dat +0 -0
  764. data/lib/mikunyan/typetrees/ab4e5036e05e74cdac2d53b6019bc9eb.dat +0 -0
  765. data/lib/mikunyan/typetrees/ab84ab1a36bb2a6b65af81284f111350.dat +0 -0
  766. data/lib/mikunyan/typetrees/abaa04359c1280b858eeac4cd31a7aea.dat +0 -0
  767. data/lib/mikunyan/typetrees/abce5e1c4492692e276ff3d9365f9465.dat +0 -0
  768. data/lib/mikunyan/typetrees/abd3c4b2ff616cc78d42c5941d8569e0.dat +0 -0
  769. data/lib/mikunyan/typetrees/ac0b1a1717abe360c1a00057f5d2abb6.dat +0 -0
  770. data/lib/mikunyan/typetrees/ac5efb9153fd30cd5e78552e69f83830.dat +0 -0
  771. data/lib/mikunyan/typetrees/ac907a47e9d727d24ca82a3ee68dd8df.dat +0 -0
  772. data/lib/mikunyan/typetrees/acf82061a06bb855c2a2a6e73a2b97fb.dat +0 -0
  773. data/lib/mikunyan/typetrees/ad2ca9a0fe21a7cf9793d8ace16bb3cd.dat +0 -0
  774. data/lib/mikunyan/typetrees/add53ee9a755d72f14f4d673d2dac56b.dat +0 -0
  775. data/lib/mikunyan/typetrees/adf5eba4e81b1d740ea0068a30aa8a37.dat +0 -0
  776. data/lib/mikunyan/typetrees/ae12c8f4663719b3d423361a8b8a62d2.dat +0 -0
  777. data/lib/mikunyan/typetrees/aeadce2965a198a87587c0beac675004.dat +0 -0
  778. data/lib/mikunyan/typetrees/aeeebbdbd802239fdfc3aaf98ffc5d01.dat +0 -0
  779. data/lib/mikunyan/typetrees/af863b6969b9b82be9450f0574339f65.dat +0 -0
  780. data/lib/mikunyan/typetrees/af9a16c5c3d9f5104290fff6305334e2.dat +0 -0
  781. data/lib/mikunyan/typetrees/aff142075870161380a891d11baeb767.dat +0 -0
  782. data/lib/mikunyan/typetrees/b093ef1cb958a6b1cf5a00c31b6e05c4.dat +0 -0
  783. data/lib/mikunyan/typetrees/b0adafbe24f8148ebf01794ee6679925.dat +0 -0
  784. data/lib/mikunyan/typetrees/b0f22973848e1cf655dfdf8064bfa400.dat +0 -0
  785. data/lib/mikunyan/typetrees/b14bcb0865632d1b2d6e215a000e4c0f.dat +0 -0
  786. data/lib/mikunyan/typetrees/b1fe84b5bfdc47e2b1b930db296afb2f.dat +0 -0
  787. data/lib/mikunyan/typetrees/b20231c215c4c1b82b98bb49418c5cbe.dat +0 -0
  788. data/lib/mikunyan/typetrees/b204c22c22b1a08f780435c2cb4e6e36.dat +0 -0
  789. data/lib/mikunyan/typetrees/b23ac00b23adf1bb2b3d7c5553ad5dad.dat +0 -0
  790. data/lib/mikunyan/typetrees/b288ea39c72d3b3d238cb4f3fc076d0a.dat +0 -0
  791. data/lib/mikunyan/typetrees/b2c14391e281903c5a5157289977d33f.dat +0 -0
  792. data/lib/mikunyan/typetrees/b2cc7a58ffc0556ece83264e81dff623.dat +0 -0
  793. data/lib/mikunyan/typetrees/b2f39a1d526b8a4c6aad16cff7ca9ea8.dat +0 -0
  794. data/lib/mikunyan/typetrees/b2fbe9f493982acd18f063f7ab5a81aa.dat +0 -0
  795. data/lib/mikunyan/typetrees/b31c04cde0ffadc258d46846966594b1.dat +0 -0
  796. data/lib/mikunyan/typetrees/b3290db9f9d2e2862a1367d32838130e.dat +0 -0
  797. data/lib/mikunyan/typetrees/b354679381971a70db4d0035cc730543.dat +0 -0
  798. data/lib/mikunyan/typetrees/b35bf02952f2946208ff6b4deca3a6a9.dat +0 -0
  799. data/lib/mikunyan/typetrees/b36337bd6d2e99167473b8a383361c21.dat +0 -0
  800. data/lib/mikunyan/typetrees/b38ca8dbedd791b7ca3ca07095a9f312.dat +0 -0
  801. data/lib/mikunyan/typetrees/b38d9554723d82e3bc95c076ca902704.dat +0 -0
  802. data/lib/mikunyan/typetrees/b3fdd03ac222c685fe75187c0b44c489.dat +0 -0
  803. data/lib/mikunyan/typetrees/b494c2cb6c527914e903d8d6e17f30e9.dat +0 -0
  804. data/lib/mikunyan/typetrees/b519ba66b3244a4bfaf9a65938d61b67.dat +0 -0
  805. data/lib/mikunyan/typetrees/b51e06b75a0e28a9f2f242726a3814d4.dat +0 -0
  806. data/lib/mikunyan/typetrees/b53f2d12e7a6d302f50ad4162070fe13.dat +0 -0
  807. data/lib/mikunyan/typetrees/b684fb202e70b6d6c9fa64988e29576e.dat +0 -0
  808. data/lib/mikunyan/typetrees/b6bbd0e88d1feb636d89bd766ea5934f.dat +0 -0
  809. data/lib/mikunyan/typetrees/b6cc407b2d3c753bf79661a477113977.dat +0 -0
  810. data/lib/mikunyan/typetrees/b7056b24cf06fc6058b412a2c2dad2bb.dat +0 -0
  811. data/lib/mikunyan/typetrees/b78821b6aeb5b79c8961728a9f068024.dat +0 -0
  812. data/lib/mikunyan/typetrees/b79aed1f22f656993386add127833156.dat +0 -0
  813. data/lib/mikunyan/typetrees/b7b8ff0c7ec96a3bd77eabf9525d4f06.dat +0 -0
  814. data/lib/mikunyan/typetrees/b7d7910ac57c74d889686f738faa2129.dat +0 -0
  815. data/lib/mikunyan/typetrees/b7e5c868b4ec8e08bd3742a41789553f.dat +0 -0
  816. data/lib/mikunyan/typetrees/b927314c9878d83dca779ce9d6fc4903.dat +0 -0
  817. data/lib/mikunyan/typetrees/b9505154d75e141fc175dd698fcd1cef.dat +0 -0
  818. data/lib/mikunyan/typetrees/b97c898309dcb4b179b92f5dd4a828aa.dat +0 -0
  819. data/lib/mikunyan/typetrees/b980908065249a4bec8305d81d7ac7b7.dat +0 -0
  820. data/lib/mikunyan/typetrees/b9a41dcaf8b39c9e9f35bd4213787e0c.dat +0 -0
  821. data/lib/mikunyan/typetrees/ba1996aca11b1fbb146d9b0b3d8655ad.dat +0 -0
  822. data/lib/mikunyan/typetrees/ba26d1ee9f8242f4e94643f714aa18e1.dat +0 -0
  823. data/lib/mikunyan/typetrees/ba47ad58f6906c6bfe5bbf2de86de146.dat +0 -0
  824. data/lib/mikunyan/typetrees/ba716592649b6cfbc9f19c254a4d4517.dat +0 -0
  825. data/lib/mikunyan/typetrees/bb85fb2b191dd4282476910c85388c01.dat +0 -0
  826. data/lib/mikunyan/typetrees/bbd1f586c5ef70e20cb22656e8ce820b.dat +0 -0
  827. data/lib/mikunyan/typetrees/bc40049689b7cec9aa3d55e2ea8de2cf.dat +0 -0
  828. data/lib/mikunyan/typetrees/bc44f3fd1f7a53385f632e6a3ddb1713.dat +0 -0
  829. data/lib/mikunyan/typetrees/bc55158477811012972fb0d4b572d900.dat +0 -0
  830. data/lib/mikunyan/typetrees/bc6a0079c1aaf2c88aa0baef8cafb07b.dat +0 -0
  831. data/lib/mikunyan/typetrees/bc6ec2e437d1c2fdf300138d6cd908c4.dat +0 -0
  832. data/lib/mikunyan/typetrees/bcbec448e806266dcc4c28030f3860f1.dat +0 -0
  833. data/lib/mikunyan/typetrees/bcdcbeafe799355f39a43b263d10389b.dat +0 -0
  834. data/lib/mikunyan/typetrees/bd08188c47e3a9732b1233b9979acead.dat +0 -0
  835. data/lib/mikunyan/typetrees/bd3e65b436ca9bddcf08b9369dc166c9.dat +0 -0
  836. data/lib/mikunyan/typetrees/bd9937fc95c43ace4f598498922efdf4.dat +0 -0
  837. data/lib/mikunyan/typetrees/bda8c24186074c70bb3983fe48af6d0a.dat +0 -0
  838. data/lib/mikunyan/typetrees/bdad82ac8e818a48cc8c8c353fd1b232.dat +0 -0
  839. data/lib/mikunyan/typetrees/be2b49e54ae8d3aac75bd34a6d87e5e5.dat +0 -0
  840. data/lib/mikunyan/typetrees/be521590c2a7e119c31979e36c98789e.dat +0 -0
  841. data/lib/mikunyan/typetrees/be9c29138eea51e485e58ae7d0ee5eda.dat +0 -0
  842. data/lib/mikunyan/typetrees/bea7fa6dbf25a492093fec0b0b12c49f.dat +0 -0
  843. data/lib/mikunyan/typetrees/bea915a8ab3d9b55e80c969a22e692d3.dat +0 -0
  844. data/lib/mikunyan/typetrees/bf70bb56d86ace6047252688d663d8c4.dat +0 -0
  845. data/lib/mikunyan/typetrees/bf9dd695d7f2b4c1f07279f58362d4a5.dat +0 -0
  846. data/lib/mikunyan/typetrees/bfc41466cf63095c9a89e4defeea56f5.dat +0 -0
  847. data/lib/mikunyan/typetrees/c097c2178bc05715274a8513f32f5e2d.dat +0 -0
  848. data/lib/mikunyan/typetrees/c135fdff1ecf351ff2968c0c575a93fc.dat +0 -0
  849. data/lib/mikunyan/typetrees/c184743520186f546000de20f4d19736.dat +0 -0
  850. data/lib/mikunyan/typetrees/c1bd7854033214a22ac0e141089fbb2d.dat +0 -0
  851. data/lib/mikunyan/typetrees/c1e394cb8e3b83562307194fb6d429af.dat +0 -0
  852. data/lib/mikunyan/typetrees/c2c15e3018e440dfbc88ab67b75f4c1d.dat +0 -0
  853. data/lib/mikunyan/typetrees/c2ca897ba3f0d195562afbc35c837335.dat +0 -0
  854. data/lib/mikunyan/typetrees/c31b92b7eee9c5c57313fb562eba9dc2.dat +0 -0
  855. data/lib/mikunyan/typetrees/c3a49c5484231f188d2dbf0ce906983e.dat +0 -0
  856. data/lib/mikunyan/typetrees/c3a8bc8f5809ef66c48301555ad887c9.dat +0 -0
  857. data/lib/mikunyan/typetrees/c3bd45c36189c3769b3605e3e68074b6.dat +0 -0
  858. data/lib/mikunyan/typetrees/c3d60ce6816f9ca79e378c42fa1dce89.dat +0 -0
  859. data/lib/mikunyan/typetrees/c40f47d114996fd5b6fcad6dccf63698.dat +0 -0
  860. data/lib/mikunyan/typetrees/c42229e0ac25eba7b65d00c6bf5a14c4.dat +0 -0
  861. data/lib/mikunyan/typetrees/c45f92b4ac045c96d0360b5f6a3b1dc4.dat +0 -0
  862. data/lib/mikunyan/typetrees/c4aa8047d41bec5b2fa0fafd4d334064.dat +0 -0
  863. data/lib/mikunyan/typetrees/c4c62993971a4c233bae8f8954b4509c.dat +0 -0
  864. data/lib/mikunyan/typetrees/c545e03ac5b8e05354a606a32d652451.dat +0 -0
  865. data/lib/mikunyan/typetrees/c58ca61dd3a7ba754ce32006f4824d1c.dat +0 -0
  866. data/lib/mikunyan/typetrees/c593e13a55803ee78c43e19ed6675bcb.dat +0 -0
  867. data/lib/mikunyan/typetrees/c63da93518d9d5df594b4099f3e01567.dat +0 -0
  868. data/lib/mikunyan/typetrees/c65c019fd81d3915b9a3c8051b15953f.dat +0 -0
  869. data/lib/mikunyan/typetrees/c714531f729b9151841641b4bdd70994.dat +0 -0
  870. data/lib/mikunyan/typetrees/c8300105c5f2c3f44c2e11603f5ed908.dat +0 -0
  871. data/lib/mikunyan/typetrees/c838052a240cb84f4f6e2439f5bbdc53.dat +0 -0
  872. data/lib/mikunyan/typetrees/c91cee33fcf7382fead17e755bd7d40c.dat +0 -0
  873. data/lib/mikunyan/typetrees/c9531c7582f449d66888b906ac3c1d52.dat +0 -0
  874. data/lib/mikunyan/typetrees/c963ff70381de0acb5457051e36286c3.dat +0 -0
  875. data/lib/mikunyan/typetrees/c96a64061d3e391b7f3309bd4a644969.dat +0 -0
  876. data/lib/mikunyan/typetrees/ca2b42eb4ee5875caf48adf3239dd23b.dat +0 -0
  877. data/lib/mikunyan/typetrees/caeb4cbab1b7b97f81befe2c8e3f8f3f.dat +0 -0
  878. data/lib/mikunyan/typetrees/cb2bfcd356194433b46de145d0dfc4d8.dat +0 -0
  879. data/lib/mikunyan/typetrees/cb419960ac03a9307354fbf2ad2bda01.dat +0 -0
  880. data/lib/mikunyan/typetrees/cba283a78b20bbd9f0dd18c977b69d8e.dat +0 -0
  881. data/lib/mikunyan/typetrees/cbd196f0addd9143d0c36315c3c00349.dat +0 -0
  882. data/lib/mikunyan/typetrees/cbd6b8b86e0d05798e704eb7c8fff126.dat +0 -0
  883. data/lib/mikunyan/typetrees/cc38b2aee76814e979699396b0a1cfdf.dat +0 -0
  884. data/lib/mikunyan/typetrees/cc8f6e05143e049494c7eac0553f3883.dat +0 -0
  885. data/lib/mikunyan/typetrees/ccafc28ff2fb62c0cdf1694dddad079b.dat +0 -0
  886. data/lib/mikunyan/typetrees/ccd083c7c396a7a74c669ea21372897b.dat +0 -0
  887. data/lib/mikunyan/typetrees/cd04f39396ad93511bc1502e8e00ebb4.dat +0 -0
  888. data/lib/mikunyan/typetrees/cd0b1e6d795a4dc2b94ed471a625657e.dat +0 -0
  889. data/lib/mikunyan/typetrees/cd1cec16765c251d9e919147cf6d75c7.dat +0 -0
  890. data/lib/mikunyan/typetrees/cd299f8158c5d24d299bc2279a86222d.dat +0 -0
  891. data/lib/mikunyan/typetrees/cd3b5a93c404b34df1fac33b45db8014.dat +0 -0
  892. data/lib/mikunyan/typetrees/cd7036db3b0bbff750fff707bdce6daf.dat +0 -0
  893. data/lib/mikunyan/typetrees/cdecd039c577a343625b366d85a65f6b.dat +0 -0
  894. data/lib/mikunyan/typetrees/cdf9eaa879b1eb8edb28e8d7fa3781ce.dat +0 -0
  895. data/lib/mikunyan/typetrees/ce791e8dc4d4746cf247a6ac354e6f3e.dat +0 -0
  896. data/lib/mikunyan/typetrees/ce9c15fa0aa98a21872deef3bb0abf34.dat +0 -0
  897. data/lib/mikunyan/typetrees/ceb5d2c8db7960822dc7d09aa88560e9.dat +0 -0
  898. data/lib/mikunyan/typetrees/cf068435a0d00c8aed4a68588d17d84d.dat +0 -0
  899. data/lib/mikunyan/typetrees/cfcb6a2bde1d6c4a4d79aeda69a03c07.dat +0 -0
  900. data/lib/mikunyan/typetrees/cfcf0bf1fa4aa6ec8af172c71511c4c5.dat +0 -0
  901. data/lib/mikunyan/typetrees/d09ffdff0a7e59357e132c6ae6fbc684.dat +0 -0
  902. data/lib/mikunyan/typetrees/d0c0ea0c6027a67ea3393d78532a38fb.dat +0 -0
  903. data/lib/mikunyan/typetrees/d19c5b14d3d7fe6cdbba6b28f26bc5f4.dat +0 -0
  904. data/lib/mikunyan/typetrees/d1e5ac65e1fefbcda6d8529c7ccda50b.dat +0 -0
  905. data/lib/mikunyan/typetrees/d2235066094fe1c59efb053510588202.dat +0 -0
  906. data/lib/mikunyan/typetrees/d2e60ea70fea8a46f75f8a0b79e37085.dat +0 -0
  907. data/lib/mikunyan/typetrees/d327ffd20422395c6d4d0c7a2c64a4a4.dat +0 -0
  908. data/lib/mikunyan/typetrees/d34b5033c863b49dfd4099d9f3e33fe3.dat +0 -0
  909. data/lib/mikunyan/typetrees/d3e0b0fbe2d0a17d3800a352918ab265.dat +0 -0
  910. data/lib/mikunyan/typetrees/d463e5d17a1b3f4e2e2f1eb758afc38e.dat +0 -0
  911. data/lib/mikunyan/typetrees/d49ddfcb81983289b99cecbffd99d8d2.dat +0 -0
  912. data/lib/mikunyan/typetrees/d4e580aaf357b26f4871f454ab582ad2.dat +0 -0
  913. data/lib/mikunyan/typetrees/d50ed13362e98df8096b2f735131fce5.dat +0 -0
  914. data/lib/mikunyan/typetrees/d5b7bfdef1a7f9dcf49d5de2c66fb8fd.dat +0 -0
  915. data/lib/mikunyan/typetrees/d5d86f79c1252a3e0a705f20245b62b8.dat +0 -0
  916. data/lib/mikunyan/typetrees/d5e4d09396f117b44668f6c8641951fc.dat +0 -0
  917. data/lib/mikunyan/typetrees/d618295bd5f15441b5b80b1f57e92d09.dat +0 -0
  918. data/lib/mikunyan/typetrees/d624d87c75f079cf5797d57ac192e10d.dat +0 -0
  919. data/lib/mikunyan/typetrees/d666be4e5ffab140996a508b8f06b603.dat +0 -0
  920. data/lib/mikunyan/typetrees/d677ef142571961a07528e617aae530a.dat +0 -0
  921. data/lib/mikunyan/typetrees/d67a1e2b0bd2c0b45c1a642fa73fd86e.dat +0 -0
  922. data/lib/mikunyan/typetrees/d6b5627bef78f5332bb56ae8c96f34ab.dat +0 -0
  923. data/lib/mikunyan/typetrees/d6d471fc0db035cd0defecbfa79a4e28.dat +0 -0
  924. data/lib/mikunyan/typetrees/d77f09bf46daff2b01a707c22fcbc7ce.dat +0 -0
  925. data/lib/mikunyan/typetrees/d7aa5e4b473e8db1304692781a1f3b36.dat +0 -0
  926. data/lib/mikunyan/typetrees/d7beb51f676a59524f08312b07fa50f7.dat +0 -0
  927. data/lib/mikunyan/typetrees/d8082d7a3661a3f9ca00a93a61606585.dat +0 -0
  928. data/lib/mikunyan/typetrees/d8129cfedf80a401fc1b3ce0483b6193.dat +0 -0
  929. data/lib/mikunyan/typetrees/d819fe24897f62ed37bcd142f64cec80.dat +0 -0
  930. data/lib/mikunyan/typetrees/d82c324c1e384bdc4d7aabbdbf8dd810.dat +0 -0
  931. data/lib/mikunyan/typetrees/d871346d990bbc294d02f4c366bf1b6d.dat +0 -0
  932. data/lib/mikunyan/typetrees/d898fab65c5d063bc9112924123b5a04.dat +0 -0
  933. data/lib/mikunyan/typetrees/d8e8eeb43589ccd7019398e56f6c16b0.dat +0 -0
  934. data/lib/mikunyan/typetrees/d8f1b25bf145804bd41da2d64684d605.dat +0 -0
  935. data/lib/mikunyan/typetrees/d9333d68827fe2bdc8fa96fe1ce7999e.dat +0 -0
  936. data/lib/mikunyan/typetrees/d9b4fdc987ccf6d8f51cad51e0c670c6.dat +0 -0
  937. data/lib/mikunyan/typetrees/d9b73d39e28f3c5a204fa213d75eaea7.dat +0 -0
  938. data/lib/mikunyan/typetrees/da0763bf72eacb89ecd40739beb1ba31.dat +0 -0
  939. data/lib/mikunyan/typetrees/da3150094bf1eec8e02a26c939a77d05.dat +0 -0
  940. data/lib/mikunyan/typetrees/da594265aaa32ec1513c20e38a22fa2e.dat +0 -0
  941. data/lib/mikunyan/typetrees/da773af1b759eb7b7e78287900688f5d.dat +0 -0
  942. data/lib/mikunyan/typetrees/dad240b3d990c591b278699ec10e2713.dat +0 -0
  943. data/lib/mikunyan/typetrees/daea1bb1bba6613afb2cb001ca8fa0d4.dat +0 -0
  944. data/lib/mikunyan/typetrees/dafc7f89ba2f5601cd2526021334cfcd.dat +0 -0
  945. data/lib/mikunyan/typetrees/db088f9c2f2224da9f488879467856e5.dat +0 -0
  946. data/lib/mikunyan/typetrees/db262b9303bf96c55e2659bd9160e777.dat +0 -0
  947. data/lib/mikunyan/typetrees/db26e3ff617afe3cca8a02d00552384e.dat +0 -0
  948. data/lib/mikunyan/typetrees/dbc0e1ec44a805978e86400d908d4d5a.dat +0 -0
  949. data/lib/mikunyan/typetrees/dc20bb5dce8aed56990dd70f922fead8.dat +0 -0
  950. data/lib/mikunyan/typetrees/dc400e4ff2bb2f6cdca60904df0222f2.dat +0 -0
  951. data/lib/mikunyan/typetrees/dca16d4c10b4556ce0e9c6c86477b440.dat +0 -0
  952. data/lib/mikunyan/typetrees/dca74f64d0c6c5f509f6c2ce5004d66c.dat +0 -0
  953. data/lib/mikunyan/typetrees/dcc6d28c8eb43df915f267cc86333b22.dat +0 -0
  954. data/lib/mikunyan/typetrees/dccb16892b1b29f371d169ba3aadeb12.dat +0 -0
  955. data/lib/mikunyan/typetrees/dd60b1a6007dbd03008831cfd65e8022.dat +0 -0
  956. data/lib/mikunyan/typetrees/dd7e75f0d9d8a22fbe5235e6a80fc5ea.dat +0 -0
  957. data/lib/mikunyan/typetrees/dd8a8dc899d108bd73ea860b3c7b4b15.dat +0 -0
  958. data/lib/mikunyan/typetrees/ddb7ea81de202d2cefc209032a964347.dat +0 -0
  959. data/lib/mikunyan/typetrees/de60f732e8b03f6e641f80eccb420cce.dat +0 -0
  960. data/lib/mikunyan/typetrees/de8a0e72e5ae4d3290885d747ee2f795.dat +0 -0
  961. data/lib/mikunyan/typetrees/dedb7920e007cccc3ca975508f6311cd.dat +0 -0
  962. data/lib/mikunyan/typetrees/df01f78f4cb2cbed36b07db19999441e.dat +0 -0
  963. data/lib/mikunyan/typetrees/df2881fda3119da4394887df7b8e88de.dat +0 -0
  964. data/lib/mikunyan/typetrees/df50c70d41d6f24fa723847c2c7407f6.dat +0 -0
  965. data/lib/mikunyan/typetrees/df54f5406f3668f71b1ece65e3d4562f.dat +0 -0
  966. data/lib/mikunyan/typetrees/dfccf24e87b7a76d31300cfce8a0c8c3.dat +0 -0
  967. data/lib/mikunyan/typetrees/dff9668a0370d6e3f16d48d636add5bf.dat +0 -0
  968. data/lib/mikunyan/typetrees/e03bc577acb91ed2706fbeb58f51241a.dat +0 -0
  969. data/lib/mikunyan/typetrees/e0cc825cdb14661932d6c4bf8eeb597a.dat +0 -0
  970. data/lib/mikunyan/typetrees/e0da148901d81b94249c67d75de59cc6.dat +0 -0
  971. data/lib/mikunyan/typetrees/e13585c1bbc23c440db580ed3d0362dd.dat +0 -0
  972. data/lib/mikunyan/typetrees/e1931794ed428aa347fe3d987a8b5e6d.dat +0 -0
  973. data/lib/mikunyan/typetrees/e1e986a1b885972b1ff7b6905a2afbea.dat +0 -0
  974. data/lib/mikunyan/typetrees/e232e87951beb0fc3097191cb5aa968f.dat +0 -0
  975. data/lib/mikunyan/typetrees/e241f28178d3e724ea66416e5fe2736e.dat +0 -0
  976. data/lib/mikunyan/typetrees/e28c7475d2cb1a19cc7d210255f13d9a.dat +0 -0
  977. data/lib/mikunyan/typetrees/e28e40019ee35b908e56695a08f3c2dd.dat +0 -0
  978. data/lib/mikunyan/typetrees/e2dc296f9670fe78e3841d5fb16526f9.dat +0 -0
  979. data/lib/mikunyan/typetrees/e35dc2334427143c92b135fe05dc7499.dat +0 -0
  980. data/lib/mikunyan/typetrees/e4184d1639fc6d9a8101b66019fdb80b.dat +0 -0
  981. data/lib/mikunyan/typetrees/e42d5322b636717b1e982e6b9c08157e.dat +0 -0
  982. data/lib/mikunyan/typetrees/e4de96c0565383286459bb71ac3d4b85.dat +0 -0
  983. data/lib/mikunyan/typetrees/e5c6784d6aabe45f9896a4e094d5d72d.dat +0 -0
  984. data/lib/mikunyan/typetrees/e5f032f87a6e3b55a01f41073c64f14c.dat +0 -0
  985. data/lib/mikunyan/typetrees/e5f31cd4b52fedfd9e332593b92efbf2.dat +0 -0
  986. data/lib/mikunyan/typetrees/e605ecd82fcbccc59af10e5c18e21be0.dat +0 -0
  987. data/lib/mikunyan/typetrees/e66580394f7a6f4e216dbea294359b03.dat +0 -0
  988. data/lib/mikunyan/typetrees/e684e7e25dd1208ec3941c7772968ada.dat +0 -0
  989. data/lib/mikunyan/typetrees/e6b0a13d67395893ae32d073391c98af.dat +0 -0
  990. data/lib/mikunyan/typetrees/e6ccb0d2545a8b68470d8d4d75d1f393.dat +0 -0
  991. data/lib/mikunyan/typetrees/e70da99ccfbec08ec2d115a9f0ef2fd5.dat +0 -0
  992. data/lib/mikunyan/typetrees/e7920ac1d49d79dc3f687686799e0ecb.dat +0 -0
  993. data/lib/mikunyan/typetrees/e7c5c01b0369574e9346ce846e1e8e63.dat +0 -0
  994. data/lib/mikunyan/typetrees/e81731c627c30de466ff682b23d7c632.dat +0 -0
  995. data/lib/mikunyan/typetrees/e82f8100e40450d13763382e74934faa.dat +0 -0
  996. data/lib/mikunyan/typetrees/e8745221bf0bd118c59f77acbe2de613.dat +0 -0
  997. data/lib/mikunyan/typetrees/e8dfd8445172115d9ccd6f118c1beaef.dat +0 -0
  998. data/lib/mikunyan/typetrees/e913b190fb6ca58cd5cbb51754561bd1.dat +0 -0
  999. data/lib/mikunyan/typetrees/e91d61574d8fb627100d63a6ad9bfcab.dat +0 -0
  1000. data/lib/mikunyan/typetrees/e95f93e7dffba80b23fbc5b44496b51e.dat +0 -0
  1001. data/lib/mikunyan/typetrees/e96e85f943700fbdb57bb61d19aa730d.dat +0 -0
  1002. data/lib/mikunyan/typetrees/e9c3c929e25ebe9de9505392a9426ec4.dat +0 -0
  1003. data/lib/mikunyan/typetrees/e9f83061bf74a880b666d0539803c172.dat +0 -0
  1004. data/lib/mikunyan/typetrees/ea9335449f130234d8486da657354acd.dat +0 -0
  1005. data/lib/mikunyan/typetrees/eaf04b5cbffbbebfe7fe8a866f5ed3e3.dat +0 -0
  1006. data/lib/mikunyan/typetrees/eb2806c128b82c691ff963bc0fa37038.dat +0 -0
  1007. data/lib/mikunyan/typetrees/eb4711bbcbb00a279d29cd0cb734f6f1.dat +0 -0
  1008. data/lib/mikunyan/typetrees/eb4bb38a272b5d85f159bc696932c343.dat +0 -0
  1009. data/lib/mikunyan/typetrees/eb5cf6f66af0538b78f704b634162faa.dat +0 -0
  1010. data/lib/mikunyan/typetrees/eb5e2816cebf56985ba81ee03349f325.dat +0 -0
  1011. data/lib/mikunyan/typetrees/eb86f10c75a157897597106e42951b00.dat +0 -0
  1012. data/lib/mikunyan/typetrees/eba8e3a474fde830eedf44a13f03493b.dat +0 -0
  1013. data/lib/mikunyan/typetrees/ebc5a7a5411c30dea91bd80b1fcb71dd.dat +0 -0
  1014. data/lib/mikunyan/typetrees/ebd4d04d411da3b590de51463d7584f6.dat +0 -0
  1015. data/lib/mikunyan/typetrees/ec25d4a542c858ee7230bd1ff1768977.dat +0 -0
  1016. data/lib/mikunyan/typetrees/ec6c2973d8ad71bc666598added919e2.dat +0 -0
  1017. data/lib/mikunyan/typetrees/eca5aeef2c82a4fdf70258dadca6323a.dat +0 -0
  1018. data/lib/mikunyan/typetrees/ed16c17652451d76127c1d415347ed23.dat +0 -0
  1019. data/lib/mikunyan/typetrees/ed679b72116efeb79d041d5e3dee85ca.dat +0 -0
  1020. data/lib/mikunyan/typetrees/ed76a79b75aebeb69ee5ad327b2c26d5.dat +0 -0
  1021. data/lib/mikunyan/typetrees/ee8f51d166e4c36c87fa7528d9466862.dat +0 -0
  1022. data/lib/mikunyan/typetrees/eebf7a0e1e861754c32f9d1e60da7441.dat +0 -0
  1023. data/lib/mikunyan/typetrees/eef9fa4e8d272cd355b412791b976ddc.dat +0 -0
  1024. data/lib/mikunyan/typetrees/ef03a9a9742d133cf3384f086e38d520.dat +0 -0
  1025. data/lib/mikunyan/typetrees/ef442cab6e5b2a46e824bfc89123f18d.dat +0 -0
  1026. data/lib/mikunyan/typetrees/f096c494641d018027771df703dae7e6.dat +0 -0
  1027. data/lib/mikunyan/typetrees/f0b195f17349096039608cb289e89556.dat +0 -0
  1028. data/lib/mikunyan/typetrees/f0c6a3bed58042425e17e3588613bb51.dat +0 -0
  1029. data/lib/mikunyan/typetrees/f0dca30b01b82a4ab96277658e0d881b.dat +0 -0
  1030. data/lib/mikunyan/typetrees/f0e0e320fc2816897ac3195551d8e4c5.dat +0 -0
  1031. data/lib/mikunyan/typetrees/f0e3106a5e7d38edfe031abc0c11ce2a.dat +0 -0
  1032. data/lib/mikunyan/typetrees/f123b055a61dfa7dc679d78cdaecd383.dat +0 -0
  1033. data/lib/mikunyan/typetrees/f18647acbd67659ea3f45a97872f757b.dat +0 -0
  1034. data/lib/mikunyan/typetrees/f1d3f171c0a6aa755d45ffe681516b65.dat +0 -0
  1035. data/lib/mikunyan/typetrees/f2357d4424504d3797409ff6565e8e68.dat +0 -0
  1036. data/lib/mikunyan/typetrees/f262f66cbdb4e8ec53bc0c21902fff33.dat +0 -0
  1037. data/lib/mikunyan/typetrees/f26318c9a762d9dfe2990bc5c55b5210.dat +0 -0
  1038. data/lib/mikunyan/typetrees/f284abb6f2df17ebedae2b6b50436810.dat +0 -0
  1039. data/lib/mikunyan/typetrees/f2962bad2e61ec5e86287cfa284af6b4.dat +0 -0
  1040. data/lib/mikunyan/typetrees/f2f0f99209263f27fcf761c6c20c5f2a.dat +0 -0
  1041. data/lib/mikunyan/typetrees/f334a53f9a22db7ab446d9e59e60e53f.dat +0 -0
  1042. data/lib/mikunyan/typetrees/f3998c4215bd94309ae5a56c52838094.dat +0 -0
  1043. data/lib/mikunyan/typetrees/f42ed84d2873663c47f7c18efd8435c2.dat +0 -0
  1044. data/lib/mikunyan/typetrees/f46f884b442e214dc17a8df302020320.dat +0 -0
  1045. data/lib/mikunyan/typetrees/f532b7426ff24ff9247beee7720e3f42.dat +0 -0
  1046. data/lib/mikunyan/typetrees/f54f7f1d24fb230b26b5fcfdf259cbe5.dat +0 -0
  1047. data/lib/mikunyan/typetrees/f560c0e71bafc0222f509e6af590fed6.dat +0 -0
  1048. data/lib/mikunyan/typetrees/f5b27e405af2e548e271d0f29a4fc21c.dat +0 -0
  1049. data/lib/mikunyan/typetrees/f5b5fea04cce293cc62cf0f76ec5de49.dat +0 -0
  1050. data/lib/mikunyan/typetrees/f5b73814acb8f989f4895cdcf9e3adfe.dat +0 -0
  1051. data/lib/mikunyan/typetrees/f615a0c0f5849665cedca12a8fd64020.dat +0 -0
  1052. data/lib/mikunyan/typetrees/f628e2d5cd5f7460380920e45b6a9266.dat +0 -0
  1053. data/lib/mikunyan/typetrees/f6718cde49aeab7f67aefb7da858bbab.dat +0 -0
  1054. data/lib/mikunyan/typetrees/f6ac78e7f50065f7c64f720fdeaa9390.dat +0 -0
  1055. data/lib/mikunyan/typetrees/f6cd0e46d404dd7cbd7ad89ae2a4d7a9.dat +0 -0
  1056. data/lib/mikunyan/typetrees/f7ea57efda613d6963a53144446638cf.dat +0 -0
  1057. data/lib/mikunyan/typetrees/f7f1afe8ae04ddc34d023a09ed279e8d.dat +0 -0
  1058. data/lib/mikunyan/typetrees/f811a923135bc4ee86dd31237b2ab06a.dat +0 -0
  1059. data/lib/mikunyan/typetrees/f8377d7fe2ca5564e137d9f82a5b7fe5.dat +0 -0
  1060. data/lib/mikunyan/typetrees/f83f9a801dfbac3b28bcee57ff29182f.dat +0 -0
  1061. data/lib/mikunyan/typetrees/f92d618c5266ea3a8ca770b6eca728c8.dat +0 -0
  1062. data/lib/mikunyan/typetrees/f983b0102ccb04ded5fd745943e862be.dat +0 -0
  1063. data/lib/mikunyan/typetrees/f9a5bbb8c5391b4f94fc32542ab1f981.dat +0 -0
  1064. data/lib/mikunyan/typetrees/faa71a41455d0e928529ff5b0b036af3.dat +0 -0
  1065. data/lib/mikunyan/typetrees/fab5d0fd4c471ada3931c6ec7cf983ec.dat +0 -0
  1066. data/lib/mikunyan/typetrees/fab9ae76e42df0fda7b88a0b103ac202.dat +0 -0
  1067. data/lib/mikunyan/typetrees/face58ace35dbc4d23883cc9f9625a4f.dat +0 -0
  1068. data/lib/mikunyan/typetrees/fad2d0a58e9174708176102b418facf1.dat +0 -0
  1069. data/lib/mikunyan/typetrees/faf23bf08eb2a9759598748b2ed55c7a.dat +0 -0
  1070. data/lib/mikunyan/typetrees/fb0635f60817266fc2448281f0e1bf8e.dat +0 -0
  1071. data/lib/mikunyan/typetrees/fb734904d47701a0f2042181d6018c2f.dat +0 -0
  1072. data/lib/mikunyan/typetrees/fbc6f8d82d3c39fe76174186e3b47e3b.dat +0 -0
  1073. data/lib/mikunyan/typetrees/fbf6b031c32e461ee61be429e5fee7eb.dat +0 -0
  1074. data/lib/mikunyan/typetrees/fc3125dbdb8e1f0607d135c1ae3414cb.dat +0 -0
  1075. data/lib/mikunyan/typetrees/fc4d5e15f8c386c584aba84f72df32a6.dat +0 -0
  1076. data/lib/mikunyan/typetrees/fccd9eb5f018e78d8dca6e9a2b63d656.dat +0 -0
  1077. data/lib/mikunyan/typetrees/fcd09d1b65ada0699f1ee9ef752d98bb.dat +0 -0
  1078. data/lib/mikunyan/typetrees/fce816c697c05580074a53812ffb4d26.dat +0 -0
  1079. data/lib/mikunyan/typetrees/fcf3c3ff8300095cad677c7d6fcad3c1.dat +0 -0
  1080. data/lib/mikunyan/typetrees/fd27a2cde103557bda73e902a622cd9d.dat +0 -0
  1081. data/lib/mikunyan/typetrees/fd6f5cd3c75d7a3b4be7ca15f4d7ae9e.dat +0 -0
  1082. data/lib/mikunyan/typetrees/fd961e9e4f3f3e5a32d3a30299105968.dat +0 -0
  1083. data/lib/mikunyan/typetrees/fdd42e830fb415af977c2b2222b5d948.dat +0 -0
  1084. data/lib/mikunyan/typetrees/fe0412c56eaa9e664d20b9ae98864e48.dat +0 -0
  1085. data/lib/mikunyan/typetrees/fe3443710f1e93ed0fdb39a499dcad2e.dat +0 -0
  1086. data/lib/mikunyan/typetrees/fe69769eea751f4dae4470a2d2a4f033.dat +0 -0
  1087. data/lib/mikunyan/typetrees/fe94ca842ca0f4d66581e7d021fc5445.dat +0 -0
  1088. data/lib/mikunyan/typetrees/feb462635cb14d7fc886781f76647359.dat +0 -0
  1089. data/lib/mikunyan/typetrees/febce05d662e846d44276cb3ead554a9.dat +0 -0
  1090. data/lib/mikunyan/typetrees/fefc3f27b196eb018086c22cba376f75.dat +0 -0
  1091. data/lib/mikunyan/typetrees/ff001a2e51937aa5add9eaf9cd3d8ae4.dat +0 -0
  1092. data/lib/mikunyan/typetrees/ff382d6c2780a3e68481688cce904104.dat +0 -0
  1093. data/lib/mikunyan/typetrees/ff3a8cf3da343f8722464c416e3479ee.dat +0 -0
  1094. data/lib/mikunyan/typetrees/ff8fa01e9243c910f7d7301b7586a1b1.dat +0 -0
  1095. data/lib/mikunyan/typetrees/ffdc51773b4c4ce79ff982449bbbabff.dat +0 -0
  1096. data/lib/mikunyan/typetrees/ffe1577ae998664adc2a48d23e3af64e.dat +0 -0
@@ -3,6 +3,6 @@
3
3
 
4
4
  #include <stdint.h>
5
5
 
6
- void decode_astc(const uint8_t*, const int, const int, const int, const int, uint32_t*);
6
+ int decode_astc(const uint8_t *, const long, const long, const int, const int, uint32_t *);
7
7
 
8
8
  #endif /* end of include guard: ASTC_H */
@@ -0,0 +1,87 @@
1
+ #ifndef COLOR_H
2
+ #define COLOR_H
3
+
4
+ #include <stdint.h>
5
+ #include <string.h>
6
+ #include "endianness.h"
7
+
8
+ #ifdef __LITTLE_ENDIAN__
9
+ static const uint_fast32_t TRANSPARENT_MASK = 0x00ffffff;
10
+ #else
11
+ static const uint_fast32_t TRANSPARENT_MASK = 0xffffff00;
12
+ #endif
13
+
14
+ static inline uint_fast32_t color(uint8_t r, uint8_t g, uint8_t b, uint8_t a) {
15
+ #ifdef __LITTLE_ENDIAN__
16
+ return r | g << 8 | b << 16 | a << 24;
17
+ #else
18
+ return a | b << 8 | g << 16 | r << 24;
19
+ #endif
20
+ }
21
+
22
+ static inline uint_fast32_t alpha_mask(uint8_t a) {
23
+ #ifdef __LITTLE_ENDIAN__
24
+ return TRANSPARENT_MASK | a << 24;
25
+ #else
26
+ return TRANSPARENT_MASK | a;
27
+ #endif
28
+ }
29
+
30
+ static inline void rgb565_le(const uint16_t d, uint8_t *r, uint8_t *g, uint8_t *b) {
31
+ #ifdef __LITTLE_ENDIAN__
32
+ *r = (d >> 8 & 0xf8) | (d >> 13);
33
+ *g = (d >> 3 & 0xfc) | (d >> 9 & 3);
34
+ *b = (d << 3) | (d >> 2 & 7);
35
+ #else
36
+ *r = (d & 0xf8) | (d >> 5 & 7);
37
+ *g = (d << 5 & 0xe0) | (d >> 11 & 0x1c) | (d >> 1 & 3);
38
+ *b = (d >> 5 & 0xf8) | (d >> 10 & 0x7);
39
+ #endif
40
+ }
41
+
42
+ static inline void rgb565_be(const uint16_t d, uint8_t *r, uint8_t *g, uint8_t *b) {
43
+ #ifdef __BIG_ENDIAN__
44
+ *r = (d >> 8 & 0xf8) | (d >> 13);
45
+ *g = (d >> 3 & 0xfc) | (d >> 9 & 3);
46
+ *b = (d << 3) | (d >> 2 & 7);
47
+ #else
48
+ *r = (d & 0xf8) | (d >> 5 & 7);
49
+ *g = (d << 5 & 0xe0) | (d >> 11 & 0x1c) | (d >> 1 & 3);
50
+ *b = (d >> 5 & 0xf8) | (d >> 10 & 0x7);
51
+ #endif
52
+ }
53
+
54
+ static inline void rgb565_lep(const uint16_t d, uint8_t *c) {
55
+ #ifdef __LITTLE_ENDIAN__
56
+ *(c++) = (d >> 8 & 0xf8) | (d >> 13);
57
+ *(c++) = (d >> 3 & 0xfc) | (d >> 9 & 3);
58
+ *(c++) = (d << 3) | (d >> 2 & 7);
59
+ #else
60
+ *(c++) = (d & 0xf8) | (d >> 5 & 7);
61
+ *(c++) = (d << 5 & 0xe0) | (d >> 11 & 0x1c) | (d >> 1 & 3);
62
+ *(c++) = (d >> 5 & 0xf8) | (d >> 10 & 0x7);
63
+ #endif
64
+ }
65
+
66
+ static inline void rgb565_bep(const uint16_t d, uint8_t *c) {
67
+ #ifdef __BIG_ENDIAN__
68
+ *(c++) = (d >> 8 & 0xf8) | (d >> 13);
69
+ *(c++) = (d >> 3 & 0xfc) | (d >> 9 & 3);
70
+ *(c++) = (d << 3) | (d >> 2 & 7);
71
+ #else
72
+ *(c++) = (d & 0xf8) | (d >> 5 & 7);
73
+ *(c++) = (d << 5 & 0xe0) | (d >> 11 & 0x1c) | (d >> 1 & 3);
74
+ *(c++) = (d >> 5 & 0xf8) | (d >> 10 & 0x7);
75
+ #endif
76
+ }
77
+
78
+ static inline void copy_block_buffer(const long bx, const long by, const long w, const long h, const long bw,
79
+ const long bh, const uint32_t *buffer, uint32_t *image) {
80
+ long x = bw * bx;
81
+ long xl = (bw * (bx + 1) > w ? w - bw * bx : bw) * 4;
82
+ const uint32_t *buffer_end = buffer + bw * bh;
83
+ for (long y = h - by * bh; buffer < buffer_end && y-- > 0; buffer += bw)
84
+ memcpy(image + y * w + x, buffer, xl);
85
+ }
86
+
87
+ #endif /* end of include guard: COLOR_H */
@@ -1,104 +1,77 @@
1
+ #include "dxtc.h"
1
2
  #include <stdint.h>
2
3
  #include <string.h>
3
- #include "dxtc.h"
4
-
5
- static inline uint_fast32_t color(uint_fast32_t r, uint_fast32_t g, uint_fast32_t b, uint_fast32_t a) {
6
- return r | g << 8 | b << 16 | a << 24;
7
- }
8
-
9
- static inline void rgb565(const uint_fast16_t c, int *r, int *g, int *b) {
10
- *r = (c & 0xf800) >> 8;
11
- *g = (c & 0x07e0) >> 3;
12
- *b = (c & 0x001f) << 3;
13
- *r |= *r >> 5;
14
- *g |= *g >> 6;
15
- *b |= *b >> 5;
16
- }
4
+ #include "color.h"
5
+ #include "endianness.h"
17
6
 
18
- static inline void decode_dxt1_block(const uint64_t *data, uint32_t *outbuf) {
19
- int r0, g0, b0, r1, g1, b1;
20
- int q0 = ((uint16_t*)data)[0];
21
- int q1 = ((uint16_t*)data)[1];
22
- rgb565(q0, &r0, &g0, &b0);
23
- rgb565(q1, &r1, &g1, &b1);
24
- uint_fast32_t c[4] = { color(r0, g0, b0, 255), color(r1, g1, b1, 255) };
7
+ static inline void decode_dxt1_block(const uint8_t *data, uint32_t *outbuf) {
8
+ uint8_t r0, g0, b0, r1, g1, b1;
9
+ int q0 = *(uint16_t *)(data);
10
+ int q1 = *(uint16_t *)(data + 2);
11
+ rgb565_le(q0, &r0, &g0, &b0);
12
+ rgb565_le(q1, &r1, &g1, &b1);
13
+ uint_fast32_t c[4] = {color(r0, g0, b0, 255), color(r1, g1, b1, 255)};
25
14
  if (q0 > q1) {
26
15
  c[2] = color((r0 * 2 + r1) / 3, (g0 * 2 + g1) / 3, (b0 * 2 + b1) / 3, 255);
27
16
  c[3] = color((r0 + r1 * 2) / 3, (g0 + g1 * 2) / 3, (b0 + b1 * 2) / 3, 255);
28
17
  } else {
29
18
  c[2] = color((r0 + r1) / 2, (g0 + g1) / 2, (b0 + b1) / 2, 255);
19
+ c[3] = color(0, 0, 0, 255);
30
20
  }
31
- uint_fast32_t d = *data >> 32;
21
+ uint_fast32_t d = lton32(*(uint32_t *)(data + 4));
32
22
  for (int i = 0; i < 16; i++, d >>= 2)
33
23
  outbuf[i] = c[d & 3];
34
24
  }
35
25
 
36
- void decode_dxt1(const uint64_t *data, const int w, const int h, uint32_t *image) {
37
- int bcw = (w + 3) / 4;
38
- int bch = (h + 3) / 4;
39
- int clen_last = (w + 3) % 4 + 1;
40
- uint32_t buf[16];
41
- const uint64_t *d = data;
42
- for (int t = 0; t < bch; t++) {
43
- for (int s = 0; s < bcw; s++, d++) {
44
- decode_dxt1_block(d, buf);
45
- int clen = (s < bcw - 1 ? 4 : clen_last) * 4;
46
- for (int i = 0, y = h - t * 4 - 1; i < 4 && y >= 0; i++, y--)
47
- memcpy(image + y * w + s * 4, buf + i * 4, clen);
26
+ int decode_dxt1(const uint8_t *data, const long w, const long h, uint32_t *image) {
27
+ long num_blocks_x = (w + 3) / 4;
28
+ long num_blocks_y = (h + 3) / 4;
29
+ uint32_t buffer[16];
30
+ const uint8_t *d = data;
31
+ for (long by = 0; by < num_blocks_y; by++) {
32
+ for (long bx = 0; bx < num_blocks_x; bx++, d += 8) {
33
+ decode_dxt1_block(d, buffer);
34
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
48
35
  }
49
36
  }
37
+ return 1;
50
38
  }
51
39
 
52
- static inline void decode_dxt5_block(const uint64_t *data, uint32_t *outbuf) {
53
- uint_fast32_t a[8] = { ((uint8_t*)data)[0], ((uint8_t*)data)[1] };
40
+ static inline void decode_dxt5_block(const uint8_t *data, uint32_t *outbuf) {
41
+ uint_fast32_t a[8] = {data[0], data[1]};
54
42
  if (a[0] > a[1]) {
55
- a[2] = (a[0] * 6 + a[1] ) / 7;
43
+ a[2] = (a[0] * 6 + a[1]) / 7;
56
44
  a[3] = (a[0] * 5 + a[1] * 2) / 7;
57
45
  a[4] = (a[0] * 4 + a[1] * 3) / 7;
58
46
  a[5] = (a[0] * 3 + a[1] * 4) / 7;
59
47
  a[6] = (a[0] * 2 + a[1] * 5) / 7;
60
- a[7] = (a[0] + a[1] * 6) / 7;
48
+ a[7] = (a[0] + a[1] * 6) / 7;
61
49
  } else {
62
- a[2] = (a[0] * 4 + a[1] ) / 5;
50
+ a[2] = (a[0] * 4 + a[1]) / 5;
63
51
  a[3] = (a[0] * 3 + a[1] * 2) / 5;
64
52
  a[4] = (a[0] * 2 + a[1] * 3) / 5;
65
- a[5] = (a[0] + a[1] * 4) / 5;
53
+ a[5] = (a[0] + a[1] * 4) / 5;
54
+ a[6] = 0;
66
55
  a[7] = 255;
67
56
  }
68
57
  for (int i = 0; i < 8; i++)
69
- a[i] <<= 24;
70
-
71
- int r0, g0, b0, r1, g1, b1;
72
- int q0 = ((uint16_t*)(data + 1))[0];
73
- int q1 = ((uint16_t*)(data + 1))[1];
74
- rgb565(q0, &r0, &g0, &b0);
75
- rgb565(q1, &r1, &g1, &b1);
76
- uint_fast32_t c[4] = { color(r0, g0, b0, 0), color(r1, g1, b1, 0) };
77
- if (q0 > q1) {
78
- c[2] = color((r0 * 2 + r1) / 3, (g0 * 2 + g1) / 3, (b0 * 2 + b1) / 3, 0);
79
- c[3] = color((r0 + r1 * 2) / 3, (g0 + g1 * 2) / 3, (b0 + b1 * 2) / 3, 0);
80
- } else {
81
- c[2] = color((r0 + r1) / 2, (g0 + g1) / 2, (b0 + b1) / 2, 0);
82
- }
83
-
84
- uint_fast64_t da = *data >> 16;
85
- uint_fast32_t dc = *(data + 1) >> 32;
86
- for (int i = 0; i < 16; i++, da >>= 3, dc >>= 2)
87
- outbuf[i] = a[da & 7] | c[dc & 3];
58
+ a[i] = alpha_mask(a[i]);
59
+ decode_dxt1_block(data + 8, outbuf);
60
+ uint_fast64_t d = lton64(*(uint64_t *)data) >> 16;
61
+ for (int i = 0; i < 16; i++, d >>= 3)
62
+ outbuf[i] &= a[d & 7];
88
63
  }
89
64
 
90
- void decode_dxt5(const uint64_t *data, const int w, const int h, uint32_t *image) {
91
- int bcw = (w + 3) / 4;
92
- int bch = (h + 3) / 4;
93
- int clen_last = (w + 3) % 4 + 1;
94
- uint32_t buf[16];
95
- const uint64_t *d = data;
96
- for (int t = 0; t < bch; t++) {
97
- for (int s = 0; s < bcw; s++, d += 2) {
98
- decode_dxt5_block(d, buf);
99
- int clen = (s < bcw - 1 ? 4 : clen_last) * 4;
100
- for (int i = 0, y = h - t * 4 - 1; i < 4 && y >= 0; i++, y--)
101
- memcpy(image + y * w + s * 4, buf + i * 4, clen);
65
+ int decode_dxt5(const uint8_t *data, const long w, const long h, uint32_t *image) {
66
+ long num_blocks_x = (w + 3) / 4;
67
+ long num_blocks_y = (h + 3) / 4;
68
+ uint32_t buffer[16];
69
+ const uint8_t *d = data;
70
+ for (long by = 0; by < num_blocks_y; by++) {
71
+ for (long bx = 0; bx < num_blocks_x; bx++, d += 16) {
72
+ decode_dxt5_block(d, buffer);
73
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
102
74
  }
103
75
  }
76
+ return 1;
104
77
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
  #include <stdint.h>
5
5
 
6
- void decode_dxt1(const uint64_t*, const int, const int, uint32_t*);
7
- void decode_dxt5(const uint64_t*, const int, const int, uint32_t*);
6
+ int decode_dxt1(const uint8_t *, const long, const long, uint32_t *);
7
+ int decode_dxt5(const uint8_t *, const long, const long, uint32_t *);
8
8
 
9
9
  #endif /* end of include guard: DXTC_H */
@@ -0,0 +1,180 @@
1
+ /*
2
+ *
3
+ * License Information
4
+ *
5
+ * endianness.h is derived from https://gist.github.com/jtbr/7a43e6281e6cca353b33ee501421860c
6
+ * The file is licensed under the MIT License shown below.
7
+ *
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
12
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
13
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
14
+ * permit persons to whom the Software is furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
17
+ * Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
20
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
21
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+
26
+ #ifndef _ENDIANNESS_H
27
+ #define _ENDIANNESS_H
28
+
29
+ #include <stdlib.h>
30
+ #include <stdint.h>
31
+
32
+ /* Detect platform endianness at compile time */
33
+
34
+ // If boost were available on all platforms, could use this instead to detect endianness
35
+ // #include <boost/predef/endian.h>
36
+
37
+ // When available, these headers can improve platform endianness detection
38
+ #ifdef __has_include // C++17, supported as extension to C++11 in clang, GCC 5+, vs2015
39
+ #if __has_include(<endian.h>)
40
+ #include <endian.h> // gnu libc normally provides, linux
41
+ #elif __has_include(<machine/endian.h>)
42
+ #include <machine/endian.h> //open bsd, macos
43
+ #elif __has_include(<sys/param.h>)
44
+ #include <sys/param.h> // mingw, some bsd (not open/macos)
45
+ #elif __has_include(<sys/isadefs.h>)
46
+ #include <sys/isadefs.h> // solaris
47
+ #endif
48
+ #endif
49
+
50
+ #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
51
+ #if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) || \
52
+ (defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN) || (defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN) || \
53
+ (defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN) || (defined(__sun) && defined(__SVR4) && defined(_BIG_ENDIAN)) || \
54
+ defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || defined(_MIBSEB) || defined(__MIBSEB) || \
55
+ defined(__MIBSEB__) || defined(_M_PPC)
56
+ #define __BIG_ENDIAN__
57
+ #elif (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || /* gcc */ \
58
+ (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) /* linux header */ || \
59
+ (defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN) || \
60
+ (defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN) /* mingw header */ || \
61
+ (defined(__sun) && defined(__SVR4) && defined(_LITTLE_ENDIAN)) || /* solaris */ \
62
+ defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || defined(__MIPSEL) || \
63
+ defined(__MIPSEL__) || defined(_M_IX86) || defined(_M_X64) || defined(_M_IA64) || /* msvc for intel processors */ \
64
+ defined(_M_ARM) /* msvc code on arm executes in little endian mode */
65
+ #define __LITTLE_ENDIAN__
66
+ #endif
67
+ #endif
68
+
69
+ #ifdef bswap16
70
+ #undef bswap16
71
+ #endif
72
+ #ifdef bswap32
73
+ #undef bswap32
74
+ #endif
75
+ #ifdef bswap64
76
+ #undef bswap64
77
+ #endif
78
+
79
+ /* Define byte-swap functions, using fast processor-native built-ins where possible */
80
+ // needs to be first because msvc doesn't short-circuit after failing defined(__has_builtin)
81
+ #if defined(_MSC_VER)
82
+ #define bswap16(x) _byteswap_ushort((x))
83
+ #define bswap32(x) _byteswap_ulong((x))
84
+ #define bswap64(x) _byteswap_uint64((x))
85
+ #elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
86
+ #define bswap16(x) __builtin_bswap16((x))
87
+ #define bswap32(x) __builtin_bswap32((x))
88
+ #define bswap64(x) __builtin_bswap64((x))
89
+ #elif defined(__has_builtin) && __has_builtin(__builtin_bswap64)
90
+ /* for clang; gcc 5 fails on this and && shortcircuit fails; must be after GCC check */
91
+ #define bswap16(x) __builtin_bswap16((x))
92
+ #define bswap32(x) __builtin_bswap32((x))
93
+ #define bswap64(x) __builtin_bswap64((x))
94
+ #else
95
+ /* even in this case, compilers often optimize by using native instructions */
96
+ static inline uint16_t bswap16(uint16_t x) {
97
+ return (((x >> 8) & 0xffu) | ((x & 0xffu) << 8));
98
+ }
99
+ static inline uint32_t bswap32(uint32_t x) {
100
+ return (((x & 0xff000000u) >> 24) | ((x & 0x00ff0000u) >> 8) | ((x & 0x0000ff00u) << 8) |
101
+ ((x & 0x000000ffu) << 24));
102
+ }
103
+ static inline uint64_t bswap64(uint64_t x) {
104
+ return (((x & 0xff00000000000000ull) >> 56) | ((x & 0x00ff000000000000ull) >> 40) |
105
+ ((x & 0x0000ff0000000000ull) >> 24) | ((x & 0x000000ff00000000ull) >> 8) |
106
+ ((x & 0x00000000ff000000ull) << 8) | ((x & 0x0000000000ff0000ull) << 24) |
107
+ ((x & 0x000000000000ff00ull) << 40) | ((x & 0x00000000000000ffull) << 56));
108
+ }
109
+ #endif
110
+
111
+
112
+ /* Defines network - host byte swaps as needed depending upon platform endianness */
113
+ // note that network order is big endian)
114
+
115
+ #if defined(__LITTLE_ENDIAN__)
116
+ #define ntoh16(x) bswap16((x))
117
+ #define hton16(x) bswap16((x))
118
+ #define ntoh32(x) bswap32((x))
119
+ #define hton32(x) bswap32((x))
120
+ #define ntoh64(x) bswap64((x))
121
+ #define hton64(x) bswap64((x))
122
+ #define lton16(x) (x)
123
+ #define lton32(x) (x)
124
+ #define lton64(x) (x)
125
+ #define ltonf(x) (x)
126
+ #define ltond(x) (x)
127
+ #define bton16(x) bswap16((x))
128
+ #define bton32(x) bswap32((x))
129
+ #define bton64(x) bswap64((x))
130
+ #define btonf(x) htonf((x))
131
+ #define btond(x) htond((x))
132
+ #elif defined(__BIG_ENDIAN__)
133
+ #define ntoh16(x) (x)
134
+ #define hton16(x) (x)
135
+ #define ntoh32(x) (x)
136
+ #define hton32(x) (x)
137
+ #define ntoh64(x) (x)
138
+ #define hton64(x) (x)
139
+ #define bton16(x) (x)
140
+ #define bton32(x) (x)
141
+ #define bton64(x) (x)
142
+ #define btonf(x) (x)
143
+ #define btond(x) (x)
144
+ #define lton16(x) bswap16((x))
145
+ #define lton32(x) bswap32((x))
146
+ #define lton64(x) bswap64((x))
147
+ #define ltonf(x) htonf((x))
148
+ #define ltond(x) htond((x))
149
+ #else
150
+ #warning "UNKNOWN Platform / endianness; network / host byte swaps not defined."
151
+ #endif
152
+
153
+
154
+ //! Convert 32-bit float from host to network byte order
155
+ static inline float htonf(float f) {
156
+ #ifdef __cplusplus
157
+ static_assert(sizeof(float) == sizeof(uint32_t), "Unexpected float format");
158
+ uint32_t val = hton32(*(reinterpret_cast<const uint32_t *>(&f)));
159
+ return *(reinterpret_cast<float *>(&val));
160
+ #else
161
+ uint32_t val = hton32(*(const uint32_t *)(&f));
162
+ return *((float *)(&val));
163
+ #endif
164
+ }
165
+ #define ntohf(x) htonf((x))
166
+
167
+ //! Convert 64-bit double from host to network byte order
168
+ static inline double htond(double f) {
169
+ #ifdef __cplusplus
170
+ static_assert(sizeof(double) == sizeof(uint64_t), "Unexpected double format");
171
+ uint64_t val = hton64(*(reinterpret_cast<const uint64_t *>(&f)));
172
+ return *(reinterpret_cast<double *>(&val));
173
+ #else
174
+ uint64_t val = hton64(*(const uint64_t *)(&f));
175
+ return *((double *)(&val));
176
+ #endif
177
+ }
178
+ #define ntohd(x) htond((x))
179
+
180
+ #endif //_ENDIANNESS_H
@@ -1,34 +1,25 @@
1
+ #include "etc.h"
1
2
  #include <stdint.h>
2
3
  #include <string.h>
3
- #include "etc.h"
4
+ #include "color.h"
4
5
 
5
- uint_fast8_t WriteOrderTable[16] = { 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15 };
6
- uint_fast8_t WriteOrderTableRev[16] = { 15, 11, 7, 3, 14, 10, 6, 2, 13, 9, 5, 1, 12, 8, 4, 0 };
7
- uint_fast8_t Etc1ModifierTable[8][2] = {{2, 8}, {5, 17}, {9, 29}, {13, 42}, {18, 60}, {24, 80}, {33, 106}, {47, 183}};
8
- uint_fast8_t Etc1SubblockTable[2][16] = {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1}};
9
- uint_fast8_t Etc2DistanceTable[8] = {3, 6, 11, 16, 23, 32, 41, 64};
10
- int_fast8_t Etc2AlphaModTable[16][8] = {
11
- {-3, -6, -9, -15, 2, 5, 8, 14},
12
- {-3, -7, -10, -13, 2, 6, 9, 12},
13
- {-2, -5, -8, -13, 1, 4, 7, 12},
14
- {-2, -4, -6, -13, 1, 3, 5, 12},
15
- {-3, -6, -8, -12, 2, 5, 7, 11},
16
- {-3, -7, -9, -11, 2, 6, 8, 10},
17
- {-4, -7, -8, -11, 3, 6, 7, 10},
18
- {-3, -5, -8, -11, 2, 4, 7, 10},
19
- {-2, -6, -8, -10, 1, 5, 7, 9},
20
- {-2, -5, -8, -10, 1, 4, 7, 9},
21
- {-2, -4, -8, -10, 1, 3, 7, 9},
22
- {-2, -5, -7, -10, 1, 4, 6, 9},
23
- {-3, -4, -7, -10, 2, 3, 6, 9},
24
- {-1, -2, -3, -10, 0, 1, 2, 9},
25
- {-4, -6, -8, -9, 3, 5, 7, 8},
26
- {-3, -5, -7, -9, 2, 4, 6, 8}
27
- };
28
-
29
- static inline uint_fast32_t color(uint_fast32_t r, uint_fast32_t g, uint_fast32_t b, uint_fast32_t a) {
30
- return r | g << 8 | b << 16 | a << 24;
31
- }
6
+ const uint_fast8_t WriteOrderTable[16] = {0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15};
7
+ const uint_fast8_t WriteOrderTableRev[16] = {15, 11, 7, 3, 14, 10, 6, 2, 13, 9, 5, 1, 12, 8, 4, 0};
8
+ const uint_fast8_t Etc1ModifierTable[8][2] = {{2, 8}, {5, 17}, {9, 29}, {13, 42},
9
+ {18, 60}, {24, 80}, {33, 106}, {47, 183}};
10
+ const uint_fast8_t Etc2aModifierTable[2][8][2] = {
11
+ {{0, 8}, {0, 17}, {0, 29}, {0, 42}, {0, 60}, {0, 80}, {0, 106}, {0, 183}},
12
+ {{2, 8}, {5, 17}, {9, 29}, {13, 42}, {18, 60}, {24, 80}, {33, 106}, {47, 183}}};
13
+ const uint_fast8_t Etc1SubblockTable[2][16] = {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1},
14
+ {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1}};
15
+ const uint_fast8_t Etc2DistanceTable[8] = {3, 6, 11, 16, 23, 32, 41, 64};
16
+ const int_fast8_t Etc2AlphaModTable[16][8] = {
17
+ {-3, -6, -9, -15, 2, 5, 8, 14}, {-3, -7, -10, -13, 2, 6, 9, 12}, {-2, -5, -8, -13, 1, 4, 7, 12},
18
+ {-2, -4, -6, -13, 1, 3, 5, 12}, {-3, -6, -8, -12, 2, 5, 7, 11}, {-3, -7, -9, -11, 2, 6, 8, 10},
19
+ {-4, -7, -8, -11, 3, 6, 7, 10}, {-3, -5, -8, -11, 2, 4, 7, 10}, {-2, -6, -8, -10, 1, 5, 7, 9},
20
+ {-2, -5, -8, -10, 1, 4, 7, 9}, {-2, -4, -8, -10, 1, 3, 7, 9}, {-2, -5, -7, -10, 1, 4, 6, 9},
21
+ {-3, -4, -7, -10, 2, 3, 6, 9}, {-1, -2, -3, -10, 0, 1, 2, 9}, {-4, -6, -8, -9, 3, 5, 7, 8},
22
+ {-3, -5, -7, -9, 2, 4, 6, 8}};
32
23
 
33
24
  static inline uint_fast8_t clamp(const int n) {
34
25
  return n < 0 ? 0 : n > 255 ? 255 : n;
@@ -38,15 +29,20 @@ static inline uint32_t applicate_color(uint_fast8_t c[3], int_fast16_t m) {
38
29
  return color(clamp(c[0] + m), clamp(c[1] + m), clamp(c[2] + m), 255);
39
30
  }
40
31
 
32
+ static inline uint32_t applicate_color_alpha(uint_fast8_t c[3], int_fast16_t m, int transparent) {
33
+ return color(clamp(c[0] + m), clamp(c[1] + m), clamp(c[2] + m), transparent ? 0 : 255);
34
+ }
35
+
41
36
  static inline uint32_t applicate_color_raw(uint_fast8_t c[3]) {
42
37
  return color(c[0], c[1], c[2], 255);
43
38
  }
44
39
 
45
- static inline void decode_etc1_block(const uint8_t *data, uint32_t *outbuf) {
46
- uint_fast8_t code[2] = { data[3] >> 5, data[3] >> 2 & 7 };
47
- uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
40
+ static void decode_etc1_block(const uint8_t *data, uint32_t *outbuf) {
41
+ const uint_fast8_t code[2] = {data[3] >> 5, data[3] >> 2 & 7}; // Table codewords
42
+ const uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
48
43
  uint_fast8_t c[2][3];
49
44
  if (data[3] & 2) {
45
+ // diff bit == 1
50
46
  c[0][0] = data[0] & 0xf8;
51
47
  c[0][1] = data[1] & 0xf8;
52
48
  c[0][2] = data[2] & 0xf8;
@@ -60,16 +56,17 @@ static inline void decode_etc1_block(const uint8_t *data, uint32_t *outbuf) {
60
56
  c[1][1] |= c[1][1] >> 5;
61
57
  c[1][2] |= c[1][2] >> 5;
62
58
  } else {
63
- c[0][0] = data[0] & 0xf0 | data[0] >> 4;
64
- c[1][0] = data[0] & 0x0f | data[0] << 4;
65
- c[0][1] = data[1] & 0xf0 | data[1] >> 4;
66
- c[1][1] = data[1] & 0x0f | data[1] << 4;
67
- c[0][2] = data[2] & 0xf0 | data[2] >> 4;
68
- c[1][2] = data[2] & 0x0f | data[2] << 4;
59
+ // diff bit == 0
60
+ c[0][0] = (data[0] & 0xf0) | data[0] >> 4;
61
+ c[1][0] = (data[0] & 0x0f) | data[0] << 4;
62
+ c[0][1] = (data[1] & 0xf0) | data[1] >> 4;
63
+ c[1][1] = (data[1] & 0x0f) | data[1] << 4;
64
+ c[0][2] = (data[2] & 0xf0) | data[2] >> 4;
65
+ c[1][2] = (data[2] & 0x0f) | data[2] << 4;
69
66
  }
70
67
 
71
- uint_fast16_t j = data[6] << 8 | data[7];
72
- uint_fast16_t k = data[4] << 8 | data[5];
68
+ uint_fast16_t j = data[6] << 8 | data[7]; // less significant pixel index bits
69
+ uint_fast16_t k = data[4] << 8 | data[5]; // more significant pixel index bits
73
70
  for (int i = 0; i < 16; i++, j >>= 1, k >>= 1) {
74
71
  uint_fast8_t s = table[i];
75
72
  uint_fast8_t m = Etc1ModifierTable[code[s]][j & 1];
@@ -77,28 +74,13 @@ static inline void decode_etc1_block(const uint8_t *data, uint32_t *outbuf) {
77
74
  }
78
75
  }
79
76
 
80
- void decode_etc1(const void *data, const int w, const int h, uint32_t *image) {
81
- int bcw = (w + 3) / 4;
82
- int bch = (h + 3) / 4;
83
- int clen_last = (w + 3) % 4 + 1;
84
- uint32_t buf[16];
85
- const uint8_t *d = (uint8_t*)data;
86
- for (int t = 0; t < bch; t++) {
87
- for (int s = 0; s < bcw; s++, d += 8) {
88
- decode_etc1_block(d, buf);
89
- int clen = (s < bcw - 1 ? 4 : clen_last) * 4;
90
- for (int i = 0, y = h - t * 4 - 1; i < 4 && y >= 0; i++, y--)
91
- memcpy(image + y * w + s * 4, buf + i * 4, clen);
92
- }
93
- }
94
- }
95
-
96
- static inline void decode_etc2_block(const uint8_t *data, uint32_t *outbuf) {
97
- uint_fast16_t j = data[6] << 8 | data[7];
98
- uint_fast16_t k = data[4] << 8 | data[5];
77
+ static void decode_etc2_block(const uint8_t *data, uint32_t *outbuf) {
78
+ uint_fast16_t j = data[6] << 8 | data[7]; // 15 -> 0
79
+ uint_fast32_t k = data[4] << 8 | data[5]; // 31 -> 16
99
80
  uint_fast8_t c[3][3] = {};
100
81
 
101
82
  if (data[3] & 2) {
83
+ // diff bit == 1
102
84
  uint_fast8_t r = data[0] & 0xf8;
103
85
  int_fast16_t dr = (data[0] << 3 & 0x18) - (data[0] << 3 & 0x20);
104
86
  uint_fast8_t g = data[1] & 0xf8;
@@ -107,57 +89,52 @@ static inline void decode_etc2_block(const uint8_t *data, uint32_t *outbuf) {
107
89
  int_fast16_t db = (data[2] << 3 & 0x18) - (data[2] << 3 & 0x20);
108
90
  if (r + dr < 0 || r + dr > 255) {
109
91
  // T
110
- c[0][0] = data[0] << 3 & 0xc0 | data[0] << 4 & 0x30 | data[0] >> 1 & 0xc | data[0] & 3;
111
- c[0][1] = data[1] & 0xf0 | data[1] >> 4;
112
- c[0][2] = data[1] & 0x0f | data[1] << 4;
113
- c[1][0] = data[2] & 0xf0 | data[2] >> 4;
114
- c[1][1] = data[2] & 0x0f | data[2] << 4;
115
- c[1][2] = data[3] & 0xf0 | data[3] >> 4;
116
- uint_fast8_t d = Etc2DistanceTable[data[3] >> 1 & 6 | data[3] & 1];
117
- uint_fast32_t color_set[4] = {
118
- applicate_color_raw(c[0]),
119
- applicate_color(c[1], d),
120
- applicate_color_raw(c[1]),
121
- applicate_color(c[1], -d)
122
- };
92
+ c[0][0] = (data[0] << 3 & 0xc0) | (data[0] << 4 & 0x30) | (data[0] >> 1 & 0xc) | (data[0] & 3);
93
+ c[0][1] = (data[1] & 0xf0) | data[1] >> 4;
94
+ c[0][2] = (data[1] & 0x0f) | data[1] << 4;
95
+ c[1][0] = (data[2] & 0xf0) | data[2] >> 4;
96
+ c[1][1] = (data[2] & 0x0f) | data[2] << 4;
97
+ c[1][2] = (data[3] & 0xf0) | data[3] >> 4;
98
+ const uint_fast8_t d = Etc2DistanceTable[(data[3] >> 1 & 6) | (data[3] & 1)];
99
+ uint_fast32_t color_set[4] = {applicate_color_raw(c[0]), applicate_color(c[1], d),
100
+ applicate_color_raw(c[1]), applicate_color(c[1], -d)};
101
+ k <<= 1;
123
102
  for (int i = 0; i < 16; i++, j >>= 1, k >>= 1)
124
- outbuf[WriteOrderTable[i]] = color_set[k << 1 & 2 | j & 1];
103
+ outbuf[WriteOrderTable[i]] = color_set[(k & 2) | (j & 1)];
125
104
  } else if (g + dg < 0 || g + dg > 255) {
126
105
  // H
127
- c[0][0] = data[0] << 1 & 0xf0 | data[0] >> 3 & 0xf;
128
- c[0][1] = data[0] << 5 & 0xe0 | data[1] & 0x10;
106
+ c[0][0] = (data[0] << 1 & 0xf0) | (data[0] >> 3 & 0xf);
107
+ c[0][1] = (data[0] << 5 & 0xe0) | (data[1] & 0x10);
129
108
  c[0][1] |= c[0][1] >> 4;
130
- c[0][2] = data[1] & 8 | data[1] << 1 & 6 | data[2] >> 7;
109
+ c[0][2] = (data[1] & 8) | (data[1] << 1 & 6) | data[2] >> 7;
131
110
  c[0][2] |= c[0][2] << 4;
132
- c[1][0] = data[2] << 1 & 0xf0 | data[2] >> 3 & 0xf;
133
- c[1][1] = data[2] << 5 & 0xe0 | data[3] >> 3 & 0x10;
111
+ c[1][0] = (data[2] << 1 & 0xf0) | (data[2] >> 3 & 0xf);
112
+ c[1][1] = (data[2] << 5 & 0xe0) | (data[3] >> 3 & 0x10);
134
113
  c[1][1] |= c[1][1] >> 4;
135
- c[1][2] = data[3] << 1 & 0xf0 | data[3] >> 3 & 0xf;
136
- uint_fast8_t d = data[3] & 4 | data[3] << 1 & 2;
137
- if (c[0][0] > c[1][0] || (c[0][0] == c[1][0] && (c[0][1] > c[1][1] || (c[0][1] == c[1][1] && c[0][2] >= c[1][2]))))
114
+ c[1][2] = (data[3] << 1 & 0xf0) | (data[3] >> 3 & 0xf);
115
+ uint_fast8_t d = (data[3] & 4) | (data[3] << 1 & 2);
116
+ if (c[0][0] > c[1][0] ||
117
+ (c[0][0] == c[1][0] && (c[0][1] > c[1][1] || (c[0][1] == c[1][1] && c[0][2] >= c[1][2]))))
138
118
  ++d;
139
119
  d = Etc2DistanceTable[d];
140
- uint_fast32_t color_set[4] = {
141
- applicate_color(c[0], d),
142
- applicate_color(c[0], -d),
143
- applicate_color(c[1], d),
144
- applicate_color(c[1], -d)
145
- };
120
+ uint_fast32_t color_set[4] = {applicate_color(c[0], d), applicate_color(c[0], -d), applicate_color(c[1], d),
121
+ applicate_color(c[1], -d)};
122
+ k <<= 1;
146
123
  for (int i = 0; i < 16; i++, j >>= 1, k >>= 1)
147
- outbuf[WriteOrderTable[i]] = color_set[k << 1 & 2 | j & 1];
124
+ outbuf[WriteOrderTable[i]] = color_set[(k & 2) | (j & 1)];
148
125
  } else if (b + db < 0 || b + db > 255) {
149
126
  // planar
150
- c[0][0] = data[0] << 1 & 0xfc | data[0] >> 5 & 3;
151
- c[0][1] = data[0] << 7 & 0x80 | data[1] & 0x7e | data[0] & 1;
152
- c[0][2] = data[1] << 7 & 0x80 | data[2] << 2 & 0x60 | data[2] << 3 & 0x18 | data[3] >> 5 & 4;
127
+ c[0][0] = (data[0] << 1 & 0xfc) | (data[0] >> 5 & 3);
128
+ c[0][1] = (data[0] << 7 & 0x80) | (data[1] & 0x7e) | (data[0] & 1);
129
+ c[0][2] = (data[1] << 7 & 0x80) | (data[2] << 2 & 0x60) | (data[2] << 3 & 0x18) | (data[3] >> 5 & 4);
153
130
  c[0][2] |= c[0][2] >> 6;
154
- c[1][0] = data[3] << 1 & 0xf8 | data[3] << 2 & 4 | data[3] >> 5 & 3;
155
- c[1][1] = data[4] & 0xfe | data[4] >> 7;
156
- c[1][2] = data[4] << 7 & 0x80 | data[5] >> 1 & 0x7c;
131
+ c[1][0] = (data[3] << 1 & 0xf8) | (data[3] << 2 & 4) | (data[3] >> 5 & 3);
132
+ c[1][1] = (data[4] & 0xfe) | data[4] >> 7;
133
+ c[1][2] = (data[4] << 7 & 0x80) | (data[5] >> 1 & 0x7c);
157
134
  c[1][2] |= c[1][2] >> 6;
158
- c[2][0] = data[5] << 5 & 0xe0 | data[6] >> 3 & 0x1c | data[5] >> 1 & 3;
159
- c[2][1] = data[6] << 3 & 0xf8 | data[7] >> 5 & 0x6 | data[6] >> 4 & 1;
160
- c[2][2] = data[7] << 2 | data[7] >> 4 & 3;
135
+ c[2][0] = (data[5] << 5 & 0xe0) | (data[6] >> 3 & 0x1c) | (data[5] >> 1 & 3);
136
+ c[2][1] = (data[6] << 3 & 0xf8) | (data[7] >> 5 & 0x6) | (data[6] >> 4 & 1);
137
+ c[2][2] = data[7] << 2 | (data[7] >> 4 & 3);
161
138
  for (int y = 0, i = 0; y < 4; y++) {
162
139
  for (int x = 0; x < 4; x++, i++) {
163
140
  uint8_t r = clamp((x * (c[1][0] - c[0][0]) + y * (c[2][0] - c[0][0]) + 4 * c[0][0] + 2) >> 2);
@@ -168,8 +145,8 @@ static inline void decode_etc2_block(const uint8_t *data, uint32_t *outbuf) {
168
145
  }
169
146
  } else {
170
147
  // differential
171
- uint_fast8_t code[2] = { data[3] >> 5, data[3] >> 2 & 7 };
172
- uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
148
+ const uint_fast8_t code[2] = {data[3] >> 5, data[3] >> 2 & 7};
149
+ const uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
173
150
  c[0][0] = r | r >> 5;
174
151
  c[0][1] = g | g >> 5;
175
152
  c[0][2] = b | b >> 5;
@@ -186,15 +163,15 @@ static inline void decode_etc2_block(const uint8_t *data, uint32_t *outbuf) {
186
163
  }
187
164
  }
188
165
  } else {
189
- // individual
190
- uint_fast8_t code[2] = { data[3] >> 5, data[3] >> 2 & 7 };
191
- uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
192
- c[0][0] = data[0] & 0xf0 | data[0] >> 4;
193
- c[1][0] = data[0] & 0x0f | data[0] << 4;
194
- c[0][1] = data[1] & 0xf0 | data[1] >> 4;
195
- c[1][1] = data[1] & 0x0f | data[1] << 4;
196
- c[0][2] = data[2] & 0xf0 | data[2] >> 4;
197
- c[1][2] = data[2] & 0x0f | data[2] << 4;
166
+ // individual (diff bit == 0)
167
+ const uint_fast8_t code[2] = {data[3] >> 5, data[3] >> 2 & 7};
168
+ const uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
169
+ c[0][0] = (data[0] & 0xf0) | data[0] >> 4;
170
+ c[1][0] = (data[0] & 0x0f) | data[0] << 4;
171
+ c[0][1] = (data[1] & 0xf0) | data[1] >> 4;
172
+ c[1][1] = (data[1] & 0x0f) | data[1] << 4;
173
+ c[0][2] = (data[2] & 0xf0) | data[2] >> 4;
174
+ c[1][2] = (data[2] & 0x0f) | data[2] << 4;
198
175
  for (int i = 0; i < 16; i++, j >>= 1, k >>= 1) {
199
176
  uint_fast8_t s = table[i];
200
177
  uint_fast8_t m = Etc1ModifierTable[code[s]][j & 1];
@@ -203,69 +180,264 @@ static inline void decode_etc2_block(const uint8_t *data, uint32_t *outbuf) {
203
180
  }
204
181
  }
205
182
 
206
- static inline void decode_etc2a8_block(const uint8_t *data, uint32_t *outbuf) {
183
+ static void decode_etc2a1_block(const uint8_t *data, uint32_t *outbuf) {
184
+ uint_fast16_t j = data[6] << 8 | data[7]; // 15 -> 0
185
+ uint_fast32_t k = data[4] << 8 | data[5]; // 31 -> 16
186
+ uint_fast8_t c[3][3] = {};
187
+
188
+ int obaq = data[3] >> 1 & 1;
189
+
190
+ // diff bit == 1
191
+ uint_fast8_t r = data[0] & 0xf8;
192
+ int_fast16_t dr = (data[0] << 3 & 0x18) - (data[0] << 3 & 0x20);
193
+ uint_fast8_t g = data[1] & 0xf8;
194
+ int_fast16_t dg = (data[1] << 3 & 0x18) - (data[1] << 3 & 0x20);
195
+ uint_fast8_t b = data[2] & 0xf8;
196
+ int_fast16_t db = (data[2] << 3 & 0x18) - (data[2] << 3 & 0x20);
197
+ if (r + dr < 0 || r + dr > 255) {
198
+ // T
199
+ c[0][0] = (data[0] << 3 & 0xc0) | (data[0] << 4 & 0x30) | (data[0] >> 1 & 0xc) | (data[0] & 3);
200
+ c[0][1] = (data[1] & 0xf0) | data[1] >> 4;
201
+ c[0][2] = (data[1] & 0x0f) | data[1] << 4;
202
+ c[1][0] = (data[2] & 0xf0) | data[2] >> 4;
203
+ c[1][1] = (data[2] & 0x0f) | data[2] << 4;
204
+ c[1][2] = (data[3] & 0xf0) | data[3] >> 4;
205
+ const uint_fast8_t d = Etc2DistanceTable[(data[3] >> 1 & 6) | (data[3] & 1)];
206
+ uint_fast32_t color_set[4] = {applicate_color_raw(c[0]), applicate_color(c[1], d), applicate_color_raw(c[1]),
207
+ applicate_color(c[1], -d)};
208
+ k <<= 1;
209
+ for (int i = 0; i < 16; i++, j >>= 1, k >>= 1) {
210
+ int index = (k & 2) | (j & 1);
211
+ outbuf[WriteOrderTable[i]] = color_set[index];
212
+ if (!obaq && index == 2)
213
+ outbuf[WriteOrderTable[i]] &= TRANSPARENT_MASK;
214
+ }
215
+ } else if (g + dg < 0 || g + dg > 255) {
216
+ // H
217
+ c[0][0] = (data[0] << 1 & 0xf0) | (data[0] >> 3 & 0xf);
218
+ c[0][1] = (data[0] << 5 & 0xe0) | (data[1] & 0x10);
219
+ c[0][1] |= c[0][1] >> 4;
220
+ c[0][2] = (data[1] & 8) | (data[1] << 1 & 6) | data[2] >> 7;
221
+ c[0][2] |= c[0][2] << 4;
222
+ c[1][0] = (data[2] << 1 & 0xf0) | (data[2] >> 3 & 0xf);
223
+ c[1][1] = (data[2] << 5 & 0xe0) | (data[3] >> 3 & 0x10);
224
+ c[1][1] |= c[1][1] >> 4;
225
+ c[1][2] = (data[3] << 1 & 0xf0) | (data[3] >> 3 & 0xf);
226
+ uint_fast8_t d = (data[3] & 4) | (data[3] << 1 & 2);
227
+ if (c[0][0] > c[1][0] ||
228
+ (c[0][0] == c[1][0] && (c[0][1] > c[1][1] || (c[0][1] == c[1][1] && c[0][2] >= c[1][2]))))
229
+ ++d;
230
+ d = Etc2DistanceTable[d];
231
+ uint_fast32_t color_set[4] = {applicate_color(c[0], d), applicate_color(c[0], -d), applicate_color(c[1], d),
232
+ applicate_color(c[1], -d)};
233
+ k <<= 1;
234
+ for (int i = 0; i < 16; i++, j >>= 1, k >>= 1) {
235
+ int index = (k & 2) | (j & 1);
236
+ outbuf[WriteOrderTable[i]] = color_set[index];
237
+ if (!obaq && index == 2)
238
+ outbuf[WriteOrderTable[i]] &= TRANSPARENT_MASK;
239
+ }
240
+ } else if (b + db < 0 || b + db > 255) {
241
+ // planar
242
+ c[0][0] = (data[0] << 1 & 0xfc) | (data[0] >> 5 & 3);
243
+ c[0][1] = (data[0] << 7 & 0x80) | (data[1] & 0x7e) | (data[0] & 1);
244
+ c[0][2] = (data[1] << 7 & 0x80) | (data[2] << 2 & 0x60) | (data[2] << 3 & 0x18) | (data[3] >> 5 & 4);
245
+ c[0][2] |= c[0][2] >> 6;
246
+ c[1][0] = (data[3] << 1 & 0xf8) | (data[3] << 2 & 4) | (data[3] >> 5 & 3);
247
+ c[1][1] = (data[4] & 0xfe) | data[4] >> 7;
248
+ c[1][2] = (data[4] << 7 & 0x80) | (data[5] >> 1 & 0x7c);
249
+ c[1][2] |= c[1][2] >> 6;
250
+ c[2][0] = (data[5] << 5 & 0xe0) | (data[6] >> 3 & 0x1c) | (data[5] >> 1 & 3);
251
+ c[2][1] = (data[6] << 3 & 0xf8) | (data[7] >> 5 & 0x6) | (data[6] >> 4 & 1);
252
+ c[2][2] = data[7] << 2 | (data[7] >> 4 & 3);
253
+ for (int y = 0, i = 0; y < 4; y++) {
254
+ for (int x = 0; x < 4; x++, i++) {
255
+ uint8_t r = clamp((x * (c[1][0] - c[0][0]) + y * (c[2][0] - c[0][0]) + 4 * c[0][0] + 2) >> 2);
256
+ uint8_t g = clamp((x * (c[1][1] - c[0][1]) + y * (c[2][1] - c[0][1]) + 4 * c[0][1] + 2) >> 2);
257
+ uint8_t b = clamp((x * (c[1][2] - c[0][2]) + y * (c[2][2] - c[0][2]) + 4 * c[0][2] + 2) >> 2);
258
+ outbuf[i] = color(r, g, b, 255);
259
+ }
260
+ }
261
+ } else {
262
+ // differential
263
+ const uint_fast8_t code[2] = {data[3] >> 5, data[3] >> 2 & 7};
264
+ const uint_fast8_t *table = Etc1SubblockTable[data[3] & 1];
265
+ c[0][0] = r | r >> 5;
266
+ c[0][1] = g | g >> 5;
267
+ c[0][2] = b | b >> 5;
268
+ c[1][0] = r + dr;
269
+ c[1][1] = g + dg;
270
+ c[1][2] = b + db;
271
+ c[1][0] |= c[1][0] >> 5;
272
+ c[1][1] |= c[1][1] >> 5;
273
+ c[1][2] |= c[1][2] >> 5;
274
+ for (int i = 0; i < 16; i++, j >>= 1, k >>= 1) {
275
+ uint_fast8_t s = table[i];
276
+ uint_fast8_t m = Etc2aModifierTable[obaq][code[s]][j & 1];
277
+ outbuf[WriteOrderTable[i]] = applicate_color_alpha(c[s], k & 1 ? -m : m, !obaq && (k & 1) && !(j & 1));
278
+ }
279
+ }
280
+ }
281
+
282
+ static void decode_etc2a8_block(const uint8_t *data, uint32_t *outbuf) {
207
283
  if (data[1] & 0xf0) {
208
- uint_fast8_t mult = data[1] >> 4;
209
- int_fast8_t *table = Etc2AlphaModTable[data[1] & 0xf];
210
- uint_fast64_t l =
211
- data[7] | (uint_fast16_t)data[6] << 8 |
212
- (uint_fast32_t)data[5] << 16 | (uint_fast32_t)data[4] << 24 |
213
- (uint_fast64_t)data[3] << 32 | (uint_fast64_t)data[2] << 40;
284
+ // multiplier != 0
285
+ const uint_fast8_t multiplier = data[1] >> 4;
286
+ const int_fast8_t *table = Etc2AlphaModTable[data[1] & 0xf];
287
+ uint_fast64_t l = bton64(*(uint64_t*)data);
214
288
  for (int i = 0; i < 16; i++, l >>= 3)
215
- ((uint8_t*)(outbuf + WriteOrderTableRev[i]))[3] = clamp(data[0] + mult * table[l & 7]);
289
+ ((uint8_t *)(outbuf + WriteOrderTableRev[i]))[3] = clamp(data[0] + multiplier * table[l & 7]);
216
290
  } else {
217
- for (int i = 0; i < 16; i++)
218
- ((uint8_t*)(outbuf + i))[3] = data[0];
291
+ // multiplier == 0 (always same as base codeword)
292
+ for (int i = 0; i < 16; i++, outbuf++)
293
+ ((uint8_t *)outbuf)[3] = data[0];
294
+ }
295
+ }
296
+
297
+ static void decode_eac_block(const uint8_t *data, int color, uint32_t *outbuf) {
298
+ uint_fast8_t multiplier = data[1] >> 1 & 0x78;
299
+ if (multiplier == 0)
300
+ multiplier = 1;
301
+ const int_fast8_t *table = Etc2AlphaModTable[data[1] & 0xf];
302
+ uint_fast64_t l = bton64(*(uint64_t*)data);
303
+ for (int i = 0; i < 16; i++, l >>= 3) {
304
+ int_fast16_t val = data[0] * 8 + multiplier * table[l & 7] + 4;
305
+ ((uint8_t *)(outbuf + WriteOrderTableRev[i]))[color] = val < 0 ? 0 : val >= 2048 ? 0xff : val >> 3;
306
+ }
307
+ }
308
+
309
+ static void decode_eac_signed_block(const uint8_t *data, int color, uint32_t *outbuf) {
310
+ int8_t base = (int8_t)data[0];
311
+ uint_fast8_t multiplier = data[1] >> 1 & 0x78;
312
+ if (multiplier == 0)
313
+ multiplier = 1;
314
+ const int_fast8_t *table = Etc2AlphaModTable[data[1] & 0xf];
315
+ uint_fast64_t l = bton64(*(uint64_t*)data);
316
+ for (int i = 0; i < 16; i++, l >>= 3) {
317
+ int_fast16_t val = base * 8 + multiplier * table[l & 7] + 1023;
318
+ ((uint8_t *)(outbuf + WriteOrderTableRev[i]))[color] = val < 0 ? 0 : val >= 2048 ? 0xff : val >> 3;
319
+ }
320
+ }
321
+
322
+ int decode_etc1(const uint8_t *data, const long w, const long h, uint32_t *image) {
323
+ long num_blocks_x = (w + 3) / 4;
324
+ long num_blocks_y = (h + 3) / 4;
325
+ uint32_t buffer[16];
326
+ for (long by = 0; by < num_blocks_y; by++) {
327
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 8) {
328
+ decode_etc1_block(data, buffer);
329
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
330
+ }
331
+ }
332
+ return 1;
333
+ }
334
+
335
+ int decode_etc2(const uint8_t *data, const long w, const long h, uint32_t *image) {
336
+ long num_blocks_x = (w + 3) / 4;
337
+ long num_blocks_y = (h + 3) / 4;
338
+ uint32_t buffer[16];
339
+ for (long by = 0; by < num_blocks_y; by++) {
340
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 8) {
341
+ decode_etc2_block(data, buffer);
342
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
343
+ }
344
+ }
345
+ return 1;
346
+ }
347
+
348
+ int decode_etc2a1(const uint8_t *data, const long w, const long h, uint32_t *image) {
349
+ long num_blocks_x = (w + 3) / 4;
350
+ long num_blocks_y = (h + 3) / 4;
351
+ uint32_t buffer[16];
352
+ for (long by = 0; by < num_blocks_y; by++) {
353
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 8) {
354
+ decode_etc2a1_block(data, buffer);
355
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
356
+ }
357
+ }
358
+ return 1;
359
+ }
360
+
361
+ int decode_etc2a8(const uint8_t *data, const long w, const long h, uint32_t *image) {
362
+ long num_blocks_x = (w + 3) / 4;
363
+ long num_blocks_y = (h + 3) / 4;
364
+ uint32_t buffer[16];
365
+ for (long by = 0; by < num_blocks_y; by++) {
366
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 16) {
367
+ decode_etc2_block(data + 8, buffer);
368
+ decode_etc2a8_block(data, buffer);
369
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
370
+ }
371
+ }
372
+ return 1;
373
+ }
374
+
375
+ int decode_eacr(const uint8_t *data, const long w, const long h, uint32_t *image) {
376
+ long num_blocks_x = (w + 3) / 4;
377
+ long num_blocks_y = (h + 3) / 4;
378
+ uint32_t buffer[16];
379
+ uint32_t base_buffer[16];
380
+ for (int i = 0; i < 16; i++)
381
+ base_buffer[i] = color(0, 0, 0, 255);
382
+ for (long by = 0; by < num_blocks_y; by++) {
383
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 8) {
384
+ memcpy(buffer, base_buffer, sizeof(buffer));
385
+ decode_eac_block(data, 0, buffer);
386
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
387
+ }
219
388
  }
389
+ return 1;
220
390
  }
221
391
 
222
- void decode_etc2(const void *data, const int w, const int h, uint32_t *image) {
223
- int bcw = (w + 3) / 4;
224
- int bch = (h + 3) / 4;
225
- int clen_last = (w + 3) % 4 + 1;
226
- uint32_t buf[16];
227
- const uint8_t *d = (uint8_t*)data;
228
- for (int t = 0; t < bch; t++) {
229
- for (int s = 0; s < bcw; s++, d += 8) {
230
- decode_etc2_block(d, buf);
231
- int clen = (s < bcw - 1 ? 4 : clen_last) * 4;
232
- for (int i = 0, y = h - t * 4 - 1; i < 4 && y >= 0; i++, y--)
233
- memcpy(image + y * w + s * 4, buf + i * 4, clen);
392
+ int decode_eacr_signed(const uint8_t *data, const long w, const long h, uint32_t *image) {
393
+ long num_blocks_x = (w + 3) / 4;
394
+ long num_blocks_y = (h + 3) / 4;
395
+ uint32_t buffer[16];
396
+ uint32_t base_buffer[16];
397
+ for (int i = 0; i < 16; i++)
398
+ base_buffer[i] = color(0, 0, 0, 255);
399
+ for (long by = 0; by < num_blocks_y; by++) {
400
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 8) {
401
+ memcpy(buffer, base_buffer, sizeof(buffer));
402
+ decode_eac_signed_block(data, 0, buffer);
403
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
234
404
  }
235
405
  }
406
+ return 1;
236
407
  }
237
408
 
238
- void decode_etc2a1(const void *data, const int w, const int h, uint32_t *image) {
239
- int bcw = (w + 3) / 4;
240
- int bch = (h + 3) / 4;
241
- int clen_last = (w + 3) % 4 + 1;
242
- uint32_t buf[16];
243
- const uint8_t *d = (uint8_t*)data;
244
- for (int t = 0; t < bch; t++) {
245
- for (int s = 0; s < bcw; s++, d += 9) {
246
- decode_etc2_block(d + 1, buf);
247
- for (int i = 0; i < 16; i++)
248
- ((uint8_t*)(buf + i))[3] = d[0];
249
- int clen = (s < bcw - 1 ? 4 : clen_last) * 4;
250
- for (int i = 0, y = h - t * 4 - 1; i < 4 && y >= 0; i++, y--)
251
- memcpy(image + y * w + s * 4, buf + i * 4, clen);
409
+ int decode_eacrg(const uint8_t *data, const long w, const long h, uint32_t *image) {
410
+ long num_blocks_x = (w + 3) / 4;
411
+ long num_blocks_y = (h + 3) / 4;
412
+ uint32_t buffer[16];
413
+ uint32_t base_buffer[16];
414
+ for (int i = 0; i < 16; i++)
415
+ base_buffer[i] = color(0, 0, 0, 255);
416
+ for (long by = 0; by < num_blocks_y; by++) {
417
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 16) {
418
+ memcpy(buffer, base_buffer, sizeof(buffer));
419
+ decode_eac_block(data, 0, buffer);
420
+ decode_eac_block(data + 8, 1, buffer);
421
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
252
422
  }
253
423
  }
424
+ return 1;
254
425
  }
255
426
 
256
- void decode_etc2a8(const void *data, const int w, const int h, uint32_t *image) {
257
- int bcw = (w + 3) / 4;
258
- int bch = (h + 3) / 4;
259
- int clen_last = (w + 3) % 4 + 1;
260
- uint32_t buf[16];
261
- const uint8_t *d = (uint8_t*)data;
262
- for (int t = 0; t < bch; t++) {
263
- for (int s = 0; s < bcw; s++, d += 16) {
264
- decode_etc2_block(d + 8, buf);
265
- decode_etc2a8_block(d, buf);
266
- int clen = (s < bcw - 1 ? 4 : clen_last) * 4;
267
- for (int i = 0, y = h - t * 4 - 1; i < 4 && y >= 0; i++, y--)
268
- memcpy(image + y * w + s * 4, buf + i * 4, clen);
427
+ int decode_eacrg_signed(const uint8_t *data, const long w, const long h, uint32_t *image) {
428
+ long num_blocks_x = (w + 3) / 4;
429
+ long num_blocks_y = (h + 3) / 4;
430
+ uint32_t buffer[16];
431
+ uint32_t base_buffer[16];
432
+ for (int i = 0; i < 16; i++)
433
+ base_buffer[i] = color(0, 0, 0, 255);
434
+ for (long by = 0; by < num_blocks_y; by++) {
435
+ for (long bx = 0; bx < num_blocks_x; bx++, data += 16) {
436
+ memcpy(buffer, base_buffer, sizeof(buffer));
437
+ decode_eac_signed_block(data, 0, buffer);
438
+ decode_eac_signed_block(data + 8, 1, buffer);
439
+ copy_block_buffer(bx, by, w, h, 4, 4, buffer, image);
269
440
  }
270
441
  }
442
+ return 1;
271
443
  }