foundational_lib 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (529) hide show
  1. checksums.yaml +7 -0
  2. data/Articles/1.html +524 -0
  3. data/Articles/10.html +63 -0
  4. data/Articles/11.html +153 -0
  5. data/Articles/12.html +15 -0
  6. data/Articles/13.html +14 -0
  7. data/Articles/14.html +299 -0
  8. data/Articles/15.html +125 -0
  9. data/Articles/16.html +908 -0
  10. data/Articles/2.html +83 -0
  11. data/Articles/3.html +46 -0
  12. data/Articles/4.html +108 -0
  13. data/Articles/5.html +186 -0
  14. data/Articles/6.html +49 -0
  15. data/Articles/7.html +25 -0
  16. data/Articles/8.html +128 -0
  17. data/Articles/9.html +72 -0
  18. data/Articles/convert_html_to_markdown.sh +8 -0
  19. data/Articles/css.css +54 -0
  20. data/Articles/format.rb +95 -0
  21. data/Articles/index.html +34 -0
  22. data/Articles_MD/1.html.md +451 -0
  23. data/Articles_MD/10.html.md +57 -0
  24. data/Articles_MD/11.html.md +231 -0
  25. data/Articles_MD/12.html.md +16 -0
  26. data/Articles_MD/13.html.md +15 -0
  27. data/Articles_MD/14.html.md +280 -0
  28. data/Articles_MD/15.html.md +135 -0
  29. data/Articles_MD/16.html.md +840 -0
  30. data/Articles_MD/17.html.md +838 -0
  31. data/Articles_MD/2.html.md +82 -0
  32. data/Articles_MD/3.html.md +163 -0
  33. data/Articles_MD/4.html.md +137 -0
  34. data/Articles_MD/5.html.md +175 -0
  35. data/Articles_MD/6.html.md +47 -0
  36. data/Articles_MD/7.html.md +24 -0
  37. data/Articles_MD/8.html.md +71 -0
  38. data/Articles_MD/9.html.md +68 -0
  39. data/Articles_MD/index.html.md +25 -0
  40. data/DOCS.md +11153 -0
  41. data/GENERATE_CUSTOM_FOUNDATIONALLIB.rb +89 -0
  42. data/LICENSE.md +16 -0
  43. data/NOTE.md +29 -0
  44. data/README.md +120 -0
  45. data/custom_library_example.h +13999 -0
  46. data/docs/Doxyfile +2746 -0
  47. data/docs/LICENSE +21 -0
  48. data/docs/Makefile +39 -0
  49. data/docs/custom-alternative.css +54 -0
  50. data/docs/custom.css +57 -0
  51. data/docs/doxygen-awesome-darkmode-toggle.js +157 -0
  52. data/docs/doxygen-awesome-fragment-copy-button.js +85 -0
  53. data/docs/doxygen-awesome-interactive-toc.js +81 -0
  54. data/docs/doxygen-awesome-paragraph-link.js +51 -0
  55. data/docs/doxygen-awesome-sidebar-only-darkmode-toggle.css +40 -0
  56. data/docs/doxygen-awesome-sidebar-only.css +116 -0
  57. data/docs/doxygen-awesome-tabs.js +90 -0
  58. data/docs/doxygen-awesome.css +2669 -0
  59. data/docs/doxygen-custom/custom-alternative.css +54 -0
  60. data/docs/doxygen-custom/custom.css +57 -0
  61. data/docs/doxygen-custom/header.html +90 -0
  62. data/docs/doxygen-custom/toggle-alternative-theme.js +12 -0
  63. data/docs/header.html +90 -0
  64. data/docs/html/html/annotated.html +145 -0
  65. data/docs/html/html/annotated_dup.js +10 -0
  66. data/docs/html/html/bc_s.png +0 -0
  67. data/docs/html/html/bdwn.png +0 -0
  68. data/docs/html/html/classes.html +149 -0
  69. data/docs/html/html/closed.png +0 -0
  70. data/docs/html/html/custom-alternative.css +54 -0
  71. data/docs/html/html/custom.css +57 -0
  72. data/docs/html/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +141 -0
  73. data/docs/html/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js +4 -0
  74. data/docs/html/html/doc.png +0 -0
  75. data/docs/html/html/doxygen-awesome-darkmode-toggle.js +157 -0
  76. data/docs/html/html/doxygen-awesome-fragment-copy-button.js +85 -0
  77. data/docs/html/html/doxygen-awesome-interactive-toc.js +81 -0
  78. data/docs/html/html/doxygen-awesome-paragraph-link.js +51 -0
  79. data/docs/html/html/doxygen-awesome-sidebar-only-darkmode-toggle.css +40 -0
  80. data/docs/html/html/doxygen-awesome-sidebar-only.css +116 -0
  81. data/docs/html/html/doxygen-awesome-tabs.js +90 -0
  82. data/docs/html/html/doxygen-awesome.css +2669 -0
  83. data/docs/html/html/doxygen.css +1793 -0
  84. data/docs/html/html/doxygen.svg +26 -0
  85. data/docs/html/html/dynsections.js +121 -0
  86. data/docs/html/html/files.html +140 -0
  87. data/docs/html/html/files_dup.js +4 -0
  88. data/docs/html/html/folderclosed.png +0 -0
  89. data/docs/html/html/folderopen.png +0 -0
  90. data/docs/html/html/foundationallib_8h.html +17294 -0
  91. data/docs/html/html/foundationallib_8h.js +445 -0
  92. data/docs/html/html/foundationallib_8h__incl.map +15 -0
  93. data/docs/html/html/foundationallib_8h__incl.md5 +1 -0
  94. data/docs/html/html/foundationallib_8h__incl.svg +202 -0
  95. data/docs/html/html/foundationallib_8h_source.html +9125 -0
  96. data/docs/html/html/functions.html +188 -0
  97. data/docs/html/html/functions_vars.html +188 -0
  98. data/docs/html/html/globals.html +158 -0
  99. data/docs/html/html/globals_b.html +137 -0
  100. data/docs/html/html/globals_c.html +173 -0
  101. data/docs/html/html/globals_d.html +185 -0
  102. data/docs/html/html/globals_defs.html +361 -0
  103. data/docs/html/html/globals_dup.js +19 -0
  104. data/docs/html/html/globals_e.html +221 -0
  105. data/docs/html/html/globals_f.html +560 -0
  106. data/docs/html/html/globals_func.html +158 -0
  107. data/docs/html/html/globals_func.js +19 -0
  108. data/docs/html/html/globals_func_b.html +137 -0
  109. data/docs/html/html/globals_func_c.html +173 -0
  110. data/docs/html/html/globals_func_d.html +179 -0
  111. data/docs/html/html/globals_func_e.html +218 -0
  112. data/docs/html/html/globals_func_f.html +341 -0
  113. data/docs/html/html/globals_func_g.html +140 -0
  114. data/docs/html/html/globals_func_i.html +188 -0
  115. data/docs/html/html/globals_func_j.html +137 -0
  116. data/docs/html/html/globals_func_l.html +152 -0
  117. data/docs/html/html/globals_func_m.html +152 -0
  118. data/docs/html/html/globals_func_p.html +374 -0
  119. data/docs/html/html/globals_func_r.html +194 -0
  120. data/docs/html/html/globals_func_s.html +386 -0
  121. data/docs/html/html/globals_func_u.html +140 -0
  122. data/docs/html/html/globals_func_w.html +140 -0
  123. data/docs/html/html/globals_g.html +140 -0
  124. data/docs/html/html/globals_i.html +188 -0
  125. data/docs/html/html/globals_j.html +137 -0
  126. data/docs/html/html/globals_l.html +152 -0
  127. data/docs/html/html/globals_m.html +152 -0
  128. data/docs/html/html/globals_p.html +374 -0
  129. data/docs/html/html/globals_r.html +194 -0
  130. data/docs/html/html/globals_s.html +389 -0
  131. data/docs/html/html/globals_type.html +144 -0
  132. data/docs/html/html/globals_u.html +140 -0
  133. data/docs/html/html/globals_vars.html +135 -0
  134. data/docs/html/html/globals_w.html +140 -0
  135. data/docs/html/html/graph_legend.html +194 -0
  136. data/docs/html/html/graph_legend.md5 +1 -0
  137. data/docs/html/html/graph_legend.svg +117 -0
  138. data/docs/html/html/index.html +134 -0
  139. data/docs/html/html/jquery.js +35 -0
  140. data/docs/html/html/logo.drawio.svg +1 -0
  141. data/docs/html/html/menu.js +51 -0
  142. data/docs/html/html/menudata.js +75 -0
  143. data/docs/html/html/nav_f.png +0 -0
  144. data/docs/html/html/nav_g.png +0 -0
  145. data/docs/html/html/nav_h.png +0 -0
  146. data/docs/html/html/navtree.css +146 -0
  147. data/docs/html/html/navtree.js +546 -0
  148. data/docs/html/html/navtreedata.js +57 -0
  149. data/docs/html/html/navtreeindex0.js +253 -0
  150. data/docs/html/html/navtreeindex1.js +253 -0
  151. data/docs/html/html/navtreeindex2.js +18 -0
  152. data/docs/html/html/open.png +0 -0
  153. data/docs/html/html/resize.js +140 -0
  154. data/docs/html/html/search/all_0.html +37 -0
  155. data/docs/html/html/search/all_0.js +12 -0
  156. data/docs/html/html/search/all_1.html +37 -0
  157. data/docs/html/html/search/all_1.js +4 -0
  158. data/docs/html/html/search/all_10.html +37 -0
  159. data/docs/html/html/search/all_10.js +6 -0
  160. data/docs/html/html/search/all_11.html +37 -0
  161. data/docs/html/html/search/all_11.js +5 -0
  162. data/docs/html/html/search/all_12.html +37 -0
  163. data/docs/html/html/search/all_12.js +4 -0
  164. data/docs/html/html/search/all_13.html +37 -0
  165. data/docs/html/html/search/all_13.js +5 -0
  166. data/docs/html/html/search/all_2.html +37 -0
  167. data/docs/html/html/search/all_2.js +17 -0
  168. data/docs/html/html/search/all_3.html +37 -0
  169. data/docs/html/html/search/all_3.js +21 -0
  170. data/docs/html/html/search/all_4.html +37 -0
  171. data/docs/html/html/search/all_4.js +34 -0
  172. data/docs/html/html/search/all_5.html +37 -0
  173. data/docs/html/html/search/all_5.js +147 -0
  174. data/docs/html/html/search/all_6.html +37 -0
  175. data/docs/html/html/search/all_6.js +5 -0
  176. data/docs/html/html/search/all_7.html +37 -0
  177. data/docs/html/html/search/all_7.js +22 -0
  178. data/docs/html/html/search/all_8.html +37 -0
  179. data/docs/html/html/search/all_8.js +4 -0
  180. data/docs/html/html/search/all_9.html +37 -0
  181. data/docs/html/html/search/all_9.js +4 -0
  182. data/docs/html/html/search/all_a.html +37 -0
  183. data/docs/html/html/search/all_a.js +9 -0
  184. data/docs/html/html/search/all_b.html +37 -0
  185. data/docs/html/html/search/all_b.js +9 -0
  186. data/docs/html/html/search/all_c.html +37 -0
  187. data/docs/html/html/search/all_c.js +4 -0
  188. data/docs/html/html/search/all_d.html +37 -0
  189. data/docs/html/html/search/all_d.js +83 -0
  190. data/docs/html/html/search/all_e.html +37 -0
  191. data/docs/html/html/search/all_e.js +25 -0
  192. data/docs/html/html/search/all_f.html +37 -0
  193. data/docs/html/html/search/all_f.js +91 -0
  194. data/docs/html/html/search/classes_0.html +37 -0
  195. data/docs/html/html/search/classes_0.js +5 -0
  196. data/docs/html/html/search/classes_1.html +37 -0
  197. data/docs/html/html/search/classes_1.js +5 -0
  198. data/docs/html/html/search/classes_2.html +37 -0
  199. data/docs/html/html/search/classes_2.js +5 -0
  200. data/docs/html/html/search/classes_3.html +37 -0
  201. data/docs/html/html/search/classes_3.js +4 -0
  202. data/docs/html/html/search/close.svg +31 -0
  203. data/docs/html/html/search/defines_0.html +37 -0
  204. data/docs/html/html/search/defines_0.js +4 -0
  205. data/docs/html/html/search/defines_1.html +37 -0
  206. data/docs/html/html/search/defines_1.js +4 -0
  207. data/docs/html/html/search/defines_2.html +37 -0
  208. data/docs/html/html/search/defines_2.js +74 -0
  209. data/docs/html/html/search/files_0.html +37 -0
  210. data/docs/html/html/search/files_0.js +4 -0
  211. data/docs/html/html/search/functions_0.html +37 -0
  212. data/docs/html/html/search/functions_0.js +11 -0
  213. data/docs/html/html/search/functions_1.html +37 -0
  214. data/docs/html/html/search/functions_1.js +4 -0
  215. data/docs/html/html/search/functions_2.html +37 -0
  216. data/docs/html/html/search/functions_2.js +16 -0
  217. data/docs/html/html/search/functions_3.html +37 -0
  218. data/docs/html/html/search/functions_3.js +18 -0
  219. data/docs/html/html/search/functions_4.html +37 -0
  220. data/docs/html/html/search/functions_4.js +31 -0
  221. data/docs/html/html/search/functions_5.html +37 -0
  222. data/docs/html/html/search/functions_5.js +72 -0
  223. data/docs/html/html/search/functions_6.html +37 -0
  224. data/docs/html/html/search/functions_6.js +5 -0
  225. data/docs/html/html/search/functions_7.html +37 -0
  226. data/docs/html/html/search/functions_7.js +21 -0
  227. data/docs/html/html/search/functions_8.html +37 -0
  228. data/docs/html/html/search/functions_8.js +4 -0
  229. data/docs/html/html/search/functions_9.html +37 -0
  230. data/docs/html/html/search/functions_9.js +9 -0
  231. data/docs/html/html/search/functions_a.html +37 -0
  232. data/docs/html/html/search/functions_a.js +9 -0
  233. data/docs/html/html/search/functions_b.html +37 -0
  234. data/docs/html/html/search/functions_b.js +83 -0
  235. data/docs/html/html/search/functions_c.html +37 -0
  236. data/docs/html/html/search/functions_c.js +23 -0
  237. data/docs/html/html/search/functions_d.html +37 -0
  238. data/docs/html/html/search/functions_d.js +87 -0
  239. data/docs/html/html/search/functions_e.html +37 -0
  240. data/docs/html/html/search/functions_e.js +5 -0
  241. data/docs/html/html/search/functions_f.html +37 -0
  242. data/docs/html/html/search/functions_f.js +5 -0
  243. data/docs/html/html/search/mag_sel.svg +74 -0
  244. data/docs/html/html/search/nomatches.html +13 -0
  245. data/docs/html/html/search/search.css +257 -0
  246. data/docs/html/html/search/search.js +816 -0
  247. data/docs/html/html/search/search_l.png +0 -0
  248. data/docs/html/html/search/search_m.png +0 -0
  249. data/docs/html/html/search/search_r.png +0 -0
  250. data/docs/html/html/search/searchdata.js +33 -0
  251. data/docs/html/html/search/typedefs_0.html +37 -0
  252. data/docs/html/html/search/typedefs_0.js +4 -0
  253. data/docs/html/html/search/typedefs_1.html +37 -0
  254. data/docs/html/html/search/typedefs_1.js +5 -0
  255. data/docs/html/html/search/typedefs_2.html +37 -0
  256. data/docs/html/html/search/typedefs_2.js +4 -0
  257. data/docs/html/html/search/variables_0.html +37 -0
  258. data/docs/html/html/search/variables_0.js +4 -0
  259. data/docs/html/html/search/variables_1.html +37 -0
  260. data/docs/html/html/search/variables_1.js +4 -0
  261. data/docs/html/html/search/variables_2.html +37 -0
  262. data/docs/html/html/search/variables_2.js +5 -0
  263. data/docs/html/html/search/variables_3.html +37 -0
  264. data/docs/html/html/search/variables_3.js +5 -0
  265. data/docs/html/html/search/variables_4.html +37 -0
  266. data/docs/html/html/search/variables_4.js +4 -0
  267. data/docs/html/html/search/variables_5.html +37 -0
  268. data/docs/html/html/search/variables_5.js +4 -0
  269. data/docs/html/html/search/variables_6.html +37 -0
  270. data/docs/html/html/search/variables_6.js +4 -0
  271. data/docs/html/html/search/variables_7.html +37 -0
  272. data/docs/html/html/search/variables_7.js +5 -0
  273. data/docs/html/html/search/variables_8.html +37 -0
  274. data/docs/html/html/search/variables_8.js +5 -0
  275. data/docs/html/html/search/variables_9.html +37 -0
  276. data/docs/html/html/search/variables_9.js +5 -0
  277. data/docs/html/html/search/variables_a.html +37 -0
  278. data/docs/html/html/search/variables_a.js +4 -0
  279. data/docs/html/html/splitbar.png +0 -0
  280. data/docs/html/html/struct_dict.html +195 -0
  281. data/docs/html/html/struct_dict.js +6 -0
  282. data/docs/html/html/struct_dict_key_value.html +197 -0
  283. data/docs/html/html/struct_dict_key_value.js +6 -0
  284. data/docs/html/html/struct_frozen_dict.html +195 -0
  285. data/docs/html/html/struct_frozen_dict.js +6 -0
  286. data/docs/html/html/struct_frozen_set.html +195 -0
  287. data/docs/html/html/struct_frozen_set.js +6 -0
  288. data/docs/html/html/struct_set.html +195 -0
  289. data/docs/html/html/struct_set.js +6 -0
  290. data/docs/html/html/struct_set_key.html +179 -0
  291. data/docs/html/html/struct_set_key.js +5 -0
  292. data/docs/html/html/struct_thread_data.html +291 -0
  293. data/docs/html/html/struct_thread_data.js +12 -0
  294. data/docs/html/html/sync_off.png +0 -0
  295. data/docs/html/html/sync_on.png +0 -0
  296. data/docs/html/html/tab_a.png +0 -0
  297. data/docs/html/html/tab_b.png +0 -0
  298. data/docs/html/html/tab_h.png +0 -0
  299. data/docs/html/html/tab_s.png +0 -0
  300. data/docs/html/html/tabs.css +1 -0
  301. data/docs/html/html/toggle-alternative-theme.js +12 -0
  302. data/docs/img/screenshot.png +0 -0
  303. data/docs/img/testimage.png +0 -0
  304. data/docs/img/theme-variants-base.drawio.svg +117 -0
  305. data/docs/img/theme-variants-sidebar-only.drawio.svg +102 -0
  306. data/docs/logo.drawio.svg +1 -0
  307. data/docs/package.json +34 -0
  308. data/docs/src/foundationallib.h +13061 -0
  309. data/docs/toggle-alternative-theme.js +12 -0
  310. data/example_of_transpilation_comments.txt +167 -0
  311. data/foundationallib.gemspec +14 -0
  312. data/foundationallib.h +13999 -0
  313. data/platforms/README.md +17 -0
  314. data/platforms/header_and_separate_compilation_unit/Makefile +18 -0
  315. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.c +13014 -0
  316. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.h +316 -0
  317. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.o +0 -0
  318. data/platforms/header_and_separate_compilation_unit/non_inline_example +0 -0
  319. data/platforms/header_and_separate_compilation_unit/non_inline_example.c +11 -0
  320. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/Makefile +18 -0
  321. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.c +13014 -0
  322. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.h +317 -0
  323. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.o +0 -0
  324. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/non_inline_example +0 -0
  325. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/non_inline_example.c +11 -0
  326. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/wont_compile.c +8 -0
  327. data/tests/decoupled_thorough_tests +0 -0
  328. data/tests/decoupled_thorough_tests.c +95 -0
  329. data/tests/decoupled_thorough_tests.exe +0 -0
  330. data/tests/decoupled_thorough_tests32 +0 -0
  331. data/tests/deps_for_testing +9 -0
  332. data/tests/deps_for_testing.sh +23 -0
  333. data/tests/destination_file.txt +1 -0
  334. data/tests/ex_ample.txt +1 -0
  335. data/tests/existing_file.txt +127 -0
  336. data/tests/lib_and_tests +0 -0
  337. data/tests/lib_and_tests.c +15920 -0
  338. data/tests/lib_and_tests.exe +0 -0
  339. data/tests/lib_and_tests32 +0 -0
  340. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_append_string_to_array.c +33 -0
  341. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_append_string_to_array_no_initial_alloc.c +51 -0
  342. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_array_total_string_length.c +25 -0
  343. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_arraydup.c +33 -0
  344. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_calculate_average_in_int_array.c +70 -0
  345. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_calculate_sum_in_int_array.c +47 -0
  346. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_common_prefix_length.c +23 -0
  347. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_common_suffix_length.c +23 -0
  348. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_five_strings.c +32 -0
  349. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_four_strings.c +39 -0
  350. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_string_array.c +28 -0
  351. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_strings.c +47 -0
  352. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_three_strings.c +43 -0
  353. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_count_occurrences_of_substr.c +21 -0
  354. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_count_occurrences_of_substr_len.c +66 -0
  355. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_add.c +49 -0
  356. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_key.c +26 -0
  357. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_keys.c +69 -0
  358. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_values.c +69 -0
  359. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_destructor.c +69 -0
  360. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_get.c +69 -0
  361. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_get_check.c +75 -0
  362. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_hash.c +18 -0
  363. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_iter.c +69 -0
  364. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_new_instance.c +69 -0
  365. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_reserve_more.c +21 -0
  366. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_resize.c +8 -0
  367. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_size.c +79 -0
  368. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_to_array.c +26 -0
  369. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_to_string.c +29 -0
  370. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dup_format.c +58 -0
  371. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_ends_with.c +48 -0
  372. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_char_ptrs.c +55 -0
  373. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_chars.c +53 -0
  374. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_double_ptrs.c +50 -0
  375. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_doubles.c +35 -0
  376. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_float_ptrs.c +36 -0
  377. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_floats.c +45 -0
  378. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_int_ptrs.c +51 -0
  379. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ints.c +55 -0
  380. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_long_ptrs.c +27 -0
  381. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_longs.c +53 -0
  382. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_ptrs.c +66 -0
  383. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_longs.c +47 -0
  384. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_short_ptrs.c +36 -0
  385. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_shorts.c +52 -0
  386. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_size_t_ptrs.c +62 -0
  387. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_size_ts.c +62 -0
  388. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uchar_ptrs.c +46 -0
  389. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uchars.c +60 -0
  390. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uint_ptrs.c +37 -0
  391. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uints.c +36 -0
  392. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_long_ptrs.c +56 -0
  393. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_longs.c +46 -0
  394. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_ptrs.c +38 -0
  395. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulongs.c +37 -0
  396. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ushort_ptrs.c +30 -0
  397. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ushorts.c +55 -0
  398. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_strings.c +45 -0
  399. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_filter.c +59 -0
  400. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_filter_int.c +39 -0
  401. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_first_of.c +48 -0
  402. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_last_of.c +48 -0
  403. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_max_int_in_array.c +55 -0
  404. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_min_int_in_array.c +58 -0
  405. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_first_non_repeating_char.c +42 -0
  406. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_format_string.c +68 -0
  407. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_free_array.c +63 -0
  408. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_free_string_array.c +50 -0
  409. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_del_keys.c +28 -0
  410. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_del_values.c +64 -0
  411. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_destructor.c +23 -0
  412. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_get.c +27 -0
  413. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_get_check.c +32 -0
  414. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_new_instance.c +23 -0
  415. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_size.c +33 -0
  416. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_to_array.c +51 -0
  417. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_to_string.c +48 -0
  418. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_del_keys.c +35 -0
  419. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_destructor.c +55 -0
  420. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_in.c +70 -0
  421. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_iter.c +71 -0
  422. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_new_instance.c +26 -0
  423. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_size.c +46 -0
  424. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_to_array.c +70 -0
  425. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_to_string.c +52 -0
  426. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_generate_range.c +62 -0
  427. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_index_of_char.c +77 -0
  428. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_int_to_string.c +54 -0
  429. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_alphanumeric.c +50 -0
  430. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_digit.c +67 -0
  431. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_lower.c +52 -0
  432. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_upper.c +28 -0
  433. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_numeric.c +36 -0
  434. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_alpha.c +43 -0
  435. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_digit.c +54 -0
  436. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_lower.c +50 -0
  437. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_space.c +48 -0
  438. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_upper.c +72 -0
  439. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_valid_integer.c +16 -0
  440. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_valid_utf8.c +46 -0
  441. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_join.c +53 -0
  442. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_last_index_of_char.c +15 -0
  443. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_list_comprehension.c +95 -0
  444. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_list_comprehension_multithreaded.c +41 -0
  445. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_longest_common_prefix.c +35 -0
  446. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_longest_common_suffix.c +61 -0
  447. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_map.c +46 -0
  448. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_map_int.c +59 -0
  449. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_prepend_string_to_array.c +68 -0
  450. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_prepend_string_to_array_no_initial_alloc.c +57 -0
  451. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_rand_number_from_range_inclusive_signed.c +41 -0
  452. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_rand_number_from_range_inclusive_unsigned.c +23 -0
  453. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reduce.c +49 -0
  454. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reduce_int.c +44 -0
  455. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reject_array.c +47 -0
  456. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all.c +73 -0
  457. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all_with_callback.c +46 -0
  458. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all_with_lens.c +61 -0
  459. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replicate.c +56 -0
  460. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_int_array.c +58 -0
  461. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_string.c +58 -0
  462. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_string_in_place.c +60 -0
  463. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_words.c +58 -0
  464. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_sample_strings.c +48 -0
  465. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_select_array.c +29 -0
  466. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_add.c +69 -0
  467. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_del_key.c +29 -0
  468. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_del_keys.c +35 -0
  469. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_destructor.c +31 -0
  470. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_hash.c +44 -0
  471. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_in.c +52 -0
  472. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_iter.c +69 -0
  473. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_new_instance.c +30 -0
  474. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_reserve_more.c +36 -0
  475. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_resize.c +37 -0
  476. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_size.c +42 -0
  477. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_to_array.c +41 -0
  478. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_to_string.c +81 -0
  479. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_shellescape.c +53 -0
  480. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_shuffle_strings_in_place.c +39 -0
  481. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_split.c +64 -0
  482. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_starts_with.c +39 -0
  483. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_str_to_double.c +32 -0
  484. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_array_uniq.c +60 -0
  485. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_array_uniq_adjacent.c +54 -0
  486. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_int.c +55 -0
  487. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_json.c +98 -0
  488. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_lowercase.c +73 -0
  489. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_title_case.c +80 -0
  490. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_uppercase.c +78 -0
  491. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_strip.c +84 -0
  492. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_trim_chars.c +85 -0
  493. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/testall.sh +15 -0
  494. data/tests/run_test_suite.sh +117 -0
  495. data/tests/source_file.txt +1 -0
  496. data/tests/test_log.txt +1047 -0
  497. data/tools/FUTURE +18 -0
  498. data/tools/HEADERS.h +316 -0
  499. data/tools/HEADERS_ONLY_FUNCTIONS.h +284 -0
  500. data/tools/HEADERS_WITH_PREFIX.h +33 -0
  501. data/tools/RSUB_LICENSE.txt +25 -0
  502. data/tools/benchmark_libc.c +263 -0
  503. data/tools/deprecated/GENERATE_CUSTOM_FOUNDATIONALLIB.sh.old +67 -0
  504. data/tools/deps_for_testing.sh +23 -0
  505. data/tools/documentation_generate +17 -0
  506. data/tools/foundationallib.h +13999 -0
  507. data/tools/funcs_c +15858 -0
  508. data/tools/funcs_c_with_tests.c +15920 -0
  509. data/tools/gen_video_new +444 -0
  510. data/tools/gen_video_new_times +41 -0
  511. data/tools/generate_promo_video_for_library.rb +19 -0
  512. data/tools/index.html +147 -0
  513. data/tools/lib.html +20 -0
  514. data/tools/lib2.html +22 -0
  515. data/tools/lib3.html +22 -0
  516. data/tools/lynx.rb +145 -0
  517. data/tools/make_image_of_docs +741 -0
  518. data/tools/pic.png +0 -0
  519. data/tools/pic2.png +0 -0
  520. data/tools/pic3.png +0 -0
  521. data/tools/play_with_string_replace_functions.c +236 -0
  522. data/tools/rsub +0 -0
  523. data/tools/rsub.c +501 -0
  524. data/tools/run_lib +365 -0
  525. data/tools/update +44 -0
  526. data/tools/with_tests +0 -0
  527. data/tools/with_tests32 +0 -0
  528. data/transpile_slow_scripting_into_c.rb +225 -0
  529. metadata +693 -0
@@ -0,0 +1,2669 @@
1
+ /**
2
+
3
+ Doxygen Awesome
4
+ https://github.com/jothepro/doxygen-awesome-css
5
+
6
+ MIT License
7
+
8
+ Copyright (c) 2021 - 2023 jothepro
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ */
29
+
30
+ html {
31
+ /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
32
+ --primary-color: #1779c4;
33
+ --primary-dark-color: #335c80;
34
+ --primary-light-color: #70b1e9;
35
+
36
+ /* page base colors */
37
+ --page-background-color: #ffffff;
38
+ --page-foreground-color: #2f4153;
39
+ --page-secondary-foreground-color: #6f7e8e;
40
+
41
+ /* color for all separators on the website: hr, borders, ... */
42
+ --separator-color: #dedede;
43
+
44
+ /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
45
+ --border-radius-large: 8px;
46
+ --border-radius-small: 4px;
47
+ --border-radius-medium: 6px;
48
+
49
+ /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
50
+ --spacing-small: 5px;
51
+ --spacing-medium: 10px;
52
+ --spacing-large: 16px;
53
+
54
+ /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */
55
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
56
+
57
+ --odd-color: rgba(0,0,0,.028);
58
+
59
+ /* font-families. will affect all text on the website
60
+ * font-family: the normal font for text, headlines, menus
61
+ * font-family-monospace: used for preformatted text in memtitle, code, fragments
62
+ */
63
+ --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
64
+ --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
65
+
66
+ /* font sizes */
67
+ --page-font-size: 15.6px;
68
+ --navigation-font-size: 14.4px;
69
+ --toc-font-size: 13.4px;
70
+ --code-font-size: 14px; /* affects code, fragment */
71
+ --title-font-size: 22px;
72
+
73
+ /* content text properties. These only affect the page content, not the navigation or any other ui elements */
74
+ --content-line-height: 27px;
75
+ /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
76
+ --content-maxwidth: 1050px;
77
+ --table-line-height: 24px;
78
+ --toc-sticky-top: var(--spacing-medium);
79
+ --toc-width: 200px;
80
+ --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
81
+
82
+ /* colors for various content boxes: @warning, @note, @deprecated @bug */
83
+ --warning-color: #faf3d8;
84
+ --warning-color-dark: #f3a600;
85
+ --warning-color-darker: #5f4204;
86
+ --note-color: #e4f3ff;
87
+ --note-color-dark: #1879C4;
88
+ --note-color-darker: #274a5c;
89
+ --todo-color: #e4dafd;
90
+ --todo-color-dark: #5b2bdd;
91
+ --todo-color-darker: #2a0d72;
92
+ --deprecated-color: #ecf0f3;
93
+ --deprecated-color-dark: #5b6269;
94
+ --deprecated-color-darker: #43454a;
95
+ --bug-color: #f8d1cc;
96
+ --bug-color-dark: #b61825;
97
+ --bug-color-darker: #75070f;
98
+ --invariant-color: #d8f1e3;
99
+ --invariant-color-dark: #44b86f;
100
+ --invariant-color-darker: #265532;
101
+
102
+ /* blockquote colors */
103
+ --blockquote-background: #f8f9fa;
104
+ --blockquote-foreground: #636568;
105
+
106
+ /* table colors */
107
+ --tablehead-background: #f1f1f1;
108
+ --tablehead-foreground: var(--page-foreground-color);
109
+
110
+ /* menu-display: block | none
111
+ * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
112
+ * `GENERATE_TREEVIEW` MUST be enabled!
113
+ */
114
+ --menu-display: block;
115
+
116
+ --menu-focus-foreground: var(--page-background-color);
117
+ --menu-focus-background: var(--primary-color);
118
+ --menu-selected-background: rgba(0,0,0,.05);
119
+
120
+
121
+ --header-background: var(--page-background-color);
122
+ --header-foreground: var(--page-foreground-color);
123
+
124
+ /* searchbar colors */
125
+ --searchbar-background: var(--side-nav-background);
126
+ --searchbar-foreground: var(--page-foreground-color);
127
+
128
+ /* searchbar size
129
+ * (`searchbar-width` is only applied on screens >= 768px.
130
+ * on smaller screens the searchbar will always fill the entire screen width) */
131
+ --searchbar-height: 33px;
132
+ --searchbar-width: 210px;
133
+ --searchbar-border-radius: var(--searchbar-height);
134
+
135
+ /* code block colors */
136
+ --code-background: #f5f5f5;
137
+ --code-foreground: var(--page-foreground-color);
138
+
139
+ /* fragment colors */
140
+ --fragment-background: #F8F9FA;
141
+ --fragment-foreground: #37474F;
142
+ --fragment-keyword: #bb6bb2;
143
+ --fragment-keywordtype: #8258b3;
144
+ --fragment-keywordflow: #d67c3b;
145
+ --fragment-token: #438a59;
146
+ --fragment-comment: #969696;
147
+ --fragment-link: #5383d6;
148
+ --fragment-preprocessor: #46aaa5;
149
+ --fragment-linenumber-color: #797979;
150
+ --fragment-linenumber-background: #f4f4f5;
151
+ --fragment-linenumber-border: #e3e5e7;
152
+ --fragment-lineheight: 20px;
153
+
154
+ /* sidebar navigation (treeview) colors */
155
+ --side-nav-background: #fbfbfb;
156
+ --side-nav-foreground: var(--page-foreground-color);
157
+ --side-nav-arrow-opacity: 0;
158
+ --side-nav-arrow-hover-opacity: 0.9;
159
+
160
+ --toc-background: var(--side-nav-background);
161
+ --toc-foreground: var(--side-nav-foreground);
162
+
163
+ /* height of an item in any tree / collapsible table */
164
+ --tree-item-height: 30px;
165
+
166
+ --memname-font-size: var(--code-font-size);
167
+ --memtitle-font-size: 18px;
168
+
169
+ --webkit-scrollbar-size: 7px;
170
+ --webkit-scrollbar-padding: 4px;
171
+ --webkit-scrollbar-color: var(--separator-color);
172
+
173
+ --animation-duration: .12s
174
+ }
175
+
176
+ @media screen and (max-width: 767px) {
177
+ html {
178
+ --page-font-size: 16px;
179
+ --navigation-font-size: 16px;
180
+ --toc-font-size: 15px;
181
+ --code-font-size: 15px; /* affects code, fragment */
182
+ --title-font-size: 22px;
183
+ }
184
+ }
185
+
186
+ @media (prefers-color-scheme: dark) {
187
+ html:not(.light-mode) {
188
+ color-scheme: dark;
189
+
190
+ --primary-color: #1982d2;
191
+ --primary-dark-color: #86a9c4;
192
+ --primary-light-color: #4779ac;
193
+
194
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35);
195
+
196
+ --odd-color: rgba(100,100,100,.06);
197
+
198
+ --menu-selected-background: rgba(0,0,0,.4);
199
+
200
+ --page-background-color: #1C1D1F;
201
+ --page-foreground-color: #d2dbde;
202
+ --page-secondary-foreground-color: #859399;
203
+ --separator-color: #38393b;
204
+ --side-nav-background: #252628;
205
+
206
+ --code-background: #2a2c2f;
207
+
208
+ --tablehead-background: #2a2c2f;
209
+
210
+ --blockquote-background: #222325;
211
+ --blockquote-foreground: #7e8c92;
212
+
213
+ --warning-color: #3b2e04;
214
+ --warning-color-dark: #f1b602;
215
+ --warning-color-darker: #ceb670;
216
+ --note-color: #163750;
217
+ --note-color-dark: #1982D2;
218
+ --note-color-darker: #dcf0fa;
219
+ --todo-color: #2a2536;
220
+ --todo-color-dark: #7661b3;
221
+ --todo-color-darker: #ae9ed6;
222
+ --deprecated-color: #2e323b;
223
+ --deprecated-color-dark: #738396;
224
+ --deprecated-color-darker: #abb0bd;
225
+ --bug-color: #2e1917;
226
+ --bug-color-dark: #ad2617;
227
+ --bug-color-darker: #f5b1aa;
228
+ --invariant-color: #303a35;
229
+ --invariant-color-dark: #76ce96;
230
+ --invariant-color-darker: #cceed5;
231
+
232
+ --fragment-background: #282c34;
233
+ --fragment-foreground: #dbe4eb;
234
+ --fragment-keyword: #cc99cd;
235
+ --fragment-keywordtype: #ab99cd;
236
+ --fragment-keywordflow: #e08000;
237
+ --fragment-token: #7ec699;
238
+ --fragment-comment: #999999;
239
+ --fragment-link: #98c0e3;
240
+ --fragment-preprocessor: #65cabe;
241
+ --fragment-linenumber-color: #cccccc;
242
+ --fragment-linenumber-background: #35393c;
243
+ --fragment-linenumber-border: #1f1f1f;
244
+ }
245
+ }
246
+
247
+ /* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
248
+ html.dark-mode {
249
+ color-scheme: dark;
250
+
251
+ --primary-color: #1982d2;
252
+ --primary-dark-color: #86a9c4;
253
+ --primary-light-color: #4779ac;
254
+
255
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30);
256
+
257
+ --odd-color: rgba(100,100,100,.06);
258
+
259
+ --menu-selected-background: rgba(0,0,0,.4);
260
+
261
+ --page-background-color: #1C1D1F;
262
+ --page-foreground-color: #d2dbde;
263
+ --page-secondary-foreground-color: #859399;
264
+ --separator-color: #38393b;
265
+ --side-nav-background: #252628;
266
+
267
+ --code-background: #2a2c2f;
268
+
269
+ --tablehead-background: #2a2c2f;
270
+
271
+ --blockquote-background: #222325;
272
+ --blockquote-foreground: #7e8c92;
273
+
274
+ --warning-color: #3b2e04;
275
+ --warning-color-dark: #f1b602;
276
+ --warning-color-darker: #ceb670;
277
+ --note-color: #163750;
278
+ --note-color-dark: #1982D2;
279
+ --note-color-darker: #dcf0fa;
280
+ --todo-color: #2a2536;
281
+ --todo-color-dark: #7661b3;
282
+ --todo-color-darker: #ae9ed6;
283
+ --deprecated-color: #2e323b;
284
+ --deprecated-color-dark: #738396;
285
+ --deprecated-color-darker: #abb0bd;
286
+ --bug-color: #2e1917;
287
+ --bug-color-dark: #ad2617;
288
+ --bug-color-darker: #f5b1aa;
289
+ --invariant-color: #303a35;
290
+ --invariant-color-dark: #76ce96;
291
+ --invariant-color-darker: #cceed5;
292
+
293
+ --fragment-background: #282c34;
294
+ --fragment-foreground: #dbe4eb;
295
+ --fragment-keyword: #cc99cd;
296
+ --fragment-keywordtype: #ab99cd;
297
+ --fragment-keywordflow: #e08000;
298
+ --fragment-token: #7ec699;
299
+ --fragment-comment: #999999;
300
+ --fragment-link: #98c0e3;
301
+ --fragment-preprocessor: #65cabe;
302
+ --fragment-linenumber-color: #cccccc;
303
+ --fragment-linenumber-background: #35393c;
304
+ --fragment-linenumber-border: #1f1f1f;
305
+ }
306
+
307
+ body {
308
+ color: var(--page-foreground-color);
309
+ background-color: var(--page-background-color);
310
+ font-size: var(--page-font-size);
311
+ }
312
+
313
+ body, table, div, p, dl, #nav-tree .label, .title,
314
+ .sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname,
315
+ .SelectItem, #MSearchField, .navpath li.navelem a,
316
+ .navpath li.navelem a:hover, p.reference, p.definition {
317
+ font-family: var(--font-family);
318
+ }
319
+
320
+ h1, h2, h3, h4, h5 {
321
+ margin-top: 1em;
322
+ font-weight: 600;
323
+ line-height: initial;
324
+ }
325
+
326
+ p, div, table, dl, p.reference, p.definition {
327
+ font-size: var(--page-font-size);
328
+ }
329
+
330
+ p.reference, p.definition {
331
+ color: var(--page-secondary-foreground-color);
332
+ }
333
+
334
+ a:link, a:visited, a:hover, a:focus, a:active {
335
+ color: var(--primary-color) !important;
336
+ font-weight: 500;
337
+ }
338
+
339
+ a.anchor {
340
+ scroll-margin-top: var(--spacing-large);
341
+ display: block;
342
+ }
343
+
344
+ /*
345
+ Title and top navigation
346
+ */
347
+
348
+ #top {
349
+ background: var(--header-background);
350
+ border-bottom: 1px solid var(--separator-color);
351
+ }
352
+
353
+ @media screen and (min-width: 768px) {
354
+ #top {
355
+ display: flex;
356
+ flex-wrap: wrap;
357
+ justify-content: space-between;
358
+ align-items: center;
359
+ }
360
+ }
361
+
362
+ #main-nav {
363
+ flex-grow: 5;
364
+ padding: var(--spacing-small) var(--spacing-medium);
365
+ }
366
+
367
+ #titlearea {
368
+ width: auto;
369
+ padding: var(--spacing-medium) var(--spacing-large);
370
+ background: none;
371
+ color: var(--header-foreground);
372
+ border-bottom: none;
373
+ }
374
+
375
+ @media screen and (max-width: 767px) {
376
+ #titlearea {
377
+ padding-bottom: var(--spacing-small);
378
+ }
379
+ }
380
+
381
+ #titlearea table tbody tr {
382
+ height: auto !important;
383
+ }
384
+
385
+ #projectname {
386
+ font-size: var(--title-font-size);
387
+ font-weight: 600;
388
+ }
389
+
390
+ #projectnumber {
391
+ font-family: inherit;
392
+ font-size: 60%;
393
+ }
394
+
395
+ #projectbrief {
396
+ font-family: inherit;
397
+ font-size: 80%;
398
+ }
399
+
400
+ #projectlogo {
401
+ vertical-align: middle;
402
+ }
403
+
404
+ #projectlogo img {
405
+ max-height: calc(var(--title-font-size) * 2);
406
+ margin-right: var(--spacing-small);
407
+ }
408
+
409
+ .sm-dox, .tabs, .tabs2, .tabs3 {
410
+ background: none;
411
+ padding: 0;
412
+ }
413
+
414
+ .tabs, .tabs2, .tabs3 {
415
+ border-bottom: 1px solid var(--separator-color);
416
+ margin-bottom: -1px;
417
+ }
418
+
419
+ .main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
420
+ background: var(--page-secondary-foreground-color);
421
+ }
422
+
423
+ @media screen and (max-width: 767px) {
424
+ .sm-dox a span.sub-arrow {
425
+ background: var(--code-background);
426
+ }
427
+
428
+ #main-menu a.has-submenu span.sub-arrow {
429
+ color: var(--page-secondary-foreground-color);
430
+ border-radius: var(--border-radius-medium);
431
+ }
432
+
433
+ #main-menu a.has-submenu:hover span.sub-arrow {
434
+ color: var(--page-foreground-color);
435
+ }
436
+ }
437
+
438
+ @media screen and (min-width: 768px) {
439
+ .sm-dox li, .tablist li {
440
+ display: var(--menu-display);
441
+ }
442
+
443
+ .sm-dox a span.sub-arrow {
444
+ border-color: var(--header-foreground) transparent transparent transparent;
445
+ }
446
+
447
+ .sm-dox a:hover span.sub-arrow {
448
+ border-color: var(--menu-focus-foreground) transparent transparent transparent;
449
+ }
450
+
451
+ .sm-dox ul a span.sub-arrow {
452
+ border-color: transparent transparent transparent var(--page-foreground-color);
453
+ }
454
+
455
+ .sm-dox ul a:hover span.sub-arrow {
456
+ border-color: transparent transparent transparent var(--menu-focus-foreground);
457
+ }
458
+ }
459
+
460
+ .sm-dox ul {
461
+ background: var(--page-background-color);
462
+ box-shadow: var(--box-shadow);
463
+ border: 1px solid var(--separator-color);
464
+ border-radius: var(--border-radius-medium) !important;
465
+ padding: var(--spacing-small);
466
+ animation: ease-out 150ms slideInMenu;
467
+ }
468
+
469
+ @keyframes slideInMenu {
470
+ from {
471
+ opacity: 0;
472
+ transform: translate(0px, -2px);
473
+ }
474
+
475
+ to {
476
+ opacity: 1;
477
+ transform: translate(0px, 0px);
478
+ }
479
+ }
480
+
481
+ .sm-dox ul a {
482
+ color: var(--page-foreground-color) !important;
483
+ background: var(--page-background-color);
484
+ font-size: var(--navigation-font-size);
485
+ }
486
+
487
+ .sm-dox>li>ul:after {
488
+ border-bottom-color: var(--page-background-color) !important;
489
+ }
490
+
491
+ .sm-dox>li>ul:before {
492
+ border-bottom-color: var(--separator-color) !important;
493
+ }
494
+
495
+ .sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
496
+ font-size: var(--navigation-font-size) !important;
497
+ color: var(--menu-focus-foreground) !important;
498
+ text-shadow: none;
499
+ background-color: var(--menu-focus-background);
500
+ border-radius: var(--border-radius-small) !important;
501
+ }
502
+
503
+ .sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
504
+ text-shadow: none;
505
+ background: transparent;
506
+ background-image: none !important;
507
+ color: var(--header-foreground) !important;
508
+ font-weight: normal;
509
+ font-size: var(--navigation-font-size);
510
+ border-radius: var(--border-radius-small) !important;
511
+ }
512
+
513
+ .sm-dox a:focus {
514
+ outline: auto;
515
+ }
516
+
517
+ .sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
518
+ text-shadow: none;
519
+ font-weight: normal;
520
+ background: var(--menu-focus-background);
521
+ color: var(--menu-focus-foreground) !important;
522
+ border-radius: var(--border-radius-small) !important;
523
+ font-size: var(--navigation-font-size);
524
+ }
525
+
526
+ .tablist li.current {
527
+ border-radius: var(--border-radius-small);
528
+ background: var(--menu-selected-background);
529
+ }
530
+
531
+ .tablist li {
532
+ margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
533
+ }
534
+
535
+ .tablist a {
536
+ padding: 0 var(--spacing-large);
537
+ }
538
+
539
+
540
+ /*
541
+ Search box
542
+ */
543
+
544
+ #MSearchBox {
545
+ height: var(--searchbar-height);
546
+ background: var(--searchbar-background);
547
+ border-radius: var(--searchbar-border-radius);
548
+ border: 1px solid var(--separator-color);
549
+ overflow: hidden;
550
+ width: var(--searchbar-width);
551
+ position: relative;
552
+ box-shadow: none;
553
+ display: block;
554
+ margin-top: 0;
555
+ }
556
+
557
+ /* until Doxygen 1.9.4 */
558
+ .left img#MSearchSelect {
559
+ left: 0;
560
+ user-select: none;
561
+ padding-left: 8px;
562
+ }
563
+
564
+ /* Doxygen 1.9.5 */
565
+ .left span#MSearchSelect {
566
+ left: 0;
567
+ user-select: none;
568
+ margin-left: 8px;
569
+ padding: 0;
570
+ }
571
+
572
+ .left #MSearchSelect[src$=".png"] {
573
+ padding-left: 0
574
+ }
575
+
576
+ .SelectionMark {
577
+ user-select: none;
578
+ }
579
+
580
+ .tabs .left #MSearchSelect {
581
+ padding-left: 0;
582
+ }
583
+
584
+ .tabs #MSearchBox {
585
+ position: absolute;
586
+ right: var(--spacing-medium);
587
+ }
588
+
589
+ @media screen and (max-width: 767px) {
590
+ .tabs #MSearchBox {
591
+ position: relative;
592
+ right: 0;
593
+ margin-left: var(--spacing-medium);
594
+ margin-top: 0;
595
+ }
596
+ }
597
+
598
+ #MSearchSelectWindow, #MSearchResultsWindow {
599
+ z-index: 9999;
600
+ }
601
+
602
+ #MSearchBox.MSearchBoxActive {
603
+ border-color: var(--primary-color);
604
+ box-shadow: inset 0 0 0 1px var(--primary-color);
605
+ }
606
+
607
+ #main-menu > li:last-child {
608
+ margin-right: 0;
609
+ }
610
+
611
+ @media screen and (max-width: 767px) {
612
+ #main-menu > li:last-child {
613
+ height: 50px;
614
+ }
615
+ }
616
+
617
+ #MSearchField {
618
+ font-size: var(--navigation-font-size);
619
+ height: calc(var(--searchbar-height) - 2px);
620
+ background: transparent;
621
+ width: calc(var(--searchbar-width) - 64px);
622
+ }
623
+
624
+ .MSearchBoxActive #MSearchField {
625
+ color: var(--searchbar-foreground);
626
+ }
627
+
628
+ #MSearchSelect {
629
+ top: calc(calc(var(--searchbar-height) / 2) - 11px);
630
+ }
631
+
632
+ #MSearchBox span.left, #MSearchBox span.right {
633
+ background: none;
634
+ background-image: none;
635
+ }
636
+
637
+ #MSearchBox span.right {
638
+ padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
639
+ position: absolute;
640
+ right: var(--spacing-small);
641
+ }
642
+
643
+ .tabs #MSearchBox span.right {
644
+ top: calc(calc(var(--searchbar-height) / 2) - 12px);
645
+ }
646
+
647
+ @keyframes slideInSearchResults {
648
+ from {
649
+ opacity: 0;
650
+ transform: translate(0, 15px);
651
+ }
652
+
653
+ to {
654
+ opacity: 1;
655
+ transform: translate(0, 20px);
656
+ }
657
+ }
658
+
659
+ #MSearchResultsWindow {
660
+ left: auto !important;
661
+ right: var(--spacing-medium);
662
+ border-radius: var(--border-radius-large);
663
+ border: 1px solid var(--separator-color);
664
+ transform: translate(0, 20px);
665
+ box-shadow: var(--box-shadow);
666
+ animation: ease-out 280ms slideInSearchResults;
667
+ background: var(--page-background-color);
668
+ }
669
+
670
+ iframe#MSearchResults {
671
+ margin: 4px;
672
+ }
673
+
674
+ iframe {
675
+ color-scheme: normal;
676
+ }
677
+
678
+ @media (prefers-color-scheme: dark) {
679
+ html:not(.light-mode) iframe#MSearchResults {
680
+ filter: invert() hue-rotate(180deg);
681
+ }
682
+ }
683
+
684
+ html.dark-mode iframe#MSearchResults {
685
+ filter: invert() hue-rotate(180deg);
686
+ }
687
+
688
+ #MSearchResults .SRPage {
689
+ background-color: transparent;
690
+ }
691
+
692
+ #MSearchResults .SRPage .SREntry {
693
+ font-size: 10pt;
694
+ padding: var(--spacing-small) var(--spacing-medium);
695
+ }
696
+
697
+ #MSearchSelectWindow {
698
+ border: 1px solid var(--separator-color);
699
+ border-radius: var(--border-radius-medium);
700
+ box-shadow: var(--box-shadow);
701
+ background: var(--page-background-color);
702
+ padding-top: var(--spacing-small);
703
+ padding-bottom: var(--spacing-small);
704
+ }
705
+
706
+ #MSearchSelectWindow a.SelectItem {
707
+ font-size: var(--navigation-font-size);
708
+ line-height: var(--content-line-height);
709
+ margin: 0 var(--spacing-small);
710
+ border-radius: var(--border-radius-small);
711
+ color: var(--page-foreground-color) !important;
712
+ font-weight: normal;
713
+ }
714
+
715
+ #MSearchSelectWindow a.SelectItem:hover {
716
+ background: var(--menu-focus-background);
717
+ color: var(--menu-focus-foreground) !important;
718
+ }
719
+
720
+ @media screen and (max-width: 767px) {
721
+ #MSearchBox {
722
+ margin-top: var(--spacing-medium);
723
+ margin-bottom: var(--spacing-medium);
724
+ width: calc(100vw - 30px);
725
+ }
726
+
727
+ #main-menu > li:last-child {
728
+ float: none !important;
729
+ }
730
+
731
+ #MSearchField {
732
+ width: calc(100vw - 110px);
733
+ }
734
+
735
+ @keyframes slideInSearchResultsMobile {
736
+ from {
737
+ opacity: 0;
738
+ transform: translate(0, 15px);
739
+ }
740
+
741
+ to {
742
+ opacity: 1;
743
+ transform: translate(0, 20px);
744
+ }
745
+ }
746
+
747
+ #MSearchResultsWindow {
748
+ left: var(--spacing-medium) !important;
749
+ right: var(--spacing-medium);
750
+ overflow: auto;
751
+ transform: translate(0, 20px);
752
+ animation: ease-out 280ms slideInSearchResultsMobile;
753
+ width: auto !important;
754
+ }
755
+
756
+ /*
757
+ * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
758
+ */
759
+ label.main-menu-btn ~ #searchBoxPos1 {
760
+ top: 3px !important;
761
+ right: 6px !important;
762
+ left: 45px;
763
+ display: flex;
764
+ }
765
+
766
+ label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
767
+ margin-top: 0;
768
+ margin-bottom: 0;
769
+ flex-grow: 2;
770
+ float: left;
771
+ }
772
+ }
773
+
774
+ /*
775
+ Tree view
776
+ */
777
+
778
+ #side-nav {
779
+ padding: 0 !important;
780
+ background: var(--side-nav-background);
781
+ min-width: 8px;
782
+ max-width: 50vw;
783
+ }
784
+
785
+ @media screen and (max-width: 767px) {
786
+ #side-nav {
787
+ display: none;
788
+ }
789
+
790
+ #doc-content {
791
+ margin-left: 0 !important;
792
+ }
793
+ }
794
+
795
+ #nav-tree {
796
+ background: transparent;
797
+ margin-right: 1px;
798
+ }
799
+
800
+ #nav-tree .label {
801
+ font-size: var(--navigation-font-size);
802
+ }
803
+
804
+ #nav-tree .item {
805
+ height: var(--tree-item-height);
806
+ line-height: var(--tree-item-height);
807
+ }
808
+
809
+ #nav-sync {
810
+ bottom: 12px;
811
+ right: 12px;
812
+ top: auto !important;
813
+ user-select: none;
814
+ }
815
+
816
+ #nav-tree .selected {
817
+ text-shadow: none;
818
+ background-image: none;
819
+ background-color: transparent;
820
+ position: relative;
821
+ }
822
+
823
+ #nav-tree .selected::after {
824
+ content: "";
825
+ position: absolute;
826
+ top: 1px;
827
+ bottom: 1px;
828
+ left: 0;
829
+ width: 4px;
830
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
831
+ background: var(--primary-color);
832
+ }
833
+
834
+
835
+ #nav-tree a {
836
+ color: var(--side-nav-foreground) !important;
837
+ font-weight: normal;
838
+ }
839
+
840
+ #nav-tree a:focus {
841
+ outline-style: auto;
842
+ }
843
+
844
+ #nav-tree .arrow {
845
+ opacity: var(--side-nav-arrow-opacity);
846
+ }
847
+
848
+ .arrow {
849
+ color: inherit;
850
+ cursor: pointer;
851
+ font-size: 45%;
852
+ vertical-align: middle;
853
+ margin-right: 2px;
854
+ font-family: serif;
855
+ height: auto;
856
+ text-align: right;
857
+ }
858
+
859
+ #nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
860
+ opacity: var(--side-nav-arrow-hover-opacity);
861
+ }
862
+
863
+ #nav-tree .selected a {
864
+ color: var(--primary-color) !important;
865
+ font-weight: bolder;
866
+ font-weight: 600;
867
+ }
868
+
869
+ .ui-resizable-e {
870
+ width: 4px;
871
+ background: transparent;
872
+ box-shadow: inset -1px 0 0 0 var(--separator-color);
873
+ }
874
+
875
+ /*
876
+ Contents
877
+ */
878
+
879
+ div.header {
880
+ border-bottom: 1px solid var(--separator-color);
881
+ background-color: var(--page-background-color);
882
+ background-image: none;
883
+ }
884
+
885
+ @media screen and (min-width: 1000px) {
886
+ #doc-content > div > div.contents,
887
+ .PageDoc > div.contents {
888
+ display: flex;
889
+ flex-direction: row-reverse;
890
+ flex-wrap: nowrap;
891
+ align-items: flex-start;
892
+ }
893
+
894
+ div.contents .textblock {
895
+ min-width: 200px;
896
+ flex-grow: 1;
897
+ }
898
+ }
899
+
900
+ div.contents, div.header .title, div.header .summary {
901
+ max-width: var(--content-maxwidth);
902
+ }
903
+
904
+ div.contents, div.header .title {
905
+ line-height: initial;
906
+ margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
907
+ }
908
+
909
+ div.header .summary {
910
+ margin: var(--spacing-medium) auto 0 auto;
911
+ }
912
+
913
+ div.headertitle {
914
+ padding: 0;
915
+ }
916
+
917
+ div.header .title {
918
+ font-weight: 600;
919
+ font-size: 225%;
920
+ padding: var(--spacing-medium) var(--spacing-large);
921
+ word-break: break-word;
922
+ }
923
+
924
+ div.header .summary {
925
+ width: auto;
926
+ display: block;
927
+ float: none;
928
+ padding: 0 var(--spacing-large);
929
+ }
930
+
931
+ td.memSeparator {
932
+ border-color: var(--separator-color);
933
+ }
934
+
935
+ span.mlabel {
936
+ background: var(--primary-color);
937
+ border: none;
938
+ padding: 4px 9px;
939
+ border-radius: 12px;
940
+ margin-right: var(--spacing-medium);
941
+ }
942
+
943
+ span.mlabel:last-of-type {
944
+ margin-right: 2px;
945
+ }
946
+
947
+ div.contents {
948
+ padding: 0 var(--spacing-large);
949
+ }
950
+
951
+ div.contents p, div.contents li {
952
+ line-height: var(--content-line-height);
953
+ }
954
+
955
+ div.contents div.dyncontent {
956
+ margin: var(--spacing-medium) 0;
957
+ }
958
+
959
+ @media (prefers-color-scheme: dark) {
960
+ html:not(.light-mode) div.contents div.dyncontent img,
961
+ html:not(.light-mode) div.contents center img,
962
+ html:not(.light-mode) div.contents > table img,
963
+ html:not(.light-mode) div.contents div.dyncontent iframe,
964
+ html:not(.light-mode) div.contents center iframe,
965
+ html:not(.light-mode) div.contents table iframe,
966
+ html:not(.light-mode) div.contents .dotgraph iframe {
967
+ filter: brightness(89%) hue-rotate(180deg) invert();
968
+ }
969
+ }
970
+
971
+ html.dark-mode div.contents div.dyncontent img,
972
+ html.dark-mode div.contents center img,
973
+ html.dark-mode div.contents > table img,
974
+ html.dark-mode div.contents div.dyncontent iframe,
975
+ html.dark-mode div.contents center iframe,
976
+ html.dark-mode div.contents table iframe,
977
+ html.dark-mode div.contents .dotgraph iframe
978
+ {
979
+ filter: brightness(89%) hue-rotate(180deg) invert();
980
+ }
981
+
982
+ h2.groupheader {
983
+ border-bottom: 0px;
984
+ color: var(--page-foreground-color);
985
+ box-shadow:
986
+ 100px 0 var(--page-background-color),
987
+ -100px 0 var(--page-background-color),
988
+ 100px 0.75px var(--separator-color),
989
+ -100px 0.75px var(--separator-color),
990
+ 500px 0 var(--page-background-color),
991
+ -500px 0 var(--page-background-color),
992
+ 500px 0.75px var(--separator-color),
993
+ -500px 0.75px var(--separator-color),
994
+ 900px 0 var(--page-background-color),
995
+ -900px 0 var(--page-background-color),
996
+ 900px 0.75px var(--separator-color),
997
+ -900px 0.75px var(--separator-color),
998
+ 1400px 0 var(--page-background-color),
999
+ -1400px 0 var(--page-background-color),
1000
+ 1400px 0.75px var(--separator-color),
1001
+ -1400px 0.75px var(--separator-color),
1002
+ 1900px 0 var(--page-background-color),
1003
+ -1900px 0 var(--page-background-color),
1004
+ 1900px 0.75px var(--separator-color),
1005
+ -1900px 0.75px var(--separator-color);
1006
+ }
1007
+
1008
+ blockquote {
1009
+ margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
1010
+ padding: var(--spacing-small) var(--spacing-large);
1011
+ background: var(--blockquote-background);
1012
+ color: var(--blockquote-foreground);
1013
+ border-left: 0;
1014
+ overflow: visible;
1015
+ border-radius: var(--border-radius-medium);
1016
+ overflow: visible;
1017
+ position: relative;
1018
+ }
1019
+
1020
+ blockquote::before, blockquote::after {
1021
+ font-weight: bold;
1022
+ font-family: serif;
1023
+ font-size: 360%;
1024
+ opacity: .15;
1025
+ position: absolute;
1026
+ }
1027
+
1028
+ blockquote::before {
1029
+ content: "“";
1030
+ left: -10px;
1031
+ top: 4px;
1032
+ }
1033
+
1034
+ blockquote::after {
1035
+ content: "”";
1036
+ right: -8px;
1037
+ bottom: -25px;
1038
+ }
1039
+
1040
+ blockquote p {
1041
+ margin: var(--spacing-small) 0 var(--spacing-medium) 0;
1042
+ }
1043
+ .paramname {
1044
+ font-weight: 600;
1045
+ color: var(--primary-dark-color);
1046
+ }
1047
+
1048
+ .paramname > code {
1049
+ border: 0;
1050
+ }
1051
+
1052
+ table.params .paramname {
1053
+ font-weight: 600;
1054
+ font-family: var(--font-family-monospace);
1055
+ font-size: var(--code-font-size);
1056
+ padding-right: var(--spacing-small);
1057
+ line-height: var(--table-line-height);
1058
+ }
1059
+
1060
+ h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
1061
+ text-shadow: 0 0 15px var(--primary-light-color);
1062
+ }
1063
+
1064
+ .alphachar a {
1065
+ color: var(--page-foreground-color);
1066
+ }
1067
+
1068
+ .dotgraph {
1069
+ max-width: 100%;
1070
+ overflow-x: scroll;
1071
+ }
1072
+
1073
+ .dotgraph .caption {
1074
+ position: sticky;
1075
+ left: 0;
1076
+ }
1077
+
1078
+ /* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
1079
+ .interactive_dotgraph .dotgraph iframe {
1080
+ max-width: 100%;
1081
+ }
1082
+
1083
+ /*
1084
+ Table of Contents
1085
+ */
1086
+
1087
+ div.contents .toc {
1088
+ max-height: var(--toc-max-height);
1089
+ min-width: var(--toc-width);
1090
+ border: 0;
1091
+ border-left: 1px solid var(--separator-color);
1092
+ border-radius: 0;
1093
+ background-color: transparent;
1094
+ box-shadow: none;
1095
+ position: sticky;
1096
+ top: var(--toc-sticky-top);
1097
+ padding: 0 var(--spacing-large);
1098
+ margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
1099
+ }
1100
+
1101
+ div.toc h3 {
1102
+ color: var(--toc-foreground);
1103
+ font-size: var(--navigation-font-size);
1104
+ margin: var(--spacing-large) 0 var(--spacing-medium) 0;
1105
+ }
1106
+
1107
+ div.toc li {
1108
+ padding: 0;
1109
+ background: none;
1110
+ line-height: var(--toc-font-size);
1111
+ margin: var(--toc-font-size) 0 0 0;
1112
+ }
1113
+
1114
+ div.toc li::before {
1115
+ display: none;
1116
+ }
1117
+
1118
+ div.toc ul {
1119
+ margin-top: 0
1120
+ }
1121
+
1122
+ div.toc li a {
1123
+ font-size: var(--toc-font-size);
1124
+ color: var(--page-foreground-color) !important;
1125
+ text-decoration: none;
1126
+ }
1127
+
1128
+ div.toc li a:hover, div.toc li a.active {
1129
+ color: var(--primary-color) !important;
1130
+ }
1131
+
1132
+ div.toc li a.aboveActive {
1133
+ color: var(--page-secondary-foreground-color) !important;
1134
+ }
1135
+
1136
+
1137
+ @media screen and (max-width: 999px) {
1138
+ div.contents .toc {
1139
+ max-height: 45vh;
1140
+ float: none;
1141
+ width: auto;
1142
+ margin: 0 0 var(--spacing-medium) 0;
1143
+ position: relative;
1144
+ top: 0;
1145
+ position: relative;
1146
+ border: 1px solid var(--separator-color);
1147
+ border-radius: var(--border-radius-medium);
1148
+ background-color: var(--toc-background);
1149
+ box-shadow: var(--box-shadow);
1150
+ }
1151
+
1152
+ div.contents .toc.interactive {
1153
+ max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
1154
+ overflow: hidden;
1155
+ }
1156
+
1157
+ div.contents .toc > h3 {
1158
+ -webkit-tap-highlight-color: transparent;
1159
+ cursor: pointer;
1160
+ position: sticky;
1161
+ top: 0;
1162
+ background-color: var(--toc-background);
1163
+ margin: 0;
1164
+ padding: var(--spacing-large) 0;
1165
+ display: block;
1166
+ }
1167
+
1168
+ div.contents .toc.interactive > h3::before {
1169
+ content: "";
1170
+ width: 0;
1171
+ height: 0;
1172
+ border-left: 4px solid transparent;
1173
+ border-right: 4px solid transparent;
1174
+ border-top: 5px solid var(--primary-color);
1175
+ display: inline-block;
1176
+ margin-right: var(--spacing-small);
1177
+ margin-bottom: calc(var(--navigation-font-size) / 4);
1178
+ transform: rotate(-90deg);
1179
+ transition: transform var(--animation-duration) ease-out;
1180
+ }
1181
+
1182
+ div.contents .toc.interactive.open > h3::before {
1183
+ transform: rotate(0deg);
1184
+ }
1185
+
1186
+ div.contents .toc.interactive.open {
1187
+ max-height: 45vh;
1188
+ overflow: auto;
1189
+ transition: max-height 0.2s ease-in-out;
1190
+ }
1191
+
1192
+ div.contents .toc a, div.contents .toc a.active {
1193
+ color: var(--primary-color) !important;
1194
+ }
1195
+
1196
+ div.contents .toc a:hover {
1197
+ text-decoration: underline;
1198
+ }
1199
+ }
1200
+
1201
+ /*
1202
+ Code & Fragments
1203
+ */
1204
+
1205
+ code, div.fragment, pre.fragment {
1206
+ border-radius: var(--border-radius-small);
1207
+ border: 1px solid var(--separator-color);
1208
+ overflow: hidden;
1209
+ }
1210
+
1211
+ code {
1212
+ display: inline;
1213
+ background: var(--code-background);
1214
+ color: var(--code-foreground);
1215
+ padding: 2px 6px;
1216
+ }
1217
+
1218
+ div.fragment, pre.fragment {
1219
+ margin: var(--spacing-medium) 0;
1220
+ padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
1221
+ background: var(--fragment-background);
1222
+ color: var(--fragment-foreground);
1223
+ overflow-x: auto;
1224
+ }
1225
+
1226
+ @media screen and (max-width: 767px) {
1227
+ div.fragment, pre.fragment {
1228
+ border-top-right-radius: 0;
1229
+ border-bottom-right-radius: 0;
1230
+ border-right: 0;
1231
+ }
1232
+
1233
+ .contents > div.fragment,
1234
+ .textblock > div.fragment,
1235
+ .textblock > pre.fragment,
1236
+ .textblock > .tabbed > ul > li > div.fragment,
1237
+ .textblock > .tabbed > ul > li > pre.fragment,
1238
+ .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
1239
+ .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
1240
+ .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment,
1241
+ .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment,
1242
+ .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment {
1243
+ margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1244
+ border-radius: 0;
1245
+ border-left: 0;
1246
+ }
1247
+
1248
+ .textblock li > .fragment,
1249
+ .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
1250
+ margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1251
+ }
1252
+
1253
+ .memdoc li > .fragment,
1254
+ .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
1255
+ margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1256
+ }
1257
+
1258
+ .textblock ul, .memdoc ul {
1259
+ overflow: initial;
1260
+ }
1261
+
1262
+ .memdoc > div.fragment,
1263
+ .memdoc > pre.fragment,
1264
+ dl dd > div.fragment,
1265
+ dl dd pre.fragment,
1266
+ .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
1267
+ .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
1268
+ dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
1269
+ dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
1270
+ margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1271
+ border-radius: 0;
1272
+ border-left: 0;
1273
+ }
1274
+ }
1275
+
1276
+ code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span {
1277
+ font-family: var(--font-family-monospace);
1278
+ font-size: var(--code-font-size) !important;
1279
+ }
1280
+
1281
+ div.line:after {
1282
+ margin-right: var(--spacing-medium);
1283
+ }
1284
+
1285
+ div.fragment .line, pre.fragment {
1286
+ white-space: pre;
1287
+ word-wrap: initial;
1288
+ line-height: var(--fragment-lineheight);
1289
+ }
1290
+
1291
+ div.fragment span.keyword {
1292
+ color: var(--fragment-keyword);
1293
+ }
1294
+
1295
+ div.fragment span.keywordtype {
1296
+ color: var(--fragment-keywordtype);
1297
+ }
1298
+
1299
+ div.fragment span.keywordflow {
1300
+ color: var(--fragment-keywordflow);
1301
+ }
1302
+
1303
+ div.fragment span.stringliteral {
1304
+ color: var(--fragment-token)
1305
+ }
1306
+
1307
+ div.fragment span.comment {
1308
+ color: var(--fragment-comment);
1309
+ }
1310
+
1311
+ div.fragment a.code {
1312
+ color: var(--fragment-link) !important;
1313
+ }
1314
+
1315
+ div.fragment span.preprocessor {
1316
+ color: var(--fragment-preprocessor);
1317
+ }
1318
+
1319
+ div.fragment span.lineno {
1320
+ display: inline-block;
1321
+ width: 27px;
1322
+ border-right: none;
1323
+ background: var(--fragment-linenumber-background);
1324
+ color: var(--fragment-linenumber-color);
1325
+ }
1326
+
1327
+ div.fragment span.lineno a {
1328
+ background: none;
1329
+ color: var(--fragment-link) !important;
1330
+ }
1331
+
1332
+ div.fragment > .line:first-child .lineno {
1333
+ box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
1334
+ background-color: var(--fragment-linenumber-background) !important;
1335
+ }
1336
+
1337
+ div.line {
1338
+ border-radius: var(--border-radius-small);
1339
+ }
1340
+
1341
+ div.line.glow {
1342
+ background-color: var(--primary-light-color);
1343
+ box-shadow: none;
1344
+ }
1345
+
1346
+ /*
1347
+ dl warning, attention, note, deprecated, bug, ...
1348
+ */
1349
+
1350
+ dl.bug dt a, dl.deprecated dt a, dl.todo dt a {
1351
+ font-weight: bold !important;
1352
+ }
1353
+
1354
+ dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark {
1355
+ padding: var(--spacing-medium);
1356
+ margin: var(--spacing-medium) 0;
1357
+ color: var(--page-background-color);
1358
+ overflow: hidden;
1359
+ margin-left: 0;
1360
+ border-radius: var(--border-radius-small);
1361
+ }
1362
+
1363
+ dl.section dd {
1364
+ margin-bottom: 2px;
1365
+ }
1366
+
1367
+ dl.warning, dl.attention {
1368
+ background: var(--warning-color);
1369
+ border-left: 8px solid var(--warning-color-dark);
1370
+ color: var(--warning-color-darker);
1371
+ }
1372
+
1373
+ dl.warning dt, dl.attention dt {
1374
+ color: var(--warning-color-dark);
1375
+ }
1376
+
1377
+ dl.note, dl.remark {
1378
+ background: var(--note-color);
1379
+ border-left: 8px solid var(--note-color-dark);
1380
+ color: var(--note-color-darker);
1381
+ }
1382
+
1383
+ dl.note dt, dl.remark dt {
1384
+ color: var(--note-color-dark);
1385
+ }
1386
+
1387
+ dl.todo {
1388
+ background: var(--todo-color);
1389
+ border-left: 8px solid var(--todo-color-dark);
1390
+ color: var(--todo-color-darker);
1391
+ }
1392
+
1393
+ dl.todo dt a {
1394
+ color: var(--todo-color-dark) !important;
1395
+ }
1396
+
1397
+ dl.bug dt a {
1398
+ color: var(--todo-color-dark) !important;
1399
+ }
1400
+
1401
+ dl.bug {
1402
+ background: var(--bug-color);
1403
+ border-left: 8px solid var(--bug-color-dark);
1404
+ color: var(--bug-color-darker);
1405
+ }
1406
+
1407
+ dl.bug dt a {
1408
+ color: var(--bug-color-dark) !important;
1409
+ }
1410
+
1411
+ dl.deprecated {
1412
+ background: var(--deprecated-color);
1413
+ border-left: 8px solid var(--deprecated-color-dark);
1414
+ color: var(--deprecated-color-darker);
1415
+ }
1416
+
1417
+ dl.deprecated dt a {
1418
+ color: var(--deprecated-color-dark) !important;
1419
+ }
1420
+
1421
+ dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd {
1422
+ margin-inline-start: 0px;
1423
+ }
1424
+
1425
+ dl.invariant, dl.pre, dl.post {
1426
+ background: var(--invariant-color);
1427
+ border-left: 8px solid var(--invariant-color-dark);
1428
+ color: var(--invariant-color-darker);
1429
+ }
1430
+
1431
+ dl.invariant dt, dl.pre dt, dl.post dt {
1432
+ color: var(--invariant-color-dark);
1433
+ }
1434
+
1435
+ /*
1436
+ memitem
1437
+ */
1438
+
1439
+ div.memdoc, div.memproto, h2.memtitle {
1440
+ box-shadow: none;
1441
+ background-image: none;
1442
+ border: none;
1443
+ }
1444
+
1445
+ div.memdoc {
1446
+ padding: 0 var(--spacing-medium);
1447
+ background: var(--page-background-color);
1448
+ }
1449
+
1450
+ h2.memtitle, div.memitem {
1451
+ border: 1px solid var(--separator-color);
1452
+ box-shadow: var(--box-shadow);
1453
+ }
1454
+
1455
+ h2.memtitle {
1456
+ box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
1457
+ }
1458
+
1459
+ div.memitem {
1460
+ transition: none;
1461
+ }
1462
+
1463
+ div.memproto, h2.memtitle {
1464
+ background: var(--fragment-background);
1465
+ }
1466
+
1467
+ h2.memtitle {
1468
+ font-weight: 500;
1469
+ font-size: var(--memtitle-font-size);
1470
+ font-family: var(--font-family-monospace);
1471
+ border-bottom: none;
1472
+ border-top-left-radius: var(--border-radius-medium);
1473
+ border-top-right-radius: var(--border-radius-medium);
1474
+ word-break: break-all;
1475
+ position: relative;
1476
+ }
1477
+
1478
+ h2.memtitle:after {
1479
+ content: "";
1480
+ display: block;
1481
+ background: var(--fragment-background);
1482
+ height: var(--spacing-medium);
1483
+ bottom: calc(0px - var(--spacing-medium));
1484
+ left: 0;
1485
+ right: -14px;
1486
+ position: absolute;
1487
+ border-top-right-radius: var(--border-radius-medium);
1488
+ }
1489
+
1490
+ h2.memtitle > span.permalink {
1491
+ font-size: inherit;
1492
+ }
1493
+
1494
+ h2.memtitle > span.permalink > a {
1495
+ text-decoration: none;
1496
+ padding-left: 3px;
1497
+ margin-right: -4px;
1498
+ user-select: none;
1499
+ display: inline-block;
1500
+ margin-top: -6px;
1501
+ }
1502
+
1503
+ h2.memtitle > span.permalink > a:hover {
1504
+ color: var(--primary-dark-color) !important;
1505
+ }
1506
+
1507
+ a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
1508
+ border-color: var(--primary-light-color);
1509
+ }
1510
+
1511
+ div.memitem {
1512
+ border-top-right-radius: var(--border-radius-medium);
1513
+ border-bottom-right-radius: var(--border-radius-medium);
1514
+ border-bottom-left-radius: var(--border-radius-medium);
1515
+ overflow: hidden;
1516
+ display: block !important;
1517
+ }
1518
+
1519
+ div.memdoc {
1520
+ border-radius: 0;
1521
+ }
1522
+
1523
+ div.memproto {
1524
+ border-radius: 0 var(--border-radius-small) 0 0;
1525
+ overflow: auto;
1526
+ border-bottom: 1px solid var(--separator-color);
1527
+ padding: var(--spacing-medium);
1528
+ margin-bottom: -1px;
1529
+ }
1530
+
1531
+ div.memtitle {
1532
+ border-top-right-radius: var(--border-radius-medium);
1533
+ border-top-left-radius: var(--border-radius-medium);
1534
+ }
1535
+
1536
+ div.memproto table.memname {
1537
+ font-family: var(--font-family-monospace);
1538
+ color: var(--page-foreground-color);
1539
+ font-size: var(--memname-font-size);
1540
+ text-shadow: none;
1541
+ }
1542
+
1543
+ div.memproto div.memtemplate {
1544
+ font-family: var(--font-family-monospace);
1545
+ color: var(--primary-dark-color);
1546
+ font-size: var(--memname-font-size);
1547
+ margin-left: 2px;
1548
+ text-shadow: none;
1549
+ }
1550
+
1551
+ table.mlabels, table.mlabels > tbody {
1552
+ display: block;
1553
+ }
1554
+
1555
+ td.mlabels-left {
1556
+ width: auto;
1557
+ }
1558
+
1559
+ td.mlabels-right {
1560
+ margin-top: 3px;
1561
+ position: sticky;
1562
+ left: 0;
1563
+ }
1564
+
1565
+ table.mlabels > tbody > tr:first-child {
1566
+ display: flex;
1567
+ justify-content: space-between;
1568
+ flex-wrap: wrap;
1569
+ }
1570
+
1571
+ .memname, .memitem span.mlabels {
1572
+ margin: 0
1573
+ }
1574
+
1575
+ /*
1576
+ reflist
1577
+ */
1578
+
1579
+ dl.reflist {
1580
+ box-shadow: var(--box-shadow);
1581
+ border-radius: var(--border-radius-medium);
1582
+ border: 1px solid var(--separator-color);
1583
+ overflow: hidden;
1584
+ padding: 0;
1585
+ }
1586
+
1587
+
1588
+ dl.reflist dt, dl.reflist dd {
1589
+ box-shadow: none;
1590
+ text-shadow: none;
1591
+ background-image: none;
1592
+ border: none;
1593
+ padding: 12px;
1594
+ }
1595
+
1596
+
1597
+ dl.reflist dt {
1598
+ font-weight: 500;
1599
+ border-radius: 0;
1600
+ background: var(--code-background);
1601
+ border-bottom: 1px solid var(--separator-color);
1602
+ color: var(--page-foreground-color)
1603
+ }
1604
+
1605
+
1606
+ dl.reflist dd {
1607
+ background: none;
1608
+ }
1609
+
1610
+ /*
1611
+ Table
1612
+ */
1613
+
1614
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname),
1615
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
1616
+ display: inline-block;
1617
+ max-width: 100%;
1618
+ }
1619
+
1620
+ .contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
1621
+ margin-left: calc(0px - var(--spacing-large));
1622
+ margin-right: calc(0px - var(--spacing-large));
1623
+ max-width: calc(100% + 2 * var(--spacing-large));
1624
+ }
1625
+
1626
+ table.fieldtable,
1627
+ table.markdownTable tbody,
1628
+ table.doxtable tbody {
1629
+ border: none;
1630
+ margin: var(--spacing-medium) 0;
1631
+ box-shadow: 0 0 0 1px var(--separator-color);
1632
+ border-radius: var(--border-radius-small);
1633
+ }
1634
+
1635
+ table.markdownTable, table.doxtable, table.fieldtable {
1636
+ padding: 1px;
1637
+ }
1638
+
1639
+ table.doxtable caption {
1640
+ display: block;
1641
+ }
1642
+
1643
+ table.fieldtable {
1644
+ border-collapse: collapse;
1645
+ width: 100%;
1646
+ }
1647
+
1648
+ th.markdownTableHeadLeft,
1649
+ th.markdownTableHeadRight,
1650
+ th.markdownTableHeadCenter,
1651
+ th.markdownTableHeadNone,
1652
+ table.doxtable th {
1653
+ background: var(--tablehead-background);
1654
+ color: var(--tablehead-foreground);
1655
+ font-weight: 600;
1656
+ font-size: var(--page-font-size);
1657
+ }
1658
+
1659
+ th.markdownTableHeadLeft:first-child,
1660
+ th.markdownTableHeadRight:first-child,
1661
+ th.markdownTableHeadCenter:first-child,
1662
+ th.markdownTableHeadNone:first-child,
1663
+ table.doxtable tr th:first-child {
1664
+ border-top-left-radius: var(--border-radius-small);
1665
+ }
1666
+
1667
+ th.markdownTableHeadLeft:last-child,
1668
+ th.markdownTableHeadRight:last-child,
1669
+ th.markdownTableHeadCenter:last-child,
1670
+ th.markdownTableHeadNone:last-child,
1671
+ table.doxtable tr th:last-child {
1672
+ border-top-right-radius: var(--border-radius-small);
1673
+ }
1674
+
1675
+ table.markdownTable td,
1676
+ table.markdownTable th,
1677
+ table.fieldtable td,
1678
+ table.fieldtable th,
1679
+ table.doxtable td,
1680
+ table.doxtable th {
1681
+ border: 1px solid var(--separator-color);
1682
+ padding: var(--spacing-small) var(--spacing-medium);
1683
+ }
1684
+
1685
+ table.markdownTable td:last-child,
1686
+ table.markdownTable th:last-child,
1687
+ table.fieldtable td:last-child,
1688
+ table.fieldtable th:last-child,
1689
+ table.doxtable td:last-child,
1690
+ table.doxtable th:last-child {
1691
+ border-right: none;
1692
+ }
1693
+
1694
+ table.markdownTable td:first-child,
1695
+ table.markdownTable th:first-child,
1696
+ table.fieldtable td:first-child,
1697
+ table.fieldtable th:first-child,
1698
+ table.doxtable td:first-child,
1699
+ table.doxtable th:first-child {
1700
+ border-left: none;
1701
+ }
1702
+
1703
+ table.markdownTable tr:first-child td,
1704
+ table.markdownTable tr:first-child th,
1705
+ table.fieldtable tr:first-child td,
1706
+ table.fieldtable tr:first-child th,
1707
+ table.doxtable tr:first-child td,
1708
+ table.doxtable tr:first-child th {
1709
+ border-top: none;
1710
+ }
1711
+
1712
+ table.markdownTable tr:last-child td,
1713
+ table.markdownTable tr:last-child th,
1714
+ table.fieldtable tr:last-child td,
1715
+ table.fieldtable tr:last-child th,
1716
+ table.doxtable tr:last-child td,
1717
+ table.doxtable tr:last-child th {
1718
+ border-bottom: none;
1719
+ }
1720
+
1721
+ table.markdownTable tr, table.doxtable tr {
1722
+ border-bottom: 1px solid var(--separator-color);
1723
+ }
1724
+
1725
+ table.markdownTable tr:last-child, table.doxtable tr:last-child {
1726
+ border-bottom: none;
1727
+ }
1728
+
1729
+ .full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
1730
+ display: block;
1731
+ }
1732
+
1733
+ .full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
1734
+ display: table;
1735
+ width: 100%;
1736
+ }
1737
+
1738
+ table.fieldtable th {
1739
+ font-size: var(--page-font-size);
1740
+ font-weight: 600;
1741
+ background-image: none;
1742
+ background-color: var(--tablehead-background);
1743
+ color: var(--tablehead-foreground);
1744
+ }
1745
+
1746
+ table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th {
1747
+ border-bottom: 1px solid var(--separator-color);
1748
+ border-right: 1px solid var(--separator-color);
1749
+ }
1750
+
1751
+ table.fieldtable tr:last-child td:first-child {
1752
+ border-bottom-left-radius: var(--border-radius-small);
1753
+ }
1754
+
1755
+ table.fieldtable tr:last-child td:last-child {
1756
+ border-bottom-right-radius: var(--border-radius-small);
1757
+ }
1758
+
1759
+ .memberdecls td.glow, .fieldtable tr.glow {
1760
+ background-color: var(--primary-light-color);
1761
+ box-shadow: none;
1762
+ }
1763
+
1764
+ table.memberdecls {
1765
+ display: block;
1766
+ -webkit-tap-highlight-color: transparent;
1767
+ }
1768
+
1769
+ table.memberdecls tr[class^='memitem'] {
1770
+ font-family: var(--font-family-monospace);
1771
+ font-size: var(--code-font-size);
1772
+ }
1773
+
1774
+ table.memberdecls tr[class^='memitem'] .memTemplParams {
1775
+ font-family: var(--font-family-monospace);
1776
+ font-size: var(--code-font-size);
1777
+ color: var(--primary-dark-color);
1778
+ white-space: normal;
1779
+ }
1780
+
1781
+ table.memberdecls .memItemLeft,
1782
+ table.memberdecls .memItemRight,
1783
+ table.memberdecls .memTemplItemLeft,
1784
+ table.memberdecls .memTemplItemRight,
1785
+ table.memberdecls .memTemplParams {
1786
+ transition: none;
1787
+ padding-top: var(--spacing-small);
1788
+ padding-bottom: var(--spacing-small);
1789
+ border-top: 1px solid var(--separator-color);
1790
+ border-bottom: 1px solid var(--separator-color);
1791
+ background-color: var(--fragment-background);
1792
+ }
1793
+
1794
+ table.memberdecls .memTemplItemLeft,
1795
+ table.memberdecls .memTemplItemRight {
1796
+ padding-top: 2px;
1797
+ }
1798
+
1799
+ table.memberdecls .memTemplParams {
1800
+ border-bottom: 0;
1801
+ border-left: 1px solid var(--separator-color);
1802
+ border-right: 1px solid var(--separator-color);
1803
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
1804
+ padding-bottom: var(--spacing-small);
1805
+ }
1806
+
1807
+ table.memberdecls .memTemplItemLeft {
1808
+ border-radius: 0 0 0 var(--border-radius-small);
1809
+ border-left: 1px solid var(--separator-color);
1810
+ border-top: 0;
1811
+ }
1812
+
1813
+ table.memberdecls .memTemplItemRight {
1814
+ border-radius: 0 0 var(--border-radius-small) 0;
1815
+ border-right: 1px solid var(--separator-color);
1816
+ padding-left: 0;
1817
+ border-top: 0;
1818
+ }
1819
+
1820
+ table.memberdecls .memItemLeft {
1821
+ border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
1822
+ border-left: 1px solid var(--separator-color);
1823
+ padding-left: var(--spacing-medium);
1824
+ padding-right: 0;
1825
+ }
1826
+
1827
+ table.memberdecls .memItemRight {
1828
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
1829
+ border-right: 1px solid var(--separator-color);
1830
+ padding-right: var(--spacing-medium);
1831
+ padding-left: 0;
1832
+
1833
+ }
1834
+
1835
+ table.memberdecls .mdescLeft, table.memberdecls .mdescRight {
1836
+ background: none;
1837
+ color: var(--page-foreground-color);
1838
+ padding: var(--spacing-small) 0;
1839
+ }
1840
+
1841
+ table.memberdecls .memItemLeft,
1842
+ table.memberdecls .memTemplItemLeft {
1843
+ padding-right: var(--spacing-medium);
1844
+ }
1845
+
1846
+ table.memberdecls .memSeparator {
1847
+ background: var(--page-background-color);
1848
+ height: var(--spacing-large);
1849
+ border: 0;
1850
+ transition: none;
1851
+ }
1852
+
1853
+ table.memberdecls .groupheader {
1854
+ margin-bottom: var(--spacing-large);
1855
+ }
1856
+
1857
+ table.memberdecls .inherit_header td {
1858
+ padding: 0 0 var(--spacing-medium) 0;
1859
+ text-indent: -12px;
1860
+ color: var(--page-secondary-foreground-color);
1861
+ }
1862
+
1863
+ table.memberdecls img[src="closed.png"],
1864
+ table.memberdecls img[src="open.png"],
1865
+ div.dynheader img[src="open.png"],
1866
+ div.dynheader img[src="closed.png"] {
1867
+ width: 0;
1868
+ height: 0;
1869
+ border-left: 4px solid transparent;
1870
+ border-right: 4px solid transparent;
1871
+ border-top: 5px solid var(--primary-color);
1872
+ margin-top: 8px;
1873
+ display: block;
1874
+ float: left;
1875
+ margin-left: -10px;
1876
+ transition: transform var(--animation-duration) ease-out;
1877
+ }
1878
+
1879
+ table.memberdecls img {
1880
+ margin-right: 10px;
1881
+ }
1882
+
1883
+ table.memberdecls img[src="closed.png"],
1884
+ div.dynheader img[src="closed.png"] {
1885
+ transform: rotate(-90deg);
1886
+
1887
+ }
1888
+
1889
+ .compoundTemplParams {
1890
+ font-family: var(--font-family-monospace);
1891
+ color: var(--primary-dark-color);
1892
+ font-size: var(--code-font-size);
1893
+ }
1894
+
1895
+ @media screen and (max-width: 767px) {
1896
+
1897
+ table.memberdecls .memItemLeft,
1898
+ table.memberdecls .memItemRight,
1899
+ table.memberdecls .mdescLeft,
1900
+ table.memberdecls .mdescRight,
1901
+ table.memberdecls .memTemplItemLeft,
1902
+ table.memberdecls .memTemplItemRight,
1903
+ table.memberdecls .memTemplParams {
1904
+ display: block;
1905
+ text-align: left;
1906
+ padding-left: var(--spacing-large);
1907
+ margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
1908
+ border-right: none;
1909
+ border-left: none;
1910
+ border-radius: 0;
1911
+ white-space: normal;
1912
+ }
1913
+
1914
+ table.memberdecls .memItemLeft,
1915
+ table.memberdecls .mdescLeft,
1916
+ table.memberdecls .memTemplItemLeft {
1917
+ border-bottom: 0;
1918
+ padding-bottom: 0;
1919
+ }
1920
+
1921
+ table.memberdecls .memTemplItemLeft {
1922
+ padding-top: 0;
1923
+ }
1924
+
1925
+ table.memberdecls .mdescLeft {
1926
+ margin-bottom: calc(0px - var(--page-font-size));
1927
+ }
1928
+
1929
+ table.memberdecls .memItemRight,
1930
+ table.memberdecls .mdescRight,
1931
+ table.memberdecls .memTemplItemRight {
1932
+ border-top: 0;
1933
+ padding-top: 0;
1934
+ padding-right: var(--spacing-large);
1935
+ overflow-x: auto;
1936
+ }
1937
+
1938
+ table.memberdecls tr[class^='memitem']:not(.inherit) {
1939
+ display: block;
1940
+ width: calc(100vw - 2 * var(--spacing-large));
1941
+ }
1942
+
1943
+ table.memberdecls .mdescRight {
1944
+ color: var(--page-foreground-color);
1945
+ }
1946
+
1947
+ table.memberdecls tr.inherit {
1948
+ visibility: hidden;
1949
+ }
1950
+
1951
+ table.memberdecls tr[style="display: table-row;"] {
1952
+ display: block !important;
1953
+ visibility: visible;
1954
+ width: calc(100vw - 2 * var(--spacing-large));
1955
+ animation: fade .5s;
1956
+ }
1957
+
1958
+ @keyframes fade {
1959
+ 0% {
1960
+ opacity: 0;
1961
+ max-height: 0;
1962
+ }
1963
+
1964
+ 100% {
1965
+ opacity: 1;
1966
+ max-height: 200px;
1967
+ }
1968
+ }
1969
+ }
1970
+
1971
+
1972
+ /*
1973
+ Horizontal Rule
1974
+ */
1975
+
1976
+ hr {
1977
+ margin-top: var(--spacing-large);
1978
+ margin-bottom: var(--spacing-large);
1979
+ height: 1px;
1980
+ background-color: var(--separator-color);
1981
+ border: 0;
1982
+ }
1983
+
1984
+ .contents hr {
1985
+ box-shadow: 100px 0 0 var(--separator-color),
1986
+ -100px 0 0 var(--separator-color),
1987
+ 500px 0 0 var(--separator-color),
1988
+ -500px 0 0 var(--separator-color),
1989
+ 1500px 0 0 var(--separator-color),
1990
+ -1500px 0 0 var(--separator-color),
1991
+ 2000px 0 0 var(--separator-color),
1992
+ -2000px 0 0 var(--separator-color);
1993
+ }
1994
+
1995
+ .contents img, .contents .center, .contents center, .contents div.image object {
1996
+ max-width: 100%;
1997
+ overflow: auto;
1998
+ }
1999
+
2000
+ @media screen and (max-width: 767px) {
2001
+ .contents .dyncontent > .center, .contents > center {
2002
+ margin-left: calc(0px - var(--spacing-large));
2003
+ margin-right: calc(0px - var(--spacing-large));
2004
+ max-width: calc(100% + 2 * var(--spacing-large));
2005
+ }
2006
+ }
2007
+
2008
+ /*
2009
+ Directories
2010
+ */
2011
+ div.directory {
2012
+ border-top: 1px solid var(--separator-color);
2013
+ border-bottom: 1px solid var(--separator-color);
2014
+ width: auto;
2015
+ }
2016
+
2017
+ table.directory {
2018
+ font-family: var(--font-family);
2019
+ font-size: var(--page-font-size);
2020
+ font-weight: normal;
2021
+ width: 100%;
2022
+ }
2023
+
2024
+ table.directory td.entry, table.directory td.desc {
2025
+ padding: calc(var(--spacing-small) / 2) var(--spacing-small);
2026
+ line-height: var(--table-line-height);
2027
+ }
2028
+
2029
+ table.directory tr.even td:last-child {
2030
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
2031
+ }
2032
+
2033
+ table.directory tr.even td:first-child {
2034
+ border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
2035
+ }
2036
+
2037
+ table.directory tr.even:last-child td:last-child {
2038
+ border-radius: 0 var(--border-radius-small) 0 0;
2039
+ }
2040
+
2041
+ table.directory tr.even:last-child td:first-child {
2042
+ border-radius: var(--border-radius-small) 0 0 0;
2043
+ }
2044
+
2045
+ table.directory td.desc {
2046
+ min-width: 250px;
2047
+ }
2048
+
2049
+ table.directory tr.even {
2050
+ background-color: var(--odd-color);
2051
+ }
2052
+
2053
+ table.directory tr.odd {
2054
+ background-color: transparent;
2055
+ }
2056
+
2057
+ .icona {
2058
+ width: auto;
2059
+ height: auto;
2060
+ margin: 0 var(--spacing-small);
2061
+ }
2062
+
2063
+ .icon {
2064
+ background: var(--primary-color);
2065
+ border-radius: var(--border-radius-small);
2066
+ font-size: var(--page-font-size);
2067
+ padding: calc(var(--page-font-size) / 5);
2068
+ line-height: var(--page-font-size);
2069
+ transform: scale(0.8);
2070
+ height: auto;
2071
+ width: var(--page-font-size);
2072
+ user-select: none;
2073
+ }
2074
+
2075
+ .iconfopen, .icondoc, .iconfclosed {
2076
+ background-position: center;
2077
+ margin-bottom: 0;
2078
+ height: var(--table-line-height);
2079
+ }
2080
+
2081
+ .icondoc {
2082
+ filter: saturate(0.2);
2083
+ }
2084
+
2085
+ @media screen and (max-width: 767px) {
2086
+ div.directory {
2087
+ margin-left: calc(0px - var(--spacing-large));
2088
+ margin-right: calc(0px - var(--spacing-large));
2089
+ }
2090
+ }
2091
+
2092
+ @media (prefers-color-scheme: dark) {
2093
+ html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
2094
+ filter: hue-rotate(180deg) invert();
2095
+ }
2096
+ }
2097
+
2098
+ html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
2099
+ filter: hue-rotate(180deg) invert();
2100
+ }
2101
+
2102
+ /*
2103
+ Class list
2104
+ */
2105
+
2106
+ .classindex dl.odd {
2107
+ background: var(--odd-color);
2108
+ border-radius: var(--border-radius-small);
2109
+ }
2110
+
2111
+ .classindex dl.even {
2112
+ background-color: transparent;
2113
+ }
2114
+
2115
+ /*
2116
+ Class Index Doxygen 1.8
2117
+ */
2118
+
2119
+ table.classindex {
2120
+ margin-left: 0;
2121
+ margin-right: 0;
2122
+ width: 100%;
2123
+ }
2124
+
2125
+ table.classindex table div.ah {
2126
+ background-image: none;
2127
+ background-color: initial;
2128
+ border-color: var(--separator-color);
2129
+ color: var(--page-foreground-color);
2130
+ box-shadow: var(--box-shadow);
2131
+ border-radius: var(--border-radius-large);
2132
+ padding: var(--spacing-small);
2133
+ }
2134
+
2135
+ div.qindex {
2136
+ background-color: var(--odd-color);
2137
+ border-radius: var(--border-radius-small);
2138
+ border: 1px solid var(--separator-color);
2139
+ padding: var(--spacing-small) 0;
2140
+ }
2141
+
2142
+ /*
2143
+ Footer and nav-path
2144
+ */
2145
+
2146
+ #nav-path {
2147
+ width: 100%;
2148
+ }
2149
+
2150
+ #nav-path ul {
2151
+ background-image: none;
2152
+ background: var(--page-background-color);
2153
+ border: none;
2154
+ border-top: 1px solid var(--separator-color);
2155
+ border-bottom: 1px solid var(--separator-color);
2156
+ border-bottom: 0;
2157
+ box-shadow: 0 0.75px 0 var(--separator-color);
2158
+ font-size: var(--navigation-font-size);
2159
+ }
2160
+
2161
+ img.footer {
2162
+ width: 60px;
2163
+ }
2164
+
2165
+ .navpath li.footer {
2166
+ color: var(--page-secondary-foreground-color);
2167
+ }
2168
+
2169
+ address.footer {
2170
+ color: var(--page-secondary-foreground-color);
2171
+ margin-bottom: var(--spacing-large);
2172
+ }
2173
+
2174
+ #nav-path li.navelem {
2175
+ background-image: none;
2176
+ display: flex;
2177
+ align-items: center;
2178
+ }
2179
+
2180
+ .navpath li.navelem a {
2181
+ text-shadow: none;
2182
+ display: inline-block;
2183
+ color: var(--primary-color) !important;
2184
+ }
2185
+
2186
+ .navpath li.navelem b {
2187
+ color: var(--primary-dark-color);
2188
+ font-weight: 500;
2189
+ }
2190
+
2191
+ li.navelem {
2192
+ padding: 0;
2193
+ margin-left: -8px;
2194
+ }
2195
+
2196
+ li.navelem:first-child {
2197
+ margin-left: var(--spacing-large);
2198
+ }
2199
+
2200
+ li.navelem:first-child:before {
2201
+ display: none;
2202
+ }
2203
+
2204
+ #nav-path li.navelem:after {
2205
+ content: '';
2206
+ border: 5px solid var(--page-background-color);
2207
+ border-bottom-color: transparent;
2208
+ border-right-color: transparent;
2209
+ border-top-color: transparent;
2210
+ transform: translateY(-1px) scaleY(4.2);
2211
+ z-index: 10;
2212
+ margin-left: 6px;
2213
+ }
2214
+
2215
+ #nav-path li.navelem:before {
2216
+ content: '';
2217
+ border: 5px solid var(--separator-color);
2218
+ border-bottom-color: transparent;
2219
+ border-right-color: transparent;
2220
+ border-top-color: transparent;
2221
+ transform: translateY(-1px) scaleY(3.2);
2222
+ margin-right: var(--spacing-small);
2223
+ }
2224
+
2225
+ .navpath li.navelem a:hover {
2226
+ color: var(--primary-color);
2227
+ }
2228
+
2229
+ /*
2230
+ Scrollbars for Webkit
2231
+ */
2232
+
2233
+ #nav-tree::-webkit-scrollbar,
2234
+ div.fragment::-webkit-scrollbar,
2235
+ pre.fragment::-webkit-scrollbar,
2236
+ div.memproto::-webkit-scrollbar,
2237
+ .contents center::-webkit-scrollbar,
2238
+ .contents .center::-webkit-scrollbar,
2239
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar,
2240
+ div.contents .toc::-webkit-scrollbar,
2241
+ .contents .dotgraph::-webkit-scrollbar,
2242
+ .contents .tabs-overview-container::-webkit-scrollbar {
2243
+ background: transparent;
2244
+ width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2245
+ height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2246
+ }
2247
+
2248
+ #nav-tree::-webkit-scrollbar-thumb,
2249
+ div.fragment::-webkit-scrollbar-thumb,
2250
+ pre.fragment::-webkit-scrollbar-thumb,
2251
+ div.memproto::-webkit-scrollbar-thumb,
2252
+ .contents center::-webkit-scrollbar-thumb,
2253
+ .contents .center::-webkit-scrollbar-thumb,
2254
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb,
2255
+ div.contents .toc::-webkit-scrollbar-thumb,
2256
+ .contents .dotgraph::-webkit-scrollbar-thumb,
2257
+ .contents .tabs-overview-container::-webkit-scrollbar-thumb {
2258
+ background-color: transparent;
2259
+ border: var(--webkit-scrollbar-padding) solid transparent;
2260
+ border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2261
+ background-clip: padding-box;
2262
+ }
2263
+
2264
+ #nav-tree:hover::-webkit-scrollbar-thumb,
2265
+ div.fragment:hover::-webkit-scrollbar-thumb,
2266
+ pre.fragment:hover::-webkit-scrollbar-thumb,
2267
+ div.memproto:hover::-webkit-scrollbar-thumb,
2268
+ .contents center:hover::-webkit-scrollbar-thumb,
2269
+ .contents .center:hover::-webkit-scrollbar-thumb,
2270
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb,
2271
+ div.contents .toc:hover::-webkit-scrollbar-thumb,
2272
+ .contents .dotgraph:hover::-webkit-scrollbar-thumb,
2273
+ .contents .tabs-overview-container:hover::-webkit-scrollbar-thumb {
2274
+ background-color: var(--webkit-scrollbar-color);
2275
+ }
2276
+
2277
+ #nav-tree::-webkit-scrollbar-track,
2278
+ div.fragment::-webkit-scrollbar-track,
2279
+ pre.fragment::-webkit-scrollbar-track,
2280
+ div.memproto::-webkit-scrollbar-track,
2281
+ .contents center::-webkit-scrollbar-track,
2282
+ .contents .center::-webkit-scrollbar-track,
2283
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track,
2284
+ div.contents .toc::-webkit-scrollbar-track,
2285
+ .contents .dotgraph::-webkit-scrollbar-track,
2286
+ .contents .tabs-overview-container::-webkit-scrollbar-track {
2287
+ background: transparent;
2288
+ }
2289
+
2290
+ #nav-tree::-webkit-scrollbar-corner {
2291
+ background-color: var(--side-nav-background);
2292
+ }
2293
+
2294
+ #nav-tree,
2295
+ div.fragment,
2296
+ pre.fragment,
2297
+ div.memproto,
2298
+ .contents center,
2299
+ .contents .center,
2300
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
2301
+ div.contents .toc {
2302
+ overflow-x: auto;
2303
+ overflow-x: overlay;
2304
+ }
2305
+
2306
+ #nav-tree {
2307
+ overflow-x: auto;
2308
+ overflow-y: auto;
2309
+ overflow-y: overlay;
2310
+ }
2311
+
2312
+ /*
2313
+ Scrollbars for Firefox
2314
+ */
2315
+
2316
+ #nav-tree,
2317
+ div.fragment,
2318
+ pre.fragment,
2319
+ div.memproto,
2320
+ .contents center,
2321
+ .contents .center,
2322
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
2323
+ div.contents .toc,
2324
+ .contents .dotgraph,
2325
+ .contents .tabs-overview-container {
2326
+ scrollbar-width: thin;
2327
+ }
2328
+
2329
+ /*
2330
+ Optional Dark mode toggle button
2331
+ */
2332
+
2333
+ doxygen-awesome-dark-mode-toggle {
2334
+ display: inline-block;
2335
+ margin: 0 0 0 var(--spacing-small);
2336
+ padding: 0;
2337
+ width: var(--searchbar-height);
2338
+ height: var(--searchbar-height);
2339
+ background: none;
2340
+ border: none;
2341
+ border-radius: var(--searchbar-height);
2342
+ vertical-align: middle;
2343
+ text-align: center;
2344
+ line-height: var(--searchbar-height);
2345
+ font-size: 22px;
2346
+ display: flex;
2347
+ align-items: center;
2348
+ justify-content: center;
2349
+ user-select: none;
2350
+ cursor: pointer;
2351
+ }
2352
+
2353
+ doxygen-awesome-dark-mode-toggle > svg {
2354
+ transition: transform var(--animation-duration) ease-in-out;
2355
+ }
2356
+
2357
+ doxygen-awesome-dark-mode-toggle:active > svg {
2358
+ transform: scale(.5);
2359
+ }
2360
+
2361
+ doxygen-awesome-dark-mode-toggle:hover {
2362
+ background-color: rgba(0,0,0,.03);
2363
+ }
2364
+
2365
+ html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
2366
+ background-color: rgba(0,0,0,.18);
2367
+ }
2368
+
2369
+ /*
2370
+ Optional fragment copy button
2371
+ */
2372
+ .doxygen-awesome-fragment-wrapper {
2373
+ position: relative;
2374
+ }
2375
+
2376
+ doxygen-awesome-fragment-copy-button {
2377
+ opacity: 0;
2378
+ background: var(--fragment-background);
2379
+ width: 28px;
2380
+ height: 28px;
2381
+ position: absolute;
2382
+ right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
2383
+ top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
2384
+ border: 1px solid var(--fragment-foreground);
2385
+ cursor: pointer;
2386
+ border-radius: var(--border-radius-small);
2387
+ display: flex;
2388
+ justify-content: center;
2389
+ align-items: center;
2390
+ }
2391
+
2392
+ .doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success {
2393
+ opacity: .28;
2394
+ }
2395
+
2396
+ doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success {
2397
+ opacity: 1 !important;
2398
+ }
2399
+
2400
+ doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
2401
+ transform: scale(.91);
2402
+ }
2403
+
2404
+ doxygen-awesome-fragment-copy-button svg {
2405
+ fill: var(--fragment-foreground);
2406
+ width: 18px;
2407
+ height: 18px;
2408
+ }
2409
+
2410
+ doxygen-awesome-fragment-copy-button.success svg {
2411
+ fill: rgb(14, 168, 14);
2412
+ }
2413
+
2414
+ doxygen-awesome-fragment-copy-button.success {
2415
+ border-color: rgb(14, 168, 14);
2416
+ }
2417
+
2418
+ @media screen and (max-width: 767px) {
2419
+ .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2420
+ .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2421
+ .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2422
+ .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2423
+ dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
2424
+ right: 0;
2425
+ }
2426
+ }
2427
+
2428
+ /*
2429
+ Optional paragraph link button
2430
+ */
2431
+
2432
+ a.anchorlink {
2433
+ font-size: 90%;
2434
+ margin-left: var(--spacing-small);
2435
+ color: var(--page-foreground-color) !important;
2436
+ text-decoration: none;
2437
+ opacity: .15;
2438
+ display: none;
2439
+ transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out;
2440
+ }
2441
+
2442
+ a.anchorlink svg {
2443
+ fill: var(--page-foreground-color);
2444
+ }
2445
+
2446
+ h3 a.anchorlink svg, h4 a.anchorlink svg {
2447
+ margin-bottom: -3px;
2448
+ margin-top: -4px;
2449
+ }
2450
+
2451
+ a.anchorlink:hover {
2452
+ opacity: .45;
2453
+ }
2454
+
2455
+ h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink {
2456
+ display: inline-block;
2457
+ }
2458
+
2459
+ /*
2460
+ Optional tab feature
2461
+ */
2462
+
2463
+ .tabbed ul {
2464
+ padding-inline-start: 0px;
2465
+ margin: 0;
2466
+ padding: var(--spacing-small) 0;
2467
+ }
2468
+
2469
+ .tabbed li {
2470
+ display: none;
2471
+ }
2472
+
2473
+ .tabbed li.selected {
2474
+ display: block;
2475
+ }
2476
+
2477
+ .tabs-overview-container {
2478
+ overflow-x: auto;
2479
+ display: block;
2480
+ overflow-y: visible;
2481
+ }
2482
+
2483
+ .tabs-overview {
2484
+ border-bottom: 1px solid var(--separator-color);
2485
+ display: flex;
2486
+ flex-direction: row;
2487
+ }
2488
+
2489
+ @media screen and (max-width: 767px) {
2490
+ .tabs-overview-container {
2491
+ margin: 0 calc(0px - var(--spacing-large));
2492
+ }
2493
+ .tabs-overview {
2494
+ padding: 0 var(--spacing-large)
2495
+ }
2496
+ }
2497
+
2498
+ .tabs-overview button.tab-button {
2499
+ color: var(--page-foreground-color);
2500
+ margin: 0;
2501
+ border: none;
2502
+ background: transparent;
2503
+ padding: calc(var(--spacing-large) / 2) 0;
2504
+ display: inline-block;
2505
+ font-size: var(--page-font-size);
2506
+ cursor: pointer;
2507
+ box-shadow: 0 1px 0 0 var(--separator-color);
2508
+ position: relative;
2509
+
2510
+ -webkit-tap-highlight-color: transparent;
2511
+ }
2512
+
2513
+ .tabs-overview button.tab-button .tab-title::before {
2514
+ display: block;
2515
+ content: attr(title);
2516
+ font-weight: 600;
2517
+ height: 0;
2518
+ overflow: hidden;
2519
+ visibility: hidden;
2520
+ }
2521
+
2522
+ .tabs-overview button.tab-button .tab-title {
2523
+ float: left;
2524
+ white-space: nowrap;
2525
+ font-weight: normal;
2526
+ padding: calc(var(--spacing-large) / 2) var(--spacing-large);
2527
+ border-radius: var(--border-radius-medium);
2528
+ transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out;
2529
+ }
2530
+
2531
+ .tabs-overview button.tab-button:not(:last-child) .tab-title {
2532
+ box-shadow: 8px 0 0 -7px var(--separator-color);
2533
+ }
2534
+
2535
+ .tabs-overview button.tab-button:hover .tab-title {
2536
+ background: var(--separator-color);
2537
+ box-shadow: none;
2538
+ }
2539
+
2540
+ .tabs-overview button.tab-button.active .tab-title {
2541
+ font-weight: 600;
2542
+ }
2543
+
2544
+ .tabs-overview button.tab-button::after {
2545
+ content: '';
2546
+ display: block;
2547
+ position: absolute;
2548
+ left: 0;
2549
+ bottom: 0;
2550
+ right: 0;
2551
+ height: 0;
2552
+ width: 0%;
2553
+ margin: 0 auto;
2554
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
2555
+ background-color: var(--primary-color);
2556
+ transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out;
2557
+ }
2558
+
2559
+ .tabs-overview button.tab-button.active::after {
2560
+ width: 100%;
2561
+ box-sizing: border-box;
2562
+ height: 3px;
2563
+ }
2564
+
2565
+
2566
+ /*
2567
+ Navigation Buttons
2568
+ */
2569
+
2570
+ .section_buttons:not(:empty) {
2571
+ margin-top: calc(var(--spacing-large) * 3);
2572
+ }
2573
+
2574
+ .section_buttons table.markdownTable {
2575
+ display: block;
2576
+ width: 100%;
2577
+ }
2578
+
2579
+ .section_buttons table.markdownTable tbody {
2580
+ display: table !important;
2581
+ width: 100%;
2582
+ box-shadow: none;
2583
+ border-spacing: 10px;
2584
+ }
2585
+
2586
+ .section_buttons table.markdownTable td {
2587
+ padding: 0;
2588
+ }
2589
+
2590
+ .section_buttons table.markdownTable th {
2591
+ display: none;
2592
+ }
2593
+
2594
+ .section_buttons table.markdownTable tr.markdownTableHead {
2595
+ border: none;
2596
+ }
2597
+
2598
+ .section_buttons tr th, .section_buttons tr td {
2599
+ background: none;
2600
+ border: none;
2601
+ padding: var(--spacing-large) 0 var(--spacing-small);
2602
+ }
2603
+
2604
+ .section_buttons a {
2605
+ display: inline-block;
2606
+ border: 1px solid var(--separator-color);
2607
+ border-radius: var(--border-radius-medium);
2608
+ color: var(--page-secondary-foreground-color) !important;
2609
+ text-decoration: none;
2610
+ transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out;
2611
+ }
2612
+
2613
+ .section_buttons a:hover {
2614
+ color: var(--page-foreground-color) !important;
2615
+ background-color: var(--odd-color);
2616
+ }
2617
+
2618
+ .section_buttons tr td.markdownTableBodyLeft a {
2619
+ padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2);
2620
+ }
2621
+
2622
+ .section_buttons tr td.markdownTableBodyRight a {
2623
+ padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
2624
+ }
2625
+
2626
+ .section_buttons tr td.markdownTableBodyLeft a::before,
2627
+ .section_buttons tr td.markdownTableBodyRight a::after {
2628
+ color: var(--page-secondary-foreground-color) !important;
2629
+ display: inline-block;
2630
+ transition: color .08s ease-in-out, transform .09s ease-in-out;
2631
+ }
2632
+
2633
+ .section_buttons tr td.markdownTableBodyLeft a::before {
2634
+ content: '〈';
2635
+ padding-right: var(--spacing-large);
2636
+ }
2637
+
2638
+
2639
+ .section_buttons tr td.markdownTableBodyRight a::after {
2640
+ content: '〉';
2641
+ padding-left: var(--spacing-large);
2642
+ }
2643
+
2644
+
2645
+ .section_buttons tr td.markdownTableBodyLeft a:hover::before {
2646
+ color: var(--page-foreground-color) !important;
2647
+ transform: translateX(-3px);
2648
+ }
2649
+
2650
+ .section_buttons tr td.markdownTableBodyRight a:hover::after {
2651
+ color: var(--page-foreground-color) !important;
2652
+ transform: translateX(3px);
2653
+ }
2654
+
2655
+ @media screen and (max-width: 450px) {
2656
+ .section_buttons a {
2657
+ width: 100%;
2658
+ box-sizing: border-box;
2659
+ }
2660
+
2661
+ .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a {
2662
+ border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium);
2663
+ border-right: none;
2664
+ }
2665
+
2666
+ .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a {
2667
+ border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;
2668
+ }
2669
+ }