@nxtedition/rocksdb 15.2.2 → 15.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1707) hide show
  1. package/.claude/settings.local.json +15 -1
  2. package/binding.cc +186 -128
  3. package/binding.gyp +32 -113
  4. package/build.sh +3 -0
  5. package/deps/rocksdb/rocksdb.gyp +3 -1
  6. package/index.js +3 -5
  7. package/package.json +1 -1
  8. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  9. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  10. package/util.h +62 -63
  11. package/deps/abseil-cpp/BUILD.bazel +0 -35
  12. package/deps/abseil-cpp/CMake/AbseilDll.cmake +0 -938
  13. package/deps/abseil-cpp/CMake/AbseilHelpers.cmake +0 -465
  14. package/deps/abseil-cpp/CMake/Googletest/CMakeLists.txt.in +0 -14
  15. package/deps/abseil-cpp/CMake/Googletest/DownloadGTest.cmake +0 -41
  16. package/deps/abseil-cpp/CMake/abslConfig.cmake.in +0 -8
  17. package/deps/abseil-cpp/CMake/install_test_project/CMakeLists.txt +0 -25
  18. package/deps/abseil-cpp/CMake/install_test_project/simple.cc +0 -32
  19. package/deps/abseil-cpp/CMake/install_test_project/test.sh +0 -113
  20. package/deps/abseil-cpp/CMakeLists.txt +0 -280
  21. package/deps/abseil-cpp/LICENSE +0 -203
  22. package/deps/abseil-cpp/MODULE.bazel +0 -43
  23. package/deps/abseil-cpp/PrivacyInfo.xcprivacy +0 -14
  24. package/deps/abseil-cpp/absl/BUILD.bazel +0 -62
  25. package/deps/abseil-cpp/absl/CMakeLists.txt +0 -45
  26. package/deps/abseil-cpp/absl/abseil.podspec.gen.py +0 -245
  27. package/deps/abseil-cpp/absl/algorithm/BUILD.bazel +0 -92
  28. package/deps/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -72
  29. package/deps/abseil-cpp/absl/algorithm/algorithm.h +0 -64
  30. package/deps/abseil-cpp/absl/algorithm/algorithm_test.cc +0 -60
  31. package/deps/abseil-cpp/absl/algorithm/container.h +0 -1864
  32. package/deps/abseil-cpp/absl/algorithm/container_test.cc +0 -2232
  33. package/deps/abseil-cpp/absl/base/BUILD.bazel +0 -1036
  34. package/deps/abseil-cpp/absl/base/CMakeLists.txt +0 -881
  35. package/deps/abseil-cpp/absl/base/attributes.h +0 -1081
  36. package/deps/abseil-cpp/absl/base/attributes_test.cc +0 -43
  37. package/deps/abseil-cpp/absl/base/bit_cast_test.cc +0 -109
  38. package/deps/abseil-cpp/absl/base/c_header_test.c +0 -30
  39. package/deps/abseil-cpp/absl/base/call_once.h +0 -228
  40. package/deps/abseil-cpp/absl/base/call_once_test.cc +0 -107
  41. package/deps/abseil-cpp/absl/base/casts.cc +0 -61
  42. package/deps/abseil-cpp/absl/base/casts.h +0 -313
  43. package/deps/abseil-cpp/absl/base/casts_test.cc +0 -148
  44. package/deps/abseil-cpp/absl/base/config.h +0 -854
  45. package/deps/abseil-cpp/absl/base/config_test.cc +0 -60
  46. package/deps/abseil-cpp/absl/base/const_init.h +0 -76
  47. package/deps/abseil-cpp/absl/base/dynamic_annotations.h +0 -480
  48. package/deps/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -958
  49. package/deps/abseil-cpp/absl/base/fast_type_id.h +0 -73
  50. package/deps/abseil-cpp/absl/base/fast_type_id_test.cc +0 -130
  51. package/deps/abseil-cpp/absl/base/internal/atomic_hook.h +0 -200
  52. package/deps/abseil-cpp/absl/base/internal/atomic_hook_test.cc +0 -97
  53. package/deps/abseil-cpp/absl/base/internal/atomic_hook_test_helper.cc +0 -32
  54. package/deps/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +0 -34
  55. package/deps/abseil-cpp/absl/base/internal/cmake_thread_test.cc +0 -22
  56. package/deps/abseil-cpp/absl/base/internal/cycleclock.cc +0 -72
  57. package/deps/abseil-cpp/absl/base/internal/cycleclock.h +0 -144
  58. package/deps/abseil-cpp/absl/base/internal/cycleclock_config.h +0 -55
  59. package/deps/abseil-cpp/absl/base/internal/direct_mmap.h +0 -170
  60. package/deps/abseil-cpp/absl/base/internal/dynamic_annotations.h +0 -398
  61. package/deps/abseil-cpp/absl/base/internal/endian.h +0 -279
  62. package/deps/abseil-cpp/absl/base/internal/endian_test.cc +0 -263
  63. package/deps/abseil-cpp/absl/base/internal/errno_saver.h +0 -43
  64. package/deps/abseil-cpp/absl/base/internal/errno_saver_test.cc +0 -45
  65. package/deps/abseil-cpp/absl/base/internal/exception_safety_testing.cc +0 -79
  66. package/deps/abseil-cpp/absl/base/internal/exception_safety_testing.h +0 -1109
  67. package/deps/abseil-cpp/absl/base/internal/exception_testing.h +0 -42
  68. package/deps/abseil-cpp/absl/base/internal/hide_ptr.h +0 -51
  69. package/deps/abseil-cpp/absl/base/internal/iterator_traits.h +0 -75
  70. package/deps/abseil-cpp/absl/base/internal/iterator_traits_test.cc +0 -85
  71. package/deps/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +0 -97
  72. package/deps/abseil-cpp/absl/base/internal/low_level_alloc.cc +0 -661
  73. package/deps/abseil-cpp/absl/base/internal/low_level_alloc.h +0 -133
  74. package/deps/abseil-cpp/absl/base/internal/low_level_alloc_test.cc +0 -180
  75. package/deps/abseil-cpp/absl/base/internal/low_level_scheduling.h +0 -134
  76. package/deps/abseil-cpp/absl/base/internal/nullability_traits.h +0 -71
  77. package/deps/abseil-cpp/absl/base/internal/nullability_traits_test.cc +0 -98
  78. package/deps/abseil-cpp/absl/base/internal/per_thread_tls.h +0 -52
  79. package/deps/abseil-cpp/absl/base/internal/poison.cc +0 -85
  80. package/deps/abseil-cpp/absl/base/internal/poison.h +0 -59
  81. package/deps/abseil-cpp/absl/base/internal/poison_test.cc +0 -41
  82. package/deps/abseil-cpp/absl/base/internal/pretty_function.h +0 -33
  83. package/deps/abseil-cpp/absl/base/internal/raw_logging.cc +0 -279
  84. package/deps/abseil-cpp/absl/base/internal/raw_logging.h +0 -217
  85. package/deps/abseil-cpp/absl/base/internal/scheduling_mode.h +0 -58
  86. package/deps/abseil-cpp/absl/base/internal/scoped_set_env.cc +0 -81
  87. package/deps/abseil-cpp/absl/base/internal/scoped_set_env.h +0 -45
  88. package/deps/abseil-cpp/absl/base/internal/scoped_set_env_test.cc +0 -99
  89. package/deps/abseil-cpp/absl/base/internal/spinlock.cc +0 -225
  90. package/deps/abseil-cpp/absl/base/internal/spinlock.h +0 -310
  91. package/deps/abseil-cpp/absl/base/internal/spinlock_akaros.inc +0 -35
  92. package/deps/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +0 -80
  93. package/deps/abseil-cpp/absl/base/internal/spinlock_linux.inc +0 -71
  94. package/deps/abseil-cpp/absl/base/internal/spinlock_posix.inc +0 -46
  95. package/deps/abseil-cpp/absl/base/internal/spinlock_wait.cc +0 -81
  96. package/deps/abseil-cpp/absl/base/internal/spinlock_wait.h +0 -95
  97. package/deps/abseil-cpp/absl/base/internal/spinlock_win32.inc +0 -40
  98. package/deps/abseil-cpp/absl/base/internal/strerror.cc +0 -88
  99. package/deps/abseil-cpp/absl/base/internal/strerror.h +0 -39
  100. package/deps/abseil-cpp/absl/base/internal/strerror_benchmark.cc +0 -29
  101. package/deps/abseil-cpp/absl/base/internal/strerror_test.cc +0 -89
  102. package/deps/abseil-cpp/absl/base/internal/sysinfo.cc +0 -494
  103. package/deps/abseil-cpp/absl/base/internal/sysinfo.h +0 -74
  104. package/deps/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -82
  105. package/deps/abseil-cpp/absl/base/internal/thread_identity.cc +0 -163
  106. package/deps/abseil-cpp/absl/base/internal/thread_identity.h +0 -273
  107. package/deps/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +0 -38
  108. package/deps/abseil-cpp/absl/base/internal/thread_identity_test.cc +0 -129
  109. package/deps/abseil-cpp/absl/base/internal/throw_delegate.cc +0 -203
  110. package/deps/abseil-cpp/absl/base/internal/throw_delegate.h +0 -75
  111. package/deps/abseil-cpp/absl/base/internal/tracing.cc +0 -39
  112. package/deps/abseil-cpp/absl/base/internal/tracing.h +0 -81
  113. package/deps/abseil-cpp/absl/base/internal/tracing_strong_test.cc +0 -117
  114. package/deps/abseil-cpp/absl/base/internal/tracing_weak_test.cc +0 -34
  115. package/deps/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +0 -68
  116. package/deps/abseil-cpp/absl/base/internal/unaligned_access.h +0 -89
  117. package/deps/abseil-cpp/absl/base/internal/unique_small_name_test.cc +0 -77
  118. package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -134
  119. package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock.h +0 -113
  120. package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +0 -62
  121. package/deps/abseil-cpp/absl/base/log_severity.cc +0 -56
  122. package/deps/abseil-cpp/absl/base/log_severity.h +0 -185
  123. package/deps/abseil-cpp/absl/base/log_severity_test.cc +0 -251
  124. package/deps/abseil-cpp/absl/base/macros.h +0 -243
  125. package/deps/abseil-cpp/absl/base/no_destructor.h +0 -191
  126. package/deps/abseil-cpp/absl/base/no_destructor_benchmark.cc +0 -165
  127. package/deps/abseil-cpp/absl/base/no_destructor_test.cc +0 -205
  128. package/deps/abseil-cpp/absl/base/nullability.h +0 -317
  129. package/deps/abseil-cpp/absl/base/nullability_default_nonnull_test.cc +0 -44
  130. package/deps/abseil-cpp/absl/base/nullability_test.cc +0 -90
  131. package/deps/abseil-cpp/absl/base/optimization.h +0 -310
  132. package/deps/abseil-cpp/absl/base/optimization_test.cc +0 -141
  133. package/deps/abseil-cpp/absl/base/options.h +0 -158
  134. package/deps/abseil-cpp/absl/base/policy_checks.h +0 -115
  135. package/deps/abseil-cpp/absl/base/port.h +0 -25
  136. package/deps/abseil-cpp/absl/base/prefetch.h +0 -209
  137. package/deps/abseil-cpp/absl/base/prefetch_test.cc +0 -64
  138. package/deps/abseil-cpp/absl/base/raw_logging_test.cc +0 -98
  139. package/deps/abseil-cpp/absl/base/spinlock_test_common.cc +0 -302
  140. package/deps/abseil-cpp/absl/base/thread_annotations.h +0 -333
  141. package/deps/abseil-cpp/absl/base/throw_delegate_test.cc +0 -175
  142. package/deps/abseil-cpp/absl/cleanup/BUILD.bazel +0 -74
  143. package/deps/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -55
  144. package/deps/abseil-cpp/absl/cleanup/cleanup.h +0 -142
  145. package/deps/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -309
  146. package/deps/abseil-cpp/absl/cleanup/internal/cleanup.h +0 -99
  147. package/deps/abseil-cpp/absl/container/BUILD.bazel +0 -1394
  148. package/deps/abseil-cpp/absl/container/CMakeLists.txt +0 -1239
  149. package/deps/abseil-cpp/absl/container/btree_benchmark.cc +0 -806
  150. package/deps/abseil-cpp/absl/container/btree_map.h +0 -941
  151. package/deps/abseil-cpp/absl/container/btree_set.h +0 -872
  152. package/deps/abseil-cpp/absl/container/btree_test.cc +0 -3653
  153. package/deps/abseil-cpp/absl/container/btree_test.h +0 -166
  154. package/deps/abseil-cpp/absl/container/chunked_queue.h +0 -755
  155. package/deps/abseil-cpp/absl/container/chunked_queue_benchmark.cc +0 -386
  156. package/deps/abseil-cpp/absl/container/chunked_queue_test.cc +0 -768
  157. package/deps/abseil-cpp/absl/container/fixed_array.h +0 -547
  158. package/deps/abseil-cpp/absl/container/fixed_array_benchmark.cc +0 -67
  159. package/deps/abseil-cpp/absl/container/fixed_array_exception_safety_test.cc +0 -201
  160. package/deps/abseil-cpp/absl/container/fixed_array_test.cc +0 -874
  161. package/deps/abseil-cpp/absl/container/flat_hash_map.h +0 -702
  162. package/deps/abseil-cpp/absl/container/flat_hash_map_test.cc +0 -451
  163. package/deps/abseil-cpp/absl/container/flat_hash_set.h +0 -590
  164. package/deps/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -401
  165. package/deps/abseil-cpp/absl/container/hash_container_defaults.h +0 -45
  166. package/deps/abseil-cpp/absl/container/inlined_vector.h +0 -1025
  167. package/deps/abseil-cpp/absl/container/inlined_vector_benchmark.cc +0 -829
  168. package/deps/abseil-cpp/absl/container/inlined_vector_exception_safety_test.cc +0 -508
  169. package/deps/abseil-cpp/absl/container/inlined_vector_test.cc +0 -2278
  170. package/deps/abseil-cpp/absl/container/internal/btree.h +0 -3149
  171. package/deps/abseil-cpp/absl/container/internal/btree_container.h +0 -876
  172. package/deps/abseil-cpp/absl/container/internal/chunked_queue.h +0 -173
  173. package/deps/abseil-cpp/absl/container/internal/common.h +0 -301
  174. package/deps/abseil-cpp/absl/container/internal/common_policy_traits.h +0 -151
  175. package/deps/abseil-cpp/absl/container/internal/common_policy_traits_test.cc +0 -157
  176. package/deps/abseil-cpp/absl/container/internal/compressed_tuple.h +0 -275
  177. package/deps/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +0 -469
  178. package/deps/abseil-cpp/absl/container/internal/container_memory.h +0 -561
  179. package/deps/abseil-cpp/absl/container/internal/container_memory_test.cc +0 -359
  180. package/deps/abseil-cpp/absl/container/internal/hash_function_defaults.h +0 -281
  181. package/deps/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +0 -633
  182. package/deps/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -54
  183. package/deps/abseil-cpp/absl/container/internal/hash_generator_testing.h +0 -172
  184. package/deps/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -173
  185. package/deps/abseil-cpp/absl/container/internal/hash_policy_testing_test.cc +0 -45
  186. package/deps/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -195
  187. package/deps/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +0 -149
  188. package/deps/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +0 -527
  189. package/deps/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +0 -259
  190. package/deps/abseil-cpp/absl/container/internal/hashtable_debug.h +0 -102
  191. package/deps/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +0 -85
  192. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +0 -316
  193. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -311
  194. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +0 -31
  195. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +0 -534
  196. package/deps/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +0 -80
  197. package/deps/abseil-cpp/absl/container/internal/inlined_vector.h +0 -1094
  198. package/deps/abseil-cpp/absl/container/internal/layout.h +0 -828
  199. package/deps/abseil-cpp/absl/container/internal/layout_benchmark.cc +0 -295
  200. package/deps/abseil-cpp/absl/container/internal/layout_test.cc +0 -2034
  201. package/deps/abseil-cpp/absl/container/internal/node_slot_policy.h +0 -95
  202. package/deps/abseil-cpp/absl/container/internal/node_slot_policy_test.cc +0 -71
  203. package/deps/abseil-cpp/absl/container/internal/raw_hash_map.h +0 -382
  204. package/deps/abseil-cpp/absl/container/internal/raw_hash_set.cc +0 -2090
  205. package/deps/abseil-cpp/absl/container/internal/raw_hash_set.h +0 -3763
  206. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +0 -525
  207. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +0 -696
  208. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +0 -583
  209. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -79
  210. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +0 -66
  211. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +0 -4184
  212. package/deps/abseil-cpp/absl/container/internal/test_allocator.h +0 -387
  213. package/deps/abseil-cpp/absl/container/internal/test_instance_tracker.cc +0 -29
  214. package/deps/abseil-cpp/absl/container/internal/test_instance_tracker.h +0 -274
  215. package/deps/abseil-cpp/absl/container/internal/test_instance_tracker_test.cc +0 -184
  216. package/deps/abseil-cpp/absl/container/internal/tracked.h +0 -83
  217. package/deps/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +0 -435
  218. package/deps/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +0 -112
  219. package/deps/abseil-cpp/absl/container/internal/unordered_map_members_test.h +0 -87
  220. package/deps/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +0 -336
  221. package/deps/abseil-cpp/absl/container/internal/unordered_map_test.cc +0 -50
  222. package/deps/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +0 -437
  223. package/deps/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +0 -88
  224. package/deps/abseil-cpp/absl/container/internal/unordered_set_members_test.h +0 -86
  225. package/deps/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +0 -215
  226. package/deps/abseil-cpp/absl/container/internal/unordered_set_test.cc +0 -41
  227. package/deps/abseil-cpp/absl/container/linked_hash_map.h +0 -666
  228. package/deps/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +0 -140
  229. package/deps/abseil-cpp/absl/container/linked_hash_map_test.cc +0 -987
  230. package/deps/abseil-cpp/absl/container/linked_hash_set.h +0 -527
  231. package/deps/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +0 -84
  232. package/deps/abseil-cpp/absl/container/linked_hash_set_test.cc +0 -947
  233. package/deps/abseil-cpp/absl/container/node_hash_map.h +0 -698
  234. package/deps/abseil-cpp/absl/container/node_hash_map_test.cc +0 -348
  235. package/deps/abseil-cpp/absl/container/node_hash_set.h +0 -589
  236. package/deps/abseil-cpp/absl/container/node_hash_set_test.cc +0 -188
  237. package/deps/abseil-cpp/absl/container/sample_element_size_test.cc +0 -118
  238. package/deps/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +0 -106
  239. package/deps/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +0 -303
  240. package/deps/abseil-cpp/absl/copts/GENERATED_copts.bzl +0 -304
  241. package/deps/abseil-cpp/absl/copts/configure_copts.bzl +0 -39
  242. package/deps/abseil-cpp/absl/copts/copts.py +0 -205
  243. package/deps/abseil-cpp/absl/copts/generate_copts.py +0 -109
  244. package/deps/abseil-cpp/absl/crc/BUILD.bazel +0 -228
  245. package/deps/abseil-cpp/absl/crc/CMakeLists.txt +0 -177
  246. package/deps/abseil-cpp/absl/crc/crc32c.cc +0 -95
  247. package/deps/abseil-cpp/absl/crc/crc32c.h +0 -192
  248. package/deps/abseil-cpp/absl/crc/crc32c_benchmark.cc +0 -196
  249. package/deps/abseil-cpp/absl/crc/crc32c_test.cc +0 -257
  250. package/deps/abseil-cpp/absl/crc/internal/cpu_detect.cc +0 -359
  251. package/deps/abseil-cpp/absl/crc/internal/cpu_detect.h +0 -69
  252. package/deps/abseil-cpp/absl/crc/internal/crc.cc +0 -435
  253. package/deps/abseil-cpp/absl/crc/internal/crc.h +0 -83
  254. package/deps/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -278
  255. package/deps/abseil-cpp/absl/crc/internal/crc32c.h +0 -39
  256. package/deps/abseil-cpp/absl/crc/internal/crc32c_inline.h +0 -72
  257. package/deps/abseil-cpp/absl/crc/internal/crc_cord_state.cc +0 -131
  258. package/deps/abseil-cpp/absl/crc/internal/crc_cord_state.h +0 -159
  259. package/deps/abseil-cpp/absl/crc/internal/crc_cord_state_test.cc +0 -124
  260. package/deps/abseil-cpp/absl/crc/internal/crc_internal.h +0 -161
  261. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy.h +0 -122
  262. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +0 -78
  263. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_test.cc +0 -177
  264. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +0 -459
  265. package/deps/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +0 -93
  266. package/deps/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +0 -762
  267. package/deps/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +0 -90
  268. package/deps/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +0 -81
  269. package/deps/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +0 -195
  270. package/deps/abseil-cpp/absl/crc/internal/non_temporal_memcpy_test.cc +0 -90
  271. package/deps/abseil-cpp/absl/debugging/BUILD.bazel +0 -483
  272. package/deps/abseil-cpp/absl/debugging/CMakeLists.txt +0 -448
  273. package/deps/abseil-cpp/absl/debugging/failure_signal_handler.cc +0 -434
  274. package/deps/abseil-cpp/absl/debugging/failure_signal_handler.h +0 -121
  275. package/deps/abseil-cpp/absl/debugging/failure_signal_handler_test.cc +0 -166
  276. package/deps/abseil-cpp/absl/debugging/internal/address_is_readable.cc +0 -98
  277. package/deps/abseil-cpp/absl/debugging/internal/address_is_readable.h +0 -32
  278. package/deps/abseil-cpp/absl/debugging/internal/addresses.h +0 -57
  279. package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
  280. package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
  281. package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
  282. package/deps/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +0 -126
  283. package/deps/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence_test.cc +0 -126
  284. package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +0 -258
  285. package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +0 -55
  286. package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode_test.cc +0 -606
  287. package/deps/abseil-cpp/absl/debugging/internal/demangle.cc +0 -2958
  288. package/deps/abseil-cpp/absl/debugging/internal/demangle.h +0 -76
  289. package/deps/abseil-cpp/absl/debugging/internal/demangle_rust.cc +0 -925
  290. package/deps/abseil-cpp/absl/debugging/internal/demangle_rust.h +0 -42
  291. package/deps/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc +0 -584
  292. package/deps/abseil-cpp/absl/debugging/internal/demangle_test.cc +0 -2050
  293. package/deps/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +0 -413
  294. package/deps/abseil-cpp/absl/debugging/internal/elf_mem_image.h +0 -141
  295. package/deps/abseil-cpp/absl/debugging/internal/examine_stack.cc +0 -334
  296. package/deps/abseil-cpp/absl/debugging/internal/examine_stack.h +0 -70
  297. package/deps/abseil-cpp/absl/debugging/internal/stack_consumption.cc +0 -206
  298. package/deps/abseil-cpp/absl/debugging/internal/stack_consumption.h +0 -50
  299. package/deps/abseil-cpp/absl/debugging/internal/stack_consumption_test.cc +0 -50
  300. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +0 -288
  301. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +0 -148
  302. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_config.h +0 -96
  303. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -112
  304. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +0 -114
  305. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +0 -270
  306. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +0 -204
  307. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +0 -25
  308. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +0 -81
  309. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +0 -410
  310. package/deps/abseil-cpp/absl/debugging/internal/symbolize.h +0 -153
  311. package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +0 -70
  312. package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +0 -47
  313. package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point_test.cc +0 -175
  314. package/deps/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -209
  315. package/deps/abseil-cpp/absl/debugging/internal/vdso_support.h +0 -158
  316. package/deps/abseil-cpp/absl/debugging/leak_check.cc +0 -73
  317. package/deps/abseil-cpp/absl/debugging/leak_check.h +0 -150
  318. package/deps/abseil-cpp/absl/debugging/leak_check_fail_test.cc +0 -41
  319. package/deps/abseil-cpp/absl/debugging/leak_check_test.cc +0 -41
  320. package/deps/abseil-cpp/absl/debugging/stacktrace.cc +0 -244
  321. package/deps/abseil-cpp/absl/debugging/stacktrace.h +0 -302
  322. package/deps/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +0 -78
  323. package/deps/abseil-cpp/absl/debugging/stacktrace_test.cc +0 -505
  324. package/deps/abseil-cpp/absl/debugging/symbolize.cc +0 -44
  325. package/deps/abseil-cpp/absl/debugging/symbolize.h +0 -99
  326. package/deps/abseil-cpp/absl/debugging/symbolize_darwin.inc +0 -102
  327. package/deps/abseil-cpp/absl/debugging/symbolize_elf.inc +0 -1756
  328. package/deps/abseil-cpp/absl/debugging/symbolize_emscripten.inc +0 -63
  329. package/deps/abseil-cpp/absl/debugging/symbolize_test.cc +0 -619
  330. package/deps/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +0 -40
  331. package/deps/abseil-cpp/absl/debugging/symbolize_win32.inc +0 -99
  332. package/deps/abseil-cpp/absl/extend/CMakeLists.txt +0 -140
  333. package/deps/abseil-cpp/absl/extend/internal/BUILD.bazel +0 -127
  334. package/deps/abseil-cpp/absl/extend/internal/aggregate.h +0 -1687
  335. package/deps/abseil-cpp/absl/extend/internal/aggregate_test.cc +0 -867
  336. package/deps/abseil-cpp/absl/extend/internal/dependencies.h +0 -83
  337. package/deps/abseil-cpp/absl/extend/internal/dependencies_test.cc +0 -117
  338. package/deps/abseil-cpp/absl/extend/internal/is_tuple_hashable.h +0 -45
  339. package/deps/abseil-cpp/absl/extend/internal/num_bases.h +0 -87
  340. package/deps/abseil-cpp/absl/extend/internal/num_bases_test.cc +0 -91
  341. package/deps/abseil-cpp/absl/extend/internal/num_initializers.h +0 -113
  342. package/deps/abseil-cpp/absl/extend/internal/num_initializers_test.cc +0 -250
  343. package/deps/abseil-cpp/absl/extend/internal/reflection.cc +0 -112
  344. package/deps/abseil-cpp/absl/extend/internal/reflection.h +0 -75
  345. package/deps/abseil-cpp/absl/extend/internal/tuple.h +0 -51
  346. package/deps/abseil-cpp/absl/flags/BUILD.bazel +0 -618
  347. package/deps/abseil-cpp/absl/flags/CMakeLists.txt +0 -482
  348. package/deps/abseil-cpp/absl/flags/commandlineflag.cc +0 -35
  349. package/deps/abseil-cpp/absl/flags/commandlineflag.h +0 -219
  350. package/deps/abseil-cpp/absl/flags/commandlineflag_test.cc +0 -236
  351. package/deps/abseil-cpp/absl/flags/config.h +0 -68
  352. package/deps/abseil-cpp/absl/flags/config_test.cc +0 -61
  353. package/deps/abseil-cpp/absl/flags/declare.h +0 -77
  354. package/deps/abseil-cpp/absl/flags/flag.h +0 -307
  355. package/deps/abseil-cpp/absl/flags/flag_benchmark.cc +0 -251
  356. package/deps/abseil-cpp/absl/flags/flag_benchmark.lds +0 -13
  357. package/deps/abseil-cpp/absl/flags/flag_test.cc +0 -1381
  358. package/deps/abseil-cpp/absl/flags/flag_test_defs.cc +0 -24
  359. package/deps/abseil-cpp/absl/flags/internal/commandlineflag.cc +0 -26
  360. package/deps/abseil-cpp/absl/flags/internal/commandlineflag.h +0 -68
  361. package/deps/abseil-cpp/absl/flags/internal/flag.cc +0 -712
  362. package/deps/abseil-cpp/absl/flags/internal/flag.h +0 -969
  363. package/deps/abseil-cpp/absl/flags/internal/parse.h +0 -70
  364. package/deps/abseil-cpp/absl/flags/internal/path_util.h +0 -62
  365. package/deps/abseil-cpp/absl/flags/internal/path_util_test.cc +0 -46
  366. package/deps/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +0 -69
  367. package/deps/abseil-cpp/absl/flags/internal/private_handle_accessor.h +0 -64
  368. package/deps/abseil-cpp/absl/flags/internal/program_name.cc +0 -61
  369. package/deps/abseil-cpp/absl/flags/internal/program_name.h +0 -50
  370. package/deps/abseil-cpp/absl/flags/internal/program_name_test.cc +0 -61
  371. package/deps/abseil-cpp/absl/flags/internal/registry.h +0 -98
  372. package/deps/abseil-cpp/absl/flags/internal/sequence_lock.h +0 -187
  373. package/deps/abseil-cpp/absl/flags/internal/sequence_lock_test.cc +0 -169
  374. package/deps/abseil-cpp/absl/flags/internal/usage.cc +0 -558
  375. package/deps/abseil-cpp/absl/flags/internal/usage.h +0 -106
  376. package/deps/abseil-cpp/absl/flags/internal/usage_test.cc +0 -550
  377. package/deps/abseil-cpp/absl/flags/marshalling.cc +0 -276
  378. package/deps/abseil-cpp/absl/flags/marshalling.h +0 -361
  379. package/deps/abseil-cpp/absl/flags/marshalling_test.cc +0 -1220
  380. package/deps/abseil-cpp/absl/flags/parse.cc +0 -952
  381. package/deps/abseil-cpp/absl/flags/parse.h +0 -130
  382. package/deps/abseil-cpp/absl/flags/parse_test.cc +0 -1094
  383. package/deps/abseil-cpp/absl/flags/reflection.cc +0 -368
  384. package/deps/abseil-cpp/absl/flags/reflection.h +0 -90
  385. package/deps/abseil-cpp/absl/flags/reflection_test.cc +0 -268
  386. package/deps/abseil-cpp/absl/flags/usage.cc +0 -66
  387. package/deps/abseil-cpp/absl/flags/usage.h +0 -43
  388. package/deps/abseil-cpp/absl/flags/usage_config.cc +0 -170
  389. package/deps/abseil-cpp/absl/flags/usage_config.h +0 -135
  390. package/deps/abseil-cpp/absl/flags/usage_config_test.cc +0 -205
  391. package/deps/abseil-cpp/absl/functional/BUILD.bazel +0 -173
  392. package/deps/abseil-cpp/absl/functional/CMakeLists.txt +0 -140
  393. package/deps/abseil-cpp/absl/functional/any_invocable.h +0 -336
  394. package/deps/abseil-cpp/absl/functional/any_invocable_test.cc +0 -1687
  395. package/deps/abseil-cpp/absl/functional/bind_front.h +0 -200
  396. package/deps/abseil-cpp/absl/functional/bind_front_test.cc +0 -227
  397. package/deps/abseil-cpp/absl/functional/function_ref.h +0 -249
  398. package/deps/abseil-cpp/absl/functional/function_ref_test.cc +0 -416
  399. package/deps/abseil-cpp/absl/functional/function_type_benchmark.cc +0 -176
  400. package/deps/abseil-cpp/absl/functional/internal/any_invocable.h +0 -787
  401. package/deps/abseil-cpp/absl/functional/internal/front_binder.h +0 -93
  402. package/deps/abseil-cpp/absl/functional/internal/function_ref.h +0 -151
  403. package/deps/abseil-cpp/absl/functional/overload.h +0 -72
  404. package/deps/abseil-cpp/absl/functional/overload_test.cc +0 -207
  405. package/deps/abseil-cpp/absl/hash/BUILD.bazel +0 -220
  406. package/deps/abseil-cpp/absl/hash/CMakeLists.txt +0 -179
  407. package/deps/abseil-cpp/absl/hash/hash.h +0 -466
  408. package/deps/abseil-cpp/absl/hash/hash_benchmark.cc +0 -398
  409. package/deps/abseil-cpp/absl/hash/hash_instantiated_test.cc +0 -224
  410. package/deps/abseil-cpp/absl/hash/hash_test.cc +0 -1320
  411. package/deps/abseil-cpp/absl/hash/hash_testing.h +0 -380
  412. package/deps/abseil-cpp/absl/hash/internal/city.cc +0 -337
  413. package/deps/abseil-cpp/absl/hash/internal/city.h +0 -78
  414. package/deps/abseil-cpp/absl/hash/internal/city_test.cc +0 -597
  415. package/deps/abseil-cpp/absl/hash/internal/hash.cc +0 -430
  416. package/deps/abseil-cpp/absl/hash/internal/hash.h +0 -1563
  417. package/deps/abseil-cpp/absl/hash/internal/hash_test.h +0 -87
  418. package/deps/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +0 -509
  419. package/deps/abseil-cpp/absl/hash/internal/print_hash_of.cc +0 -23
  420. package/deps/abseil-cpp/absl/hash/internal/spy_hash_state.h +0 -286
  421. package/deps/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +0 -38
  422. package/deps/abseil-cpp/absl/log/BUILD.bazel +0 -686
  423. package/deps/abseil-cpp/absl/log/CMakeLists.txt +0 -1239
  424. package/deps/abseil-cpp/absl/log/absl_check.h +0 -117
  425. package/deps/abseil-cpp/absl/log/absl_check_test.cc +0 -58
  426. package/deps/abseil-cpp/absl/log/absl_log.h +0 -115
  427. package/deps/abseil-cpp/absl/log/absl_log_basic_test.cc +0 -22
  428. package/deps/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -95
  429. package/deps/abseil-cpp/absl/log/check.h +0 -210
  430. package/deps/abseil-cpp/absl/log/check_test.cc +0 -58
  431. package/deps/abseil-cpp/absl/log/check_test_impl.inc +0 -1035
  432. package/deps/abseil-cpp/absl/log/die_if_null.cc +0 -34
  433. package/deps/abseil-cpp/absl/log/die_if_null.h +0 -97
  434. package/deps/abseil-cpp/absl/log/die_if_null_test.cc +0 -107
  435. package/deps/abseil-cpp/absl/log/flags.cc +0 -143
  436. package/deps/abseil-cpp/absl/log/flags.h +0 -43
  437. package/deps/abseil-cpp/absl/log/flags_test.cc +0 -195
  438. package/deps/abseil-cpp/absl/log/globals.cc +0 -178
  439. package/deps/abseil-cpp/absl/log/globals.h +0 -230
  440. package/deps/abseil-cpp/absl/log/globals_test.cc +0 -156
  441. package/deps/abseil-cpp/absl/log/initialize.cc +0 -38
  442. package/deps/abseil-cpp/absl/log/initialize.h +0 -45
  443. package/deps/abseil-cpp/absl/log/internal/BUILD.bazel +0 -581
  444. package/deps/abseil-cpp/absl/log/internal/append_truncated.h +0 -75
  445. package/deps/abseil-cpp/absl/log/internal/check_impl.h +0 -151
  446. package/deps/abseil-cpp/absl/log/internal/check_op.cc +0 -147
  447. package/deps/abseil-cpp/absl/log/internal/check_op.h +0 -565
  448. package/deps/abseil-cpp/absl/log/internal/conditions.cc +0 -85
  449. package/deps/abseil-cpp/absl/log/internal/conditions.h +0 -247
  450. package/deps/abseil-cpp/absl/log/internal/config.h +0 -45
  451. package/deps/abseil-cpp/absl/log/internal/container.h +0 -312
  452. package/deps/abseil-cpp/absl/log/internal/container_test.cc +0 -254
  453. package/deps/abseil-cpp/absl/log/internal/flags.h +0 -59
  454. package/deps/abseil-cpp/absl/log/internal/fnmatch.cc +0 -73
  455. package/deps/abseil-cpp/absl/log/internal/fnmatch.h +0 -35
  456. package/deps/abseil-cpp/absl/log/internal/fnmatch_benchmark.cc +0 -29
  457. package/deps/abseil-cpp/absl/log/internal/fnmatch_test.cc +0 -60
  458. package/deps/abseil-cpp/absl/log/internal/globals.cc +0 -145
  459. package/deps/abseil-cpp/absl/log/internal/globals.h +0 -101
  460. package/deps/abseil-cpp/absl/log/internal/log_format.cc +0 -205
  461. package/deps/abseil-cpp/absl/log/internal/log_format.h +0 -78
  462. package/deps/abseil-cpp/absl/log/internal/log_impl.h +0 -280
  463. package/deps/abseil-cpp/absl/log/internal/log_message.cc +0 -787
  464. package/deps/abseil-cpp/absl/log/internal/log_message.h +0 -455
  465. package/deps/abseil-cpp/absl/log/internal/log_sink_set.cc +0 -296
  466. package/deps/abseil-cpp/absl/log/internal/log_sink_set.h +0 -54
  467. package/deps/abseil-cpp/absl/log/internal/nullguard.cc +0 -35
  468. package/deps/abseil-cpp/absl/log/internal/nullguard.h +0 -88
  469. package/deps/abseil-cpp/absl/log/internal/nullstream.h +0 -128
  470. package/deps/abseil-cpp/absl/log/internal/proto.cc +0 -218
  471. package/deps/abseil-cpp/absl/log/internal/proto.h +0 -298
  472. package/deps/abseil-cpp/absl/log/internal/stderr_log_sink_test.cc +0 -105
  473. package/deps/abseil-cpp/absl/log/internal/strip.h +0 -99
  474. package/deps/abseil-cpp/absl/log/internal/structured.h +0 -160
  475. package/deps/abseil-cpp/absl/log/internal/structured_proto.cc +0 -115
  476. package/deps/abseil-cpp/absl/log/internal/structured_proto.h +0 -107
  477. package/deps/abseil-cpp/absl/log/internal/structured_proto_test.cc +0 -120
  478. package/deps/abseil-cpp/absl/log/internal/test_actions.cc +0 -75
  479. package/deps/abseil-cpp/absl/log/internal/test_actions.h +0 -90
  480. package/deps/abseil-cpp/absl/log/internal/test_helpers.cc +0 -82
  481. package/deps/abseil-cpp/absl/log/internal/test_helpers.h +0 -71
  482. package/deps/abseil-cpp/absl/log/internal/test_matchers.cc +0 -216
  483. package/deps/abseil-cpp/absl/log/internal/test_matchers.h +0 -94
  484. package/deps/abseil-cpp/absl/log/internal/vlog_config.cc +0 -347
  485. package/deps/abseil-cpp/absl/log/internal/vlog_config.h +0 -164
  486. package/deps/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +0 -187
  487. package/deps/abseil-cpp/absl/log/internal/voidify.h +0 -50
  488. package/deps/abseil-cpp/absl/log/log.h +0 -378
  489. package/deps/abseil-cpp/absl/log/log_basic_test.cc +0 -22
  490. package/deps/abseil-cpp/absl/log/log_basic_test_impl.inc +0 -654
  491. package/deps/abseil-cpp/absl/log/log_benchmark.cc +0 -164
  492. package/deps/abseil-cpp/absl/log/log_entry.cc +0 -263
  493. package/deps/abseil-cpp/absl/log/log_entry.h +0 -223
  494. package/deps/abseil-cpp/absl/log/log_entry_test.cc +0 -468
  495. package/deps/abseil-cpp/absl/log/log_format_test.cc +0 -2261
  496. package/deps/abseil-cpp/absl/log/log_macro_hygiene_test.cc +0 -187
  497. package/deps/abseil-cpp/absl/log/log_modifier_methods_test.cc +0 -244
  498. package/deps/abseil-cpp/absl/log/log_sink.cc +0 -23
  499. package/deps/abseil-cpp/absl/log/log_sink.h +0 -71
  500. package/deps/abseil-cpp/absl/log/log_sink_registry.h +0 -64
  501. package/deps/abseil-cpp/absl/log/log_sink_test.cc +0 -418
  502. package/deps/abseil-cpp/absl/log/log_streamer.h +0 -181
  503. package/deps/abseil-cpp/absl/log/log_streamer_test.cc +0 -451
  504. package/deps/abseil-cpp/absl/log/scoped_mock_log.cc +0 -86
  505. package/deps/abseil-cpp/absl/log/scoped_mock_log.h +0 -203
  506. package/deps/abseil-cpp/absl/log/scoped_mock_log_test.cc +0 -295
  507. package/deps/abseil-cpp/absl/log/stripping_test.cc +0 -502
  508. package/deps/abseil-cpp/absl/log/structured.h +0 -75
  509. package/deps/abseil-cpp/absl/log/structured_test.cc +0 -64
  510. package/deps/abseil-cpp/absl/log/vlog_is_on.h +0 -74
  511. package/deps/abseil-cpp/absl/log/vlog_is_on_test.cc +0 -233
  512. package/deps/abseil-cpp/absl/memory/BUILD.bazel +0 -62
  513. package/deps/abseil-cpp/absl/memory/CMakeLists.txt +0 -41
  514. package/deps/abseil-cpp/absl/memory/memory.h +0 -278
  515. package/deps/abseil-cpp/absl/memory/memory_test.cc +0 -222
  516. package/deps/abseil-cpp/absl/meta/BUILD.bazel +0 -112
  517. package/deps/abseil-cpp/absl/meta/CMakeLists.txt +0 -100
  518. package/deps/abseil-cpp/absl/meta/internal/constexpr_testing.h +0 -73
  519. package/deps/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +0 -40
  520. package/deps/abseil-cpp/absl/meta/internal/requires.h +0 -67
  521. package/deps/abseil-cpp/absl/meta/internal/requires_test.cc +0 -66
  522. package/deps/abseil-cpp/absl/meta/type_traits.h +0 -582
  523. package/deps/abseil-cpp/absl/meta/type_traits_test.cc +0 -378
  524. package/deps/abseil-cpp/absl/numeric/BUILD.bazel +0 -145
  525. package/deps/abseil-cpp/absl/numeric/CMakeLists.txt +0 -104
  526. package/deps/abseil-cpp/absl/numeric/bits.h +0 -262
  527. package/deps/abseil-cpp/absl/numeric/bits_benchmark.cc +0 -73
  528. package/deps/abseil-cpp/absl/numeric/bits_test.cc +0 -724
  529. package/deps/abseil-cpp/absl/numeric/int128.cc +0 -344
  530. package/deps/abseil-cpp/absl/numeric/int128.h +0 -1224
  531. package/deps/abseil-cpp/absl/numeric/int128_benchmark.cc +0 -281
  532. package/deps/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -303
  533. package/deps/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +0 -347
  534. package/deps/abseil-cpp/absl/numeric/int128_stream_test.cc +0 -1400
  535. package/deps/abseil-cpp/absl/numeric/int128_test.cc +0 -1407
  536. package/deps/abseil-cpp/absl/numeric/internal/bits.h +0 -394
  537. package/deps/abseil-cpp/absl/numeric/internal/representation.h +0 -55
  538. package/deps/abseil-cpp/absl/profiling/BUILD.bazel +0 -188
  539. package/deps/abseil-cpp/absl/profiling/CMakeLists.txt +0 -132
  540. package/deps/abseil-cpp/absl/profiling/hashtable.cc +0 -135
  541. package/deps/abseil-cpp/absl/profiling/hashtable.h +0 -40
  542. package/deps/abseil-cpp/absl/profiling/internal/exponential_biased.cc +0 -93
  543. package/deps/abseil-cpp/absl/profiling/internal/exponential_biased.h +0 -130
  544. package/deps/abseil-cpp/absl/profiling/internal/exponential_biased_test.cc +0 -203
  545. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler.cc +0 -53
  546. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler.h +0 -211
  547. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler_benchmark.cc +0 -79
  548. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler_test.cc +0 -177
  549. package/deps/abseil-cpp/absl/profiling/internal/profile_builder.cc +0 -463
  550. package/deps/abseil-cpp/absl/profiling/internal/profile_builder.h +0 -161
  551. package/deps/abseil-cpp/absl/profiling/internal/sample_recorder.h +0 -253
  552. package/deps/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +0 -188
  553. package/deps/abseil-cpp/absl/random/BUILD.bazel +0 -550
  554. package/deps/abseil-cpp/absl/random/CMakeLists.txt +0 -1250
  555. package/deps/abseil-cpp/absl/random/benchmarks.cc +0 -376
  556. package/deps/abseil-cpp/absl/random/bernoulli_distribution.h +0 -202
  557. package/deps/abseil-cpp/absl/random/bernoulli_distribution_test.cc +0 -217
  558. package/deps/abseil-cpp/absl/random/beta_distribution.h +0 -429
  559. package/deps/abseil-cpp/absl/random/beta_distribution_test.cc +0 -615
  560. package/deps/abseil-cpp/absl/random/bit_gen_ref.h +0 -187
  561. package/deps/abseil-cpp/absl/random/bit_gen_ref_test.cc +0 -107
  562. package/deps/abseil-cpp/absl/random/discrete_distribution.cc +0 -108
  563. package/deps/abseil-cpp/absl/random/discrete_distribution.h +0 -249
  564. package/deps/abseil-cpp/absl/random/discrete_distribution_test.cc +0 -251
  565. package/deps/abseil-cpp/absl/random/distributions.h +0 -450
  566. package/deps/abseil-cpp/absl/random/distributions_test.cc +0 -516
  567. package/deps/abseil-cpp/absl/random/examples_test.cc +0 -98
  568. package/deps/abseil-cpp/absl/random/exponential_distribution.h +0 -166
  569. package/deps/abseil-cpp/absl/random/exponential_distribution_test.cc +0 -426
  570. package/deps/abseil-cpp/absl/random/gaussian_distribution.cc +0 -104
  571. package/deps/abseil-cpp/absl/random/gaussian_distribution.h +0 -276
  572. package/deps/abseil-cpp/absl/random/gaussian_distribution_test.cc +0 -561
  573. package/deps/abseil-cpp/absl/random/generators_test.cc +0 -185
  574. package/deps/abseil-cpp/absl/random/internal/BUILD.bazel +0 -863
  575. package/deps/abseil-cpp/absl/random/internal/chi_square.cc +0 -230
  576. package/deps/abseil-cpp/absl/random/internal/chi_square.h +0 -89
  577. package/deps/abseil-cpp/absl/random/internal/chi_square_test.cc +0 -364
  578. package/deps/abseil-cpp/absl/random/internal/distribution_caller.h +0 -96
  579. package/deps/abseil-cpp/absl/random/internal/distribution_test_util.cc +0 -418
  580. package/deps/abseil-cpp/absl/random/internal/distribution_test_util.h +0 -113
  581. package/deps/abseil-cpp/absl/random/internal/distribution_test_util_test.cc +0 -193
  582. package/deps/abseil-cpp/absl/random/internal/entropy_pool.cc +0 -185
  583. package/deps/abseil-cpp/absl/random/internal/entropy_pool.h +0 -35
  584. package/deps/abseil-cpp/absl/random/internal/entropy_pool_test.cc +0 -119
  585. package/deps/abseil-cpp/absl/random/internal/explicit_seed_seq.h +0 -92
  586. package/deps/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc +0 -241
  587. package/deps/abseil-cpp/absl/random/internal/fast_uniform_bits.h +0 -271
  588. package/deps/abseil-cpp/absl/random/internal/fast_uniform_bits_test.cc +0 -336
  589. package/deps/abseil-cpp/absl/random/internal/fastmath.h +0 -57
  590. package/deps/abseil-cpp/absl/random/internal/fastmath_test.cc +0 -95
  591. package/deps/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc +0 -142
  592. package/deps/abseil-cpp/absl/random/internal/generate_real.h +0 -144
  593. package/deps/abseil-cpp/absl/random/internal/generate_real_test.cc +0 -496
  594. package/deps/abseil-cpp/absl/random/internal/iostream_state_saver.h +0 -248
  595. package/deps/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +0 -373
  596. package/deps/abseil-cpp/absl/random/internal/mock_helpers.h +0 -160
  597. package/deps/abseil-cpp/absl/random/internal/mock_overload_set.h +0 -122
  598. package/deps/abseil-cpp/absl/random/internal/mock_validators.h +0 -98
  599. package/deps/abseil-cpp/absl/random/internal/nanobenchmark.cc +0 -804
  600. package/deps/abseil-cpp/absl/random/internal/nanobenchmark.h +0 -172
  601. package/deps/abseil-cpp/absl/random/internal/nanobenchmark_test.cc +0 -79
  602. package/deps/abseil-cpp/absl/random/internal/nonsecure_base.h +0 -160
  603. package/deps/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +0 -267
  604. package/deps/abseil-cpp/absl/random/internal/pcg_engine.h +0 -287
  605. package/deps/abseil-cpp/absl/random/internal/pcg_engine_test.cc +0 -638
  606. package/deps/abseil-cpp/absl/random/internal/platform.h +0 -158
  607. package/deps/abseil-cpp/absl/random/internal/randen.cc +0 -91
  608. package/deps/abseil-cpp/absl/random/internal/randen.h +0 -96
  609. package/deps/abseil-cpp/absl/random/internal/randen_benchmarks.cc +0 -177
  610. package/deps/abseil-cpp/absl/random/internal/randen_detect.cc +0 -280
  611. package/deps/abseil-cpp/absl/random/internal/randen_detect.h +0 -33
  612. package/deps/abseil-cpp/absl/random/internal/randen_engine.h +0 -265
  613. package/deps/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -654
  614. package/deps/abseil-cpp/absl/random/internal/randen_hwaes.cc +0 -526
  615. package/deps/abseil-cpp/absl/random/internal/randen_hwaes.h +0 -50
  616. package/deps/abseil-cpp/absl/random/internal/randen_hwaes_test.cc +0 -99
  617. package/deps/abseil-cpp/absl/random/internal/randen_round_keys.cc +0 -462
  618. package/deps/abseil-cpp/absl/random/internal/randen_slow.cc +0 -471
  619. package/deps/abseil-cpp/absl/random/internal/randen_slow.h +0 -40
  620. package/deps/abseil-cpp/absl/random/internal/randen_slow_test.cc +0 -61
  621. package/deps/abseil-cpp/absl/random/internal/randen_test.cc +0 -75
  622. package/deps/abseil-cpp/absl/random/internal/randen_traits.h +0 -88
  623. package/deps/abseil-cpp/absl/random/internal/salted_seed_seq.h +0 -165
  624. package/deps/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc +0 -172
  625. package/deps/abseil-cpp/absl/random/internal/seed_material.cc +0 -249
  626. package/deps/abseil-cpp/absl/random/internal/seed_material.h +0 -104
  627. package/deps/abseil-cpp/absl/random/internal/seed_material_test.cc +0 -205
  628. package/deps/abseil-cpp/absl/random/internal/sequence_urbg.h +0 -60
  629. package/deps/abseil-cpp/absl/random/internal/traits.h +0 -149
  630. package/deps/abseil-cpp/absl/random/internal/traits_test.cc +0 -123
  631. package/deps/abseil-cpp/absl/random/internal/uniform_helper.h +0 -244
  632. package/deps/abseil-cpp/absl/random/internal/uniform_helper_test.cc +0 -279
  633. package/deps/abseil-cpp/absl/random/internal/wide_multiply.h +0 -95
  634. package/deps/abseil-cpp/absl/random/internal/wide_multiply_test.cc +0 -119
  635. package/deps/abseil-cpp/absl/random/log_uniform_int_distribution.h +0 -253
  636. package/deps/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc +0 -277
  637. package/deps/abseil-cpp/absl/random/mock_distributions.h +0 -269
  638. package/deps/abseil-cpp/absl/random/mock_distributions_test.cc +0 -281
  639. package/deps/abseil-cpp/absl/random/mocking_bit_gen.h +0 -237
  640. package/deps/abseil-cpp/absl/random/mocking_bit_gen_test.cc +0 -403
  641. package/deps/abseil-cpp/absl/random/poisson_distribution.h +0 -262
  642. package/deps/abseil-cpp/absl/random/poisson_distribution_test.cc +0 -569
  643. package/deps/abseil-cpp/absl/random/random.h +0 -224
  644. package/deps/abseil-cpp/absl/random/seed_gen_exception.cc +0 -45
  645. package/deps/abseil-cpp/absl/random/seed_gen_exception.h +0 -55
  646. package/deps/abseil-cpp/absl/random/seed_sequences.cc +0 -33
  647. package/deps/abseil-cpp/absl/random/seed_sequences.h +0 -112
  648. package/deps/abseil-cpp/absl/random/seed_sequences_test.cc +0 -126
  649. package/deps/abseil-cpp/absl/random/uniform_int_distribution.h +0 -276
  650. package/deps/abseil-cpp/absl/random/uniform_int_distribution_test.cc +0 -259
  651. package/deps/abseil-cpp/absl/random/uniform_real_distribution.h +0 -204
  652. package/deps/abseil-cpp/absl/random/uniform_real_distribution_test.cc +0 -394
  653. package/deps/abseil-cpp/absl/random/zipf_distribution.h +0 -273
  654. package/deps/abseil-cpp/absl/random/zipf_distribution_test.cc +0 -423
  655. package/deps/abseil-cpp/absl/status/BUILD.bazel +0 -211
  656. package/deps/abseil-cpp/absl/status/CMakeLists.txt +0 -159
  657. package/deps/abseil-cpp/absl/status/internal/status_internal.cc +0 -251
  658. package/deps/abseil-cpp/absl/status/internal/status_internal.h +0 -133
  659. package/deps/abseil-cpp/absl/status/internal/status_matchers.cc +0 -69
  660. package/deps/abseil-cpp/absl/status/internal/status_matchers.h +0 -246
  661. package/deps/abseil-cpp/absl/status/internal/statusor_internal.h +0 -657
  662. package/deps/abseil-cpp/absl/status/status.cc +0 -421
  663. package/deps/abseil-cpp/absl/status/status.h +0 -948
  664. package/deps/abseil-cpp/absl/status/status_benchmark.cc +0 -37
  665. package/deps/abseil-cpp/absl/status/status_matchers.h +0 -166
  666. package/deps/abseil-cpp/absl/status/status_matchers_test.cc +0 -211
  667. package/deps/abseil-cpp/absl/status/status_payload_printer.cc +0 -36
  668. package/deps/abseil-cpp/absl/status/status_payload_printer.h +0 -52
  669. package/deps/abseil-cpp/absl/status/status_test.cc +0 -580
  670. package/deps/abseil-cpp/absl/status/statusor.cc +0 -106
  671. package/deps/abseil-cpp/absl/status/statusor.h +0 -743
  672. package/deps/abseil-cpp/absl/status/statusor_benchmark.cc +0 -480
  673. package/deps/abseil-cpp/absl/status/statusor_test.cc +0 -2124
  674. package/deps/abseil-cpp/absl/strings/BUILD.bazel +0 -1593
  675. package/deps/abseil-cpp/absl/strings/CMakeLists.txt +0 -1295
  676. package/deps/abseil-cpp/absl/strings/ascii.cc +0 -296
  677. package/deps/abseil-cpp/absl/strings/ascii.h +0 -289
  678. package/deps/abseil-cpp/absl/strings/ascii_benchmark.cc +0 -157
  679. package/deps/abseil-cpp/absl/strings/ascii_test.cc +0 -374
  680. package/deps/abseil-cpp/absl/strings/atod_manual_test.cc +0 -193
  681. package/deps/abseil-cpp/absl/strings/char_formatting_test.cc +0 -169
  682. package/deps/abseil-cpp/absl/strings/charconv.cc +0 -1442
  683. package/deps/abseil-cpp/absl/strings/charconv.h +0 -123
  684. package/deps/abseil-cpp/absl/strings/charconv_benchmark.cc +0 -203
  685. package/deps/abseil-cpp/absl/strings/charconv_test.cc +0 -787
  686. package/deps/abseil-cpp/absl/strings/charset.h +0 -163
  687. package/deps/abseil-cpp/absl/strings/charset_benchmark.cc +0 -57
  688. package/deps/abseil-cpp/absl/strings/charset_test.cc +0 -181
  689. package/deps/abseil-cpp/absl/strings/cord.cc +0 -1582
  690. package/deps/abseil-cpp/absl/strings/cord.h +0 -1763
  691. package/deps/abseil-cpp/absl/strings/cord_analysis.cc +0 -196
  692. package/deps/abseil-cpp/absl/strings/cord_analysis.h +0 -63
  693. package/deps/abseil-cpp/absl/strings/cord_buffer.h +0 -572
  694. package/deps/abseil-cpp/absl/strings/cord_buffer_test.cc +0 -322
  695. package/deps/abseil-cpp/absl/strings/cord_test.cc +0 -3421
  696. package/deps/abseil-cpp/absl/strings/cord_test_helpers.h +0 -122
  697. package/deps/abseil-cpp/absl/strings/cordz_test.cc +0 -468
  698. package/deps/abseil-cpp/absl/strings/cordz_test_helpers.h +0 -152
  699. package/deps/abseil-cpp/absl/strings/escaping.cc +0 -1035
  700. package/deps/abseil-cpp/absl/strings/escaping.h +0 -185
  701. package/deps/abseil-cpp/absl/strings/escaping_benchmark.cc +0 -124
  702. package/deps/abseil-cpp/absl/strings/escaping_test.cc +0 -760
  703. package/deps/abseil-cpp/absl/strings/has_absl_stringify.h +0 -64
  704. package/deps/abseil-cpp/absl/strings/has_absl_stringify_test.cc +0 -40
  705. package/deps/abseil-cpp/absl/strings/has_ostream_operator.h +0 -42
  706. package/deps/abseil-cpp/absl/strings/has_ostream_operator_test.cc +0 -41
  707. package/deps/abseil-cpp/absl/strings/internal/append_and_overwrite.h +0 -93
  708. package/deps/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +0 -95
  709. package/deps/abseil-cpp/absl/strings/internal/charconv_bigint.cc +0 -357
  710. package/deps/abseil-cpp/absl/strings/internal/charconv_bigint.h +0 -433
  711. package/deps/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +0 -260
  712. package/deps/abseil-cpp/absl/strings/internal/charconv_parse.cc +0 -504
  713. package/deps/abseil-cpp/absl/strings/internal/charconv_parse.h +0 -99
  714. package/deps/abseil-cpp/absl/strings/internal/charconv_parse_test.cc +0 -357
  715. package/deps/abseil-cpp/absl/strings/internal/cord_data_edge.h +0 -63
  716. package/deps/abseil-cpp/absl/strings/internal/cord_data_edge_test.cc +0 -130
  717. package/deps/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -70
  718. package/deps/abseil-cpp/absl/strings/internal/cord_internal.h +0 -942
  719. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -1237
  720. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree.h +0 -944
  721. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +0 -187
  722. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +0 -267
  723. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator_test.cc +0 -346
  724. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +0 -69
  725. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +0 -212
  726. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader_test.cc +0 -293
  727. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +0 -1568
  728. package/deps/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +0 -64
  729. package/deps/abseil-cpp/absl/strings/internal/cord_rep_consume.h +0 -47
  730. package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +0 -56
  731. package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc.h +0 -103
  732. package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc_test.cc +0 -130
  733. package/deps/abseil-cpp/absl/strings/internal/cord_rep_flat.h +0 -195
  734. package/deps/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +0 -205
  735. package/deps/abseil-cpp/absl/strings/internal/cordz_functions.cc +0 -102
  736. package/deps/abseil-cpp/absl/strings/internal/cordz_functions.h +0 -87
  737. package/deps/abseil-cpp/absl/strings/internal/cordz_functions_test.cc +0 -147
  738. package/deps/abseil-cpp/absl/strings/internal/cordz_handle.cc +0 -165
  739. package/deps/abseil-cpp/absl/strings/internal/cordz_handle.h +0 -98
  740. package/deps/abseil-cpp/absl/strings/internal/cordz_handle_test.cc +0 -265
  741. package/deps/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -424
  742. package/deps/abseil-cpp/absl/strings/internal/cordz_info.h +0 -295
  743. package/deps/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc +0 -510
  744. package/deps/abseil-cpp/absl/strings/internal/cordz_info_test.cc +0 -342
  745. package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token.cc +0 -64
  746. package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token.h +0 -97
  747. package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +0 -208
  748. package/deps/abseil-cpp/absl/strings/internal/cordz_statistics.h +0 -88
  749. package/deps/abseil-cpp/absl/strings/internal/cordz_update_scope.h +0 -71
  750. package/deps/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc +0 -49
  751. package/deps/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +0 -123
  752. package/deps/abseil-cpp/absl/strings/internal/cordz_update_tracker_test.cc +0 -147
  753. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +0 -99
  754. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +0 -35
  755. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +0 -56
  756. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_test.cc +0 -99
  757. package/deps/abseil-cpp/absl/strings/internal/escaping.cc +0 -209
  758. package/deps/abseil-cpp/absl/strings/internal/escaping.h +0 -59
  759. package/deps/abseil-cpp/absl/strings/internal/escaping_test_common.h +0 -133
  760. package/deps/abseil-cpp/absl/strings/internal/generic_printer.cc +0 -107
  761. package/deps/abseil-cpp/absl/strings/internal/generic_printer.h +0 -115
  762. package/deps/abseil-cpp/absl/strings/internal/generic_printer_internal.h +0 -423
  763. package/deps/abseil-cpp/absl/strings/internal/generic_printer_test.cc +0 -685
  764. package/deps/abseil-cpp/absl/strings/internal/memutil.cc +0 -48
  765. package/deps/abseil-cpp/absl/strings/internal/memutil.h +0 -40
  766. package/deps/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +0 -127
  767. package/deps/abseil-cpp/absl/strings/internal/memutil_test.cc +0 -41
  768. package/deps/abseil-cpp/absl/strings/internal/numbers_test_common.h +0 -184
  769. package/deps/abseil-cpp/absl/strings/internal/ostringstream.cc +0 -43
  770. package/deps/abseil-cpp/absl/strings/internal/ostringstream.h +0 -114
  771. package/deps/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +0 -105
  772. package/deps/abseil-cpp/absl/strings/internal/ostringstream_test.cc +0 -131
  773. package/deps/abseil-cpp/absl/strings/internal/pow10_helper.cc +0 -122
  774. package/deps/abseil-cpp/absl/strings/internal/pow10_helper.h +0 -40
  775. package/deps/abseil-cpp/absl/strings/internal/pow10_helper_test.cc +0 -122
  776. package/deps/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -119
  777. package/deps/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +0 -108
  778. package/deps/abseil-cpp/absl/strings/internal/stl_type_traits.h +0 -248
  779. package/deps/abseil-cpp/absl/strings/internal/str_format/arg.cc +0 -615
  780. package/deps/abseil-cpp/absl/strings/internal/str_format/arg.h +0 -661
  781. package/deps/abseil-cpp/absl/strings/internal/str_format/arg_test.cc +0 -162
  782. package/deps/abseil-cpp/absl/strings/internal/str_format/bind.cc +0 -275
  783. package/deps/abseil-cpp/absl/strings/internal/str_format/bind.h +0 -237
  784. package/deps/abseil-cpp/absl/strings/internal/str_format/bind_test.cc +0 -157
  785. package/deps/abseil-cpp/absl/strings/internal/str_format/checker.h +0 -98
  786. package/deps/abseil-cpp/absl/strings/internal/str_format/checker_test.cc +0 -176
  787. package/deps/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +0 -357
  788. package/deps/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +0 -1471
  789. package/deps/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -53
  790. package/deps/abseil-cpp/absl/strings/internal/str_format/extension.h +0 -456
  791. package/deps/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +0 -110
  792. package/deps/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +0 -1945
  793. package/deps/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +0 -37
  794. package/deps/abseil-cpp/absl/strings/internal/str_format/output.cc +0 -74
  795. package/deps/abseil-cpp/absl/strings/internal/str_format/output.h +0 -97
  796. package/deps/abseil-cpp/absl/strings/internal/str_format/output_test.cc +0 -79
  797. package/deps/abseil-cpp/absl/strings/internal/str_format/parser.cc +0 -140
  798. package/deps/abseil-cpp/absl/strings/internal/str_format/parser.h +0 -271
  799. package/deps/abseil-cpp/absl/strings/internal/str_format/parser_test.cc +0 -446
  800. package/deps/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -341
  801. package/deps/abseil-cpp/absl/strings/internal/str_split_internal.h +0 -525
  802. package/deps/abseil-cpp/absl/strings/internal/string_constant.h +0 -67
  803. package/deps/abseil-cpp/absl/strings/internal/string_constant_test.cc +0 -60
  804. package/deps/abseil-cpp/absl/strings/internal/stringify_sink.cc +0 -28
  805. package/deps/abseil-cpp/absl/strings/internal/stringify_sink.h +0 -57
  806. package/deps/abseil-cpp/absl/strings/internal/utf8.cc +0 -148
  807. package/deps/abseil-cpp/absl/strings/internal/utf8.h +0 -64
  808. package/deps/abseil-cpp/absl/strings/internal/utf8_test.cc +0 -259
  809. package/deps/abseil-cpp/absl/strings/match.cc +0 -133
  810. package/deps/abseil-cpp/absl/strings/match.h +0 -129
  811. package/deps/abseil-cpp/absl/strings/match_test.cc +0 -291
  812. package/deps/abseil-cpp/absl/strings/numbers.cc +0 -1230
  813. package/deps/abseil-cpp/absl/strings/numbers.h +0 -359
  814. package/deps/abseil-cpp/absl/strings/numbers_benchmark.cc +0 -288
  815. package/deps/abseil-cpp/absl/strings/numbers_test.cc +0 -2324
  816. package/deps/abseil-cpp/absl/strings/resize_and_overwrite.h +0 -194
  817. package/deps/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +0 -154
  818. package/deps/abseil-cpp/absl/strings/str_cat.cc +0 -247
  819. package/deps/abseil-cpp/absl/strings/str_cat.h +0 -633
  820. package/deps/abseil-cpp/absl/strings/str_cat_benchmark.cc +0 -288
  821. package/deps/abseil-cpp/absl/strings/str_cat_test.cc +0 -692
  822. package/deps/abseil-cpp/absl/strings/str_format.h +0 -887
  823. package/deps/abseil-cpp/absl/strings/str_format_test.cc +0 -1230
  824. package/deps/abseil-cpp/absl/strings/str_join.h +0 -301
  825. package/deps/abseil-cpp/absl/strings/str_join_benchmark.cc +0 -106
  826. package/deps/abseil-cpp/absl/strings/str_join_test.cc +0 -645
  827. package/deps/abseil-cpp/absl/strings/str_replace.cc +0 -91
  828. package/deps/abseil-cpp/absl/strings/str_replace.h +0 -222
  829. package/deps/abseil-cpp/absl/strings/str_replace_benchmark.cc +0 -121
  830. package/deps/abseil-cpp/absl/strings/str_replace_test.cc +0 -345
  831. package/deps/abseil-cpp/absl/strings/str_split.cc +0 -144
  832. package/deps/abseil-cpp/absl/strings/str_split.h +0 -582
  833. package/deps/abseil-cpp/absl/strings/str_split_benchmark.cc +0 -180
  834. package/deps/abseil-cpp/absl/strings/str_split_test.cc +0 -1069
  835. package/deps/abseil-cpp/absl/strings/string_view.h +0 -60
  836. package/deps/abseil-cpp/absl/strings/string_view_test.cc +0 -86
  837. package/deps/abseil-cpp/absl/strings/strip.h +0 -99
  838. package/deps/abseil-cpp/absl/strings/strip_test.cc +0 -198
  839. package/deps/abseil-cpp/absl/strings/substitute.cc +0 -187
  840. package/deps/abseil-cpp/absl/strings/substitute.h +0 -769
  841. package/deps/abseil-cpp/absl/strings/substitute_benchmark.cc +0 -158
  842. package/deps/abseil-cpp/absl/strings/substitute_test.cc +0 -288
  843. package/deps/abseil-cpp/absl/synchronization/BUILD.bazel +0 -410
  844. package/deps/abseil-cpp/absl/synchronization/CMakeLists.txt +0 -293
  845. package/deps/abseil-cpp/absl/synchronization/barrier.cc +0 -52
  846. package/deps/abseil-cpp/absl/synchronization/barrier.h +0 -79
  847. package/deps/abseil-cpp/absl/synchronization/barrier_test.cc +0 -75
  848. package/deps/abseil-cpp/absl/synchronization/blocking_counter.cc +0 -73
  849. package/deps/abseil-cpp/absl/synchronization/blocking_counter.h +0 -107
  850. package/deps/abseil-cpp/absl/synchronization/blocking_counter_benchmark.cc +0 -84
  851. package/deps/abseil-cpp/absl/synchronization/blocking_counter_test.cc +0 -146
  852. package/deps/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +0 -152
  853. package/deps/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -56
  854. package/deps/abseil-cpp/absl/synchronization/internal/futex.h +0 -177
  855. package/deps/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -107
  856. package/deps/abseil-cpp/absl/synchronization/internal/futex_waiter.h +0 -63
  857. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles.cc +0 -714
  858. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles.h +0 -146
  859. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +0 -43
  860. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +0 -483
  861. package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -220
  862. package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +0 -178
  863. package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +0 -406
  864. package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -106
  865. package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +0 -119
  866. package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc +0 -194
  867. package/deps/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -163
  868. package/deps/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +0 -60
  869. package/deps/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -118
  870. package/deps/abseil-cpp/absl/synchronization/internal/sem_waiter.h +0 -65
  871. package/deps/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -87
  872. package/deps/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +0 -56
  873. package/deps/abseil-cpp/absl/synchronization/internal/thread_pool.h +0 -96
  874. package/deps/abseil-cpp/absl/synchronization/internal/waiter.h +0 -69
  875. package/deps/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -38
  876. package/deps/abseil-cpp/absl/synchronization/internal/waiter_base.h +0 -90
  877. package/deps/abseil-cpp/absl/synchronization/internal/waiter_test.cc +0 -192
  878. package/deps/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -147
  879. package/deps/abseil-cpp/absl/synchronization/internal/win32_waiter.h +0 -72
  880. package/deps/abseil-cpp/absl/synchronization/lifetime_test.cc +0 -180
  881. package/deps/abseil-cpp/absl/synchronization/mutex.cc +0 -2820
  882. package/deps/abseil-cpp/absl/synchronization/mutex.h +0 -1352
  883. package/deps/abseil-cpp/absl/synchronization/mutex_benchmark.cc +0 -321
  884. package/deps/abseil-cpp/absl/synchronization/mutex_method_pointer_test.cc +0 -138
  885. package/deps/abseil-cpp/absl/synchronization/mutex_test.cc +0 -2065
  886. package/deps/abseil-cpp/absl/synchronization/notification.cc +0 -85
  887. package/deps/abseil-cpp/absl/synchronization/notification.h +0 -133
  888. package/deps/abseil-cpp/absl/synchronization/notification_test.cc +0 -230
  889. package/deps/abseil-cpp/absl/time/BUILD.bazel +0 -244
  890. package/deps/abseil-cpp/absl/time/CMakeLists.txt +0 -218
  891. package/deps/abseil-cpp/absl/time/civil_time.cc +0 -200
  892. package/deps/abseil-cpp/absl/time/civil_time.h +0 -589
  893. package/deps/abseil-cpp/absl/time/civil_time_benchmark.cc +0 -129
  894. package/deps/abseil-cpp/absl/time/civil_time_test.cc +0 -1351
  895. package/deps/abseil-cpp/absl/time/clock.cc +0 -603
  896. package/deps/abseil-cpp/absl/time/clock.h +0 -78
  897. package/deps/abseil-cpp/absl/time/clock_benchmark.cc +0 -74
  898. package/deps/abseil-cpp/absl/time/clock_interface.cc +0 -71
  899. package/deps/abseil-cpp/absl/time/clock_interface.h +0 -91
  900. package/deps/abseil-cpp/absl/time/clock_interface_test.cc +0 -128
  901. package/deps/abseil-cpp/absl/time/clock_test.cc +0 -122
  902. package/deps/abseil-cpp/absl/time/duration.cc +0 -918
  903. package/deps/abseil-cpp/absl/time/duration_benchmark.cc +0 -608
  904. package/deps/abseil-cpp/absl/time/duration_test.cc +0 -1901
  905. package/deps/abseil-cpp/absl/time/flag_test.cc +0 -147
  906. package/deps/abseil-cpp/absl/time/format.cc +0 -162
  907. package/deps/abseil-cpp/absl/time/format_benchmark.cc +0 -64
  908. package/deps/abseil-cpp/absl/time/format_test.cc +0 -441
  909. package/deps/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +0 -195
  910. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +0 -332
  911. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +0 -644
  912. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +0 -460
  913. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +0 -102
  914. package/deps/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +0 -436
  915. package/deps/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +0 -94
  916. package/deps/abseil-cpp/absl/time/internal/cctz/src/civil_time_test.cc +0 -1066
  917. package/deps/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +0 -515
  918. package/deps/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +0 -33
  919. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +0 -140
  920. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +0 -52
  921. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +0 -1068
  922. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +0 -1773
  923. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +0 -47
  924. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +0 -80
  925. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +0 -115
  926. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +0 -97
  927. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +0 -1070
  928. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +0 -128
  929. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +0 -333
  930. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +0 -60
  931. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -217
  932. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +0 -918
  933. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +0 -186
  934. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +0 -37
  935. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +0 -159
  936. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +0 -132
  937. package/deps/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +0 -120
  938. package/deps/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +0 -116
  939. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/README.zoneinfo +0 -38
  940. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/version +0 -1
  941. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Abidjan +0 -0
  942. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Accra +0 -0
  943. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Addis_Ababa +0 -0
  944. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Algiers +0 -0
  945. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmara +0 -0
  946. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmera +0 -0
  947. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bamako +0 -0
  948. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bangui +0 -0
  949. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Banjul +0 -0
  950. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bissau +0 -0
  951. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Blantyre +0 -0
  952. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Brazzaville +0 -0
  953. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bujumbura +0 -0
  954. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Cairo +0 -0
  955. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Casablanca +0 -0
  956. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ceuta +0 -0
  957. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Conakry +0 -0
  958. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dakar +0 -0
  959. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dar_es_Salaam +0 -0
  960. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Djibouti +0 -0
  961. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Douala +0 -0
  962. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/El_Aaiun +0 -0
  963. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Freetown +0 -0
  964. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Gaborone +0 -0
  965. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Harare +0 -0
  966. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Johannesburg +0 -0
  967. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Juba +0 -0
  968. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kampala +0 -0
  969. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Khartoum +0 -0
  970. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kigali +0 -0
  971. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kinshasa +0 -0
  972. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lagos +0 -0
  973. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Libreville +0 -0
  974. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lome +0 -0
  975. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Luanda +0 -0
  976. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lubumbashi +0 -0
  977. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lusaka +0 -0
  978. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Malabo +0 -0
  979. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maputo +0 -0
  980. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maseru +0 -0
  981. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mbabane +0 -0
  982. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mogadishu +0 -0
  983. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Monrovia +0 -0
  984. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nairobi +0 -0
  985. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ndjamena +0 -0
  986. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Niamey +0 -0
  987. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nouakchott +0 -0
  988. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ouagadougou +0 -0
  989. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Porto-Novo +0 -0
  990. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Sao_Tome +0 -0
  991. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Timbuktu +0 -0
  992. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tripoli +0 -0
  993. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tunis +0 -0
  994. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Windhoek +0 -0
  995. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Adak +0 -0
  996. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anchorage +0 -0
  997. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anguilla +0 -0
  998. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Antigua +0 -0
  999. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Araguaina +0 -0
  1000. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  1001. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Catamarca +0 -0
  1002. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/ComodRivadavia +0 -0
  1003. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Cordoba +0 -0
  1004. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Jujuy +0 -0
  1005. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/La_Rioja +0 -0
  1006. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Mendoza +0 -0
  1007. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Rio_Gallegos +0 -0
  1008. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Salta +0 -0
  1009. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Juan +0 -0
  1010. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Luis +0 -0
  1011. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Tucuman +0 -0
  1012. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Ushuaia +0 -0
  1013. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Aruba +0 -0
  1014. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Asuncion +0 -0
  1015. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atikokan +0 -0
  1016. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atka +0 -0
  1017. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia +0 -0
  1018. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia_Banderas +0 -0
  1019. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Barbados +0 -0
  1020. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belem +0 -0
  1021. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belize +0 -0
  1022. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Blanc-Sablon +0 -0
  1023. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boa_Vista +0 -0
  1024. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bogota +0 -0
  1025. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boise +0 -0
  1026. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Buenos_Aires +0 -0
  1027. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cambridge_Bay +0 -0
  1028. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Campo_Grande +0 -0
  1029. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cancun +0 -0
  1030. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Caracas +0 -0
  1031. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Catamarca +0 -0
  1032. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayenne +0 -0
  1033. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayman +0 -0
  1034. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chicago +0 -0
  1035. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chihuahua +0 -0
  1036. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ciudad_Juarez +0 -0
  1037. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coral_Harbour +0 -0
  1038. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cordoba +0 -0
  1039. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Costa_Rica +0 -0
  1040. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
  1041. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Creston +0 -0
  1042. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cuiaba +0 -0
  1043. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Curacao +0 -0
  1044. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Danmarkshavn +0 -0
  1045. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson +0 -0
  1046. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson_Creek +0 -0
  1047. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Denver +0 -0
  1048. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Detroit +0 -0
  1049. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dominica +0 -0
  1050. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Edmonton +0 -0
  1051. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Eirunepe +0 -0
  1052. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/El_Salvador +0 -0
  1053. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  1054. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Nelson +0 -0
  1055. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Wayne +0 -0
  1056. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fortaleza +0 -0
  1057. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Glace_Bay +0 -0
  1058. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Godthab +0 -0
  1059. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Goose_Bay +0 -0
  1060. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grand_Turk +0 -0
  1061. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grenada +0 -0
  1062. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guadeloupe +0 -0
  1063. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guatemala +0 -0
  1064. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guayaquil +0 -0
  1065. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guyana +0 -0
  1066. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Halifax +0 -0
  1067. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Havana +0 -0
  1068. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Hermosillo +0 -0
  1069. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Indianapolis +0 -0
  1070. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Knox +0 -0
  1071. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Marengo +0 -0
  1072. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Petersburg +0 -0
  1073. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Tell_City +0 -0
  1074. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vevay +0 -0
  1075. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vincennes +0 -0
  1076. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Winamac +0 -0
  1077. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indianapolis +0 -0
  1078. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Inuvik +0 -0
  1079. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Iqaluit +0 -0
  1080. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jamaica +0 -0
  1081. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jujuy +0 -0
  1082. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Juneau +0 -0
  1083. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Louisville +0 -0
  1084. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Monticello +0 -0
  1085. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Knox_IN +0 -0
  1086. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kralendijk +0 -0
  1087. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/La_Paz +0 -0
  1088. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lima +0 -0
  1089. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Los_Angeles +0 -0
  1090. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Louisville +0 -0
  1091. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lower_Princes +0 -0
  1092. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Maceio +0 -0
  1093. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Managua +0 -0
  1094. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Manaus +0 -0
  1095. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Marigot +0 -0
  1096. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Martinique +0 -0
  1097. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Matamoros +0 -0
  1098. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mazatlan +0 -0
  1099. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mendoza +0 -0
  1100. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Menominee +0 -0
  1101. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Merida +0 -0
  1102. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Metlakatla +0 -0
  1103. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mexico_City +0 -0
  1104. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Miquelon +0 -0
  1105. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Moncton +0 -0
  1106. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Monterrey +0 -0
  1107. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montevideo +0 -0
  1108. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montreal +0 -0
  1109. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montserrat +0 -0
  1110. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nassau +0 -0
  1111. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/New_York +0 -0
  1112. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nipigon +0 -0
  1113. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nome +0 -0
  1114. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Noronha +0 -0
  1115. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Beulah +0 -0
  1116. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Center +0 -0
  1117. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/New_Salem +0 -0
  1118. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nuuk +0 -0
  1119. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ojinaga +0 -0
  1120. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Panama +0 -0
  1121. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Pangnirtung +0 -0
  1122. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Paramaribo +0 -0
  1123. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Phoenix +0 -0
  1124. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port-au-Prince +0 -0
  1125. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port_of_Spain +0 -0
  1126. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Acre +0 -0
  1127. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Velho +0 -0
  1128. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Puerto_Rico +0 -0
  1129. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Punta_Arenas +0 -0
  1130. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rainy_River +0 -0
  1131. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rankin_Inlet +0 -0
  1132. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Recife +0 -0
  1133. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Regina +0 -0
  1134. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Resolute +0 -0
  1135. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rio_Branco +0 -0
  1136. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rosario +0 -0
  1137. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  1138. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santarem +0 -0
  1139. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santiago +0 -0
  1140. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santo_Domingo +0 -0
  1141. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sao_Paulo +0 -0
  1142. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Scoresbysund +0 -0
  1143. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Shiprock +0 -0
  1144. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sitka +0 -0
  1145. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Barthelemy +0 -0
  1146. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Johns +0 -0
  1147. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Kitts +0 -0
  1148. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Lucia +0 -0
  1149. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Thomas +0 -0
  1150. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Vincent +0 -0
  1151. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Swift_Current +0 -0
  1152. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tegucigalpa +0 -0
  1153. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thule +0 -0
  1154. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thunder_Bay +0 -0
  1155. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  1156. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Toronto +0 -0
  1157. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tortola +0 -0
  1158. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
  1159. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Virgin +0 -0
  1160. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Whitehorse +0 -0
  1161. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Winnipeg +0 -0
  1162. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yakutat +0 -0
  1163. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yellowknife +0 -0
  1164. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Casey +0 -0
  1165. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Davis +0 -0
  1166. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/DumontDUrville +0 -0
  1167. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Macquarie +0 -0
  1168. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Mawson +0 -0
  1169. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/McMurdo +0 -0
  1170. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Palmer +0 -0
  1171. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Rothera +0 -0
  1172. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/South_Pole +0 -0
  1173. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Syowa +0 -0
  1174. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Troll +0 -0
  1175. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Vostok +0 -0
  1176. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Arctic/Longyearbyen +0 -0
  1177. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aden +0 -0
  1178. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Almaty +0 -0
  1179. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Amman +0 -0
  1180. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Anadyr +0 -0
  1181. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtau +0 -0
  1182. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtobe +0 -0
  1183. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashgabat +0 -0
  1184. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashkhabad +0 -0
  1185. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Atyrau +0 -0
  1186. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baghdad +0 -0
  1187. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bahrain +0 -0
  1188. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baku +0 -0
  1189. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bangkok +0 -0
  1190. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Barnaul +0 -0
  1191. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Beirut +0 -0
  1192. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bishkek +0 -0
  1193. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Brunei +0 -0
  1194. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Calcutta +0 -0
  1195. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chita +0 -0
  1196. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Choibalsan +0 -0
  1197. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chongqing +0 -0
  1198. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chungking +0 -0
  1199. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Colombo +0 -0
  1200. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dacca +0 -0
  1201. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Damascus +0 -0
  1202. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dhaka +0 -0
  1203. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dili +0 -0
  1204. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dubai +0 -0
  1205. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dushanbe +0 -0
  1206. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Famagusta +0 -0
  1207. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Gaza +0 -0
  1208. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Harbin +0 -0
  1209. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hebron +0 -0
  1210. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  1211. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hong_Kong +0 -0
  1212. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hovd +0 -0
  1213. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Irkutsk +0 -0
  1214. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Istanbul +0 -0
  1215. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jakarta +0 -0
  1216. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jayapura +0 -0
  1217. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jerusalem +0 -0
  1218. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kabul +0 -0
  1219. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kamchatka +0 -0
  1220. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Karachi +0 -0
  1221. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kashgar +0 -0
  1222. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kathmandu +0 -0
  1223. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Katmandu +0 -0
  1224. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Khandyga +0 -0
  1225. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kolkata +0 -0
  1226. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Krasnoyarsk +0 -0
  1227. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuala_Lumpur +0 -0
  1228. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuching +0 -0
  1229. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuwait +0 -0
  1230. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macao +0 -0
  1231. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macau +0 -0
  1232. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Magadan +0 -0
  1233. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Makassar +0 -0
  1234. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Manila +0 -0
  1235. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Muscat +0 -0
  1236. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Nicosia +0 -0
  1237. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novokuznetsk +0 -0
  1238. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novosibirsk +0 -0
  1239. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Omsk +0 -0
  1240. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Oral +0 -0
  1241. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
  1242. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pontianak +0 -0
  1243. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pyongyang +0 -0
  1244. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qatar +0 -0
  1245. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qostanay +0 -0
  1246. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qyzylorda +0 -0
  1247. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Rangoon +0 -0
  1248. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Riyadh +0 -0
  1249. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  1250. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Sakhalin +0 -0
  1251. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Samarkand +0 -0
  1252. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Seoul +0 -0
  1253. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Shanghai +0 -0
  1254. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Singapore +0 -0
  1255. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Srednekolymsk +0 -0
  1256. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Taipei +0 -0
  1257. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tashkent +0 -0
  1258. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
  1259. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
  1260. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tel_Aviv +0 -0
  1261. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimbu +0 -0
  1262. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimphu +0 -0
  1263. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tokyo +0 -0
  1264. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tomsk +0 -0
  1265. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ujung_Pandang +0 -0
  1266. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulaanbaatar +0 -0
  1267. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulan_Bator +0 -0
  1268. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Urumqi +0 -0
  1269. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ust-Nera +0 -0
  1270. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
  1271. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vladivostok +0 -0
  1272. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yakutsk +0 -0
  1273. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yangon +0 -0
  1274. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yekaterinburg +0 -0
  1275. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yerevan +0 -0
  1276. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Azores +0 -0
  1277. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Bermuda +0 -0
  1278. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Canary +0 -0
  1279. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Cape_Verde +0 -0
  1280. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faeroe +0 -0
  1281. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faroe +0 -0
  1282. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Jan_Mayen +0 -0
  1283. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Madeira +0 -0
  1284. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Reykjavik +0 -0
  1285. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/South_Georgia +0 -0
  1286. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/St_Helena +0 -0
  1287. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Stanley +0 -0
  1288. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/ACT +0 -0
  1289. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Adelaide +0 -0
  1290. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Brisbane +0 -0
  1291. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Broken_Hill +0 -0
  1292. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Canberra +0 -0
  1293. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Currie +0 -0
  1294. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Darwin +0 -0
  1295. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Eucla +0 -0
  1296. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Hobart +0 -0
  1297. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/LHI +0 -0
  1298. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lindeman +0 -0
  1299. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lord_Howe +0 -0
  1300. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Melbourne +0 -0
  1301. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/NSW +0 -0
  1302. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/North +0 -0
  1303. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Perth +0 -0
  1304. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Queensland +0 -0
  1305. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/South +0 -0
  1306. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Sydney +0 -0
  1307. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Tasmania +0 -0
  1308. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Victoria +0 -0
  1309. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/West +0 -0
  1310. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Yancowinna +0 -0
  1311. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/Acre +0 -0
  1312. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/DeNoronha +0 -0
  1313. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/East +0 -0
  1314. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/West +0 -0
  1315. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CET +0 -0
  1316. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CST6CDT +0 -0
  1317. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Atlantic +0 -0
  1318. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Central +0 -0
  1319. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Eastern +0 -0
  1320. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Mountain +0 -0
  1321. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Newfoundland +0 -0
  1322. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
  1323. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Saskatchewan +0 -0
  1324. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Yukon +0 -0
  1325. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/Continental +0 -0
  1326. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/EasterIsland +0 -0
  1327. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Cuba +0 -0
  1328. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EET +0 -0
  1329. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST +0 -0
  1330. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST5EDT +0 -0
  1331. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Egypt +0 -0
  1332. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Eire +0 -0
  1333. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT +0 -0
  1334. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+0 +0 -0
  1335. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+1 +0 -0
  1336. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+10 +0 -0
  1337. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+11 +0 -0
  1338. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+12 +0 -0
  1339. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+2 +0 -0
  1340. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+3 +0 -0
  1341. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+4 +0 -0
  1342. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+5 +0 -0
  1343. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+6 +0 -0
  1344. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+7 +0 -0
  1345. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+8 +0 -0
  1346. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+9 +0 -0
  1347. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-0 +0 -0
  1348. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-1 +0 -0
  1349. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-10 +0 -0
  1350. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-11 +0 -0
  1351. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-12 +0 -0
  1352. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-13 +0 -0
  1353. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-14 +0 -0
  1354. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-2 +0 -0
  1355. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-3 +0 -0
  1356. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-4 +0 -0
  1357. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-5 +0 -0
  1358. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-6 +0 -0
  1359. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-7 +0 -0
  1360. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-8 +0 -0
  1361. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-9 +0 -0
  1362. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT0 +0 -0
  1363. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Greenwich +0 -0
  1364. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UCT +0 -0
  1365. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UTC +0 -0
  1366. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Universal +0 -0
  1367. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Zulu +0 -0
  1368. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Amsterdam +0 -0
  1369. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Andorra +0 -0
  1370. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Astrakhan +0 -0
  1371. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Athens +0 -0
  1372. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belfast +0 -0
  1373. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belgrade +0 -0
  1374. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Berlin +0 -0
  1375. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bratislava +0 -0
  1376. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Brussels +0 -0
  1377. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bucharest +0 -0
  1378. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Budapest +0 -0
  1379. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Busingen +0 -0
  1380. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
  1381. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Copenhagen +0 -0
  1382. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Dublin +0 -0
  1383. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Gibraltar +0 -0
  1384. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Guernsey +0 -0
  1385. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Helsinki +0 -0
  1386. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Isle_of_Man +0 -0
  1387. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Istanbul +0 -0
  1388. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Jersey +0 -0
  1389. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kaliningrad +0 -0
  1390. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kiev +0 -0
  1391. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kirov +0 -0
  1392. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kyiv +0 -0
  1393. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Lisbon +0 -0
  1394. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ljubljana +0 -0
  1395. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/London +0 -0
  1396. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Luxembourg +0 -0
  1397. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Madrid +0 -0
  1398. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Malta +0 -0
  1399. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Mariehamn +0 -0
  1400. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Minsk +0 -0
  1401. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Monaco +0 -0
  1402. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Moscow +0 -0
  1403. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Nicosia +0 -0
  1404. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Oslo +0 -0
  1405. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Paris +0 -0
  1406. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Podgorica +0 -0
  1407. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Prague +0 -0
  1408. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Riga +0 -0
  1409. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Rome +0 -0
  1410. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Samara +0 -0
  1411. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/San_Marino +0 -0
  1412. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sarajevo +0 -0
  1413. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Saratov +0 -0
  1414. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Simferopol +0 -0
  1415. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Skopje +0 -0
  1416. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sofia +0 -0
  1417. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Stockholm +0 -0
  1418. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tallinn +0 -0
  1419. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tirane +0 -0
  1420. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
  1421. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ulyanovsk +0 -0
  1422. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Uzhgorod +0 -0
  1423. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vaduz +0 -0
  1424. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vatican +0 -0
  1425. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vienna +0 -0
  1426. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vilnius +0 -0
  1427. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Volgograd +0 -0
  1428. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Warsaw +0 -0
  1429. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zagreb +0 -0
  1430. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zaporozhye +0 -0
  1431. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zurich +0 -0
  1432. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Factory +0 -0
  1433. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB +0 -0
  1434. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB-Eire +0 -0
  1435. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT +0 -0
  1436. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT+0 +0 -0
  1437. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT-0 +0 -0
  1438. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT0 +0 -0
  1439. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Greenwich +0 -0
  1440. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/HST +0 -0
  1441. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Hongkong +0 -0
  1442. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iceland +0 -0
  1443. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Antananarivo +0 -0
  1444. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Chagos +0 -0
  1445. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Christmas +0 -0
  1446. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Cocos +0 -0
  1447. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Comoro +0 -0
  1448. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Kerguelen +0 -0
  1449. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mahe +0 -0
  1450. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Maldives +0 -0
  1451. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mauritius +0 -0
  1452. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mayotte +0 -0
  1453. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Reunion +0 -0
  1454. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
  1455. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Israel +0 -0
  1456. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Jamaica +0 -0
  1457. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Japan +0 -0
  1458. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Kwajalein +0 -0
  1459. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Libya +0 -0
  1460. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MET +0 -0
  1461. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST +0 -0
  1462. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST7MDT +0 -0
  1463. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  1464. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaSur +0 -0
  1465. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/General +0 -0
  1466. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ +0 -0
  1467. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ-CHAT +0 -0
  1468. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Navajo +0 -0
  1469. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PRC +0 -0
  1470. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PST8PDT +0 -0
  1471. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Apia +0 -0
  1472. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Auckland +0 -0
  1473. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Bougainville +0 -0
  1474. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chatham +0 -0
  1475. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chuuk +0 -0
  1476. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Easter +0 -0
  1477. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Efate +0 -0
  1478. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Enderbury +0 -0
  1479. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fakaofo +0 -0
  1480. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fiji +0 -0
  1481. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Funafuti +0 -0
  1482. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Galapagos +0 -0
  1483. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Gambier +0 -0
  1484. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guadalcanal +0 -0
  1485. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guam +0 -0
  1486. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Honolulu +0 -0
  1487. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Johnston +0 -0
  1488. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kanton +0 -0
  1489. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kiritimati +0 -0
  1490. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kosrae +0 -0
  1491. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kwajalein +0 -0
  1492. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Majuro +0 -0
  1493. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Marquesas +0 -0
  1494. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Midway +0 -0
  1495. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Nauru +0 -0
  1496. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Niue +0 -0
  1497. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Norfolk +0 -0
  1498. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Noumea +0 -0
  1499. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pago_Pago +0 -0
  1500. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Palau +0 -0
  1501. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pitcairn +0 -0
  1502. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pohnpei +0 -0
  1503. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Ponape +0 -0
  1504. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Port_Moresby +0 -0
  1505. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Rarotonga +0 -0
  1506. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Saipan +0 -0
  1507. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Samoa +0 -0
  1508. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tahiti +0 -0
  1509. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tarawa +0 -0
  1510. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tongatapu +0 -0
  1511. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Truk +0 -0
  1512. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wake +0 -0
  1513. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wallis +0 -0
  1514. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Yap +0 -0
  1515. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Poland +0 -0
  1516. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Portugal +0 -0
  1517. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROC +0 -0
  1518. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROK +0 -0
  1519. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Singapore +0 -0
  1520. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Turkey +0 -0
  1521. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UCT +0 -0
  1522. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Alaska +0 -0
  1523. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Aleutian +0 -0
  1524. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Arizona +0 -0
  1525. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Central +0 -0
  1526. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/East-Indiana +0 -0
  1527. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Eastern +0 -0
  1528. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Hawaii +0 -0
  1529. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Indiana-Starke +0 -0
  1530. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Michigan +0 -0
  1531. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Mountain +0 -0
  1532. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Pacific +0 -0
  1533. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Samoa +0 -0
  1534. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UTC +0 -0
  1535. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Universal +0 -0
  1536. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/W-SU +0 -0
  1537. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/WET +0 -0
  1538. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Zulu +0 -0
  1539. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +0 -279
  1540. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +0 -375
  1541. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +0 -296
  1542. package/deps/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +0 -31
  1543. package/deps/abseil-cpp/absl/time/internal/get_current_time_posix.inc +0 -24
  1544. package/deps/abseil-cpp/absl/time/internal/test_util.cc +0 -32
  1545. package/deps/abseil-cpp/absl/time/internal/test_util.h +0 -33
  1546. package/deps/abseil-cpp/absl/time/simulated_clock.cc +0 -225
  1547. package/deps/abseil-cpp/absl/time/simulated_clock.h +0 -108
  1548. package/deps/abseil-cpp/absl/time/simulated_clock_test.cc +0 -614
  1549. package/deps/abseil-cpp/absl/time/time.cc +0 -507
  1550. package/deps/abseil-cpp/absl/time/time.h +0 -1926
  1551. package/deps/abseil-cpp/absl/time/time_benchmark.cc +0 -321
  1552. package/deps/abseil-cpp/absl/time/time_test.cc +0 -1365
  1553. package/deps/abseil-cpp/absl/time/time_zone_test.cc +0 -97
  1554. package/deps/abseil-cpp/absl/types/BUILD.bazel +0 -166
  1555. package/deps/abseil-cpp/absl/types/CMakeLists.txt +0 -179
  1556. package/deps/abseil-cpp/absl/types/any.h +0 -44
  1557. package/deps/abseil-cpp/absl/types/compare.h +0 -506
  1558. package/deps/abseil-cpp/absl/types/compare_test.cc +0 -300
  1559. package/deps/abseil-cpp/absl/types/internal/span.h +0 -141
  1560. package/deps/abseil-cpp/absl/types/optional.h +0 -41
  1561. package/deps/abseil-cpp/absl/types/span.h +0 -830
  1562. package/deps/abseil-cpp/absl/types/span_test.cc +0 -915
  1563. package/deps/abseil-cpp/absl/types/variant.h +0 -82
  1564. package/deps/abseil-cpp/absl/types/variant_test.cc +0 -164
  1565. package/deps/abseil-cpp/absl/utility/BUILD.bazel +0 -46
  1566. package/deps/abseil-cpp/absl/utility/CMakeLists.txt +0 -28
  1567. package/deps/abseil-cpp/absl/utility/utility.h +0 -68
  1568. package/deps/abseil-cpp/ci/absl_alternate_options.h +0 -28
  1569. package/deps/abseil-cpp/ci/cmake_common.sh +0 -19
  1570. package/deps/abseil-cpp/ci/cmake_install_test.sh +0 -64
  1571. package/deps/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +0 -106
  1572. package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +0 -114
  1573. package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +0 -107
  1574. package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +0 -106
  1575. package/deps/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +0 -104
  1576. package/deps/abseil-cpp/ci/linux_docker_containers.sh +0 -22
  1577. package/deps/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +0 -100
  1578. package/deps/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +0 -105
  1579. package/deps/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +0 -85
  1580. package/deps/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +0 -85
  1581. package/deps/abseil-cpp/ci/macos_xcode_bazel.sh +0 -70
  1582. package/deps/abseil-cpp/ci/macos_xcode_cmake.sh +0 -78
  1583. package/deps/abseil-cpp/ci/windows_clangcl_bazel.bat +0 -70
  1584. package/deps/abseil-cpp/ci/windows_msvc_bazel.bat +0 -61
  1585. package/deps/abseil-cpp/ci/windows_msvc_cmake.bat +0 -69
  1586. package/deps/abseil-cpp/conanfile.py +0 -51
  1587. package/deps/abseil-cpp/create_lts.py +0 -139
  1588. package/deps/re2/.bazelrc +0 -20
  1589. package/deps/re2/.bcr/metadata.template.json +0 -16
  1590. package/deps/re2/.bcr/presubmit.yml +0 -57
  1591. package/deps/re2/.bcr/source.template.json +0 -5
  1592. package/deps/re2/BUILD.bazel +0 -463
  1593. package/deps/re2/CMakeLists.txt +0 -283
  1594. package/deps/re2/LICENSE +0 -27
  1595. package/deps/re2/MODULE.bazel +0 -29
  1596. package/deps/re2/Makefile +0 -408
  1597. package/deps/re2/WORKSPACE.bazel +0 -7
  1598. package/deps/re2/WORKSPACE.bzlmod +0 -7
  1599. package/deps/re2/app/BUILD.bazel +0 -24
  1600. package/deps/re2/app/_re2.cc +0 -94
  1601. package/deps/re2/app/_re2.d.ts +0 -23
  1602. package/deps/re2/app/app.ts +0 -111
  1603. package/deps/re2/app/build.sh +0 -32
  1604. package/deps/re2/app/index.html +0 -5
  1605. package/deps/re2/app/package.json +0 -14
  1606. package/deps/re2/app/rollup.config.js +0 -28
  1607. package/deps/re2/app/tsconfig.json +0 -17
  1608. package/deps/re2/benchlog/benchplot.py +0 -98
  1609. package/deps/re2/benchlog/mktable +0 -155
  1610. package/deps/re2/doc/mksyntaxgo +0 -42
  1611. package/deps/re2/doc/mksyntaxhtml +0 -42
  1612. package/deps/re2/doc/mksyntaxwiki +0 -36
  1613. package/deps/re2/doc/syntax.html +0 -477
  1614. package/deps/re2/doc/syntax.txt +0 -463
  1615. package/deps/re2/lib/git/commit-msg.hook +0 -104
  1616. package/deps/re2/libre2.symbols +0 -16
  1617. package/deps/re2/libre2.symbols.darwin +0 -12
  1618. package/deps/re2/python/BUILD.bazel +0 -80
  1619. package/deps/re2/python/_re2.cc +0 -352
  1620. package/deps/re2/python/re2.py +0 -583
  1621. package/deps/re2/python/re2_test.py +0 -495
  1622. package/deps/re2/python/setup.py +0 -159
  1623. package/deps/re2/python/toolchains/generate.py +0 -100
  1624. package/deps/re2/re2/bitmap256.cc +0 -43
  1625. package/deps/re2/re2/bitmap256.h +0 -88
  1626. package/deps/re2/re2/bitstate.cc +0 -389
  1627. package/deps/re2/re2/compile.cc +0 -1265
  1628. package/deps/re2/re2/dfa.cc +0 -2135
  1629. package/deps/re2/re2/filtered_re2.cc +0 -138
  1630. package/deps/re2/re2/filtered_re2.h +0 -115
  1631. package/deps/re2/re2/fuzzing/re2_fuzzer.cc +0 -284
  1632. package/deps/re2/re2/make_perl_groups.pl +0 -116
  1633. package/deps/re2/re2/make_unicode_casefold.py +0 -151
  1634. package/deps/re2/re2/make_unicode_groups.py +0 -117
  1635. package/deps/re2/re2/mimics_pcre.cc +0 -196
  1636. package/deps/re2/re2/nfa.cc +0 -714
  1637. package/deps/re2/re2/onepass.cc +0 -623
  1638. package/deps/re2/re2/parse.cc +0 -2529
  1639. package/deps/re2/re2/perl_groups.cc +0 -119
  1640. package/deps/re2/re2/pod_array.h +0 -55
  1641. package/deps/re2/re2/prefilter.cc +0 -711
  1642. package/deps/re2/re2/prefilter.h +0 -168
  1643. package/deps/re2/re2/prefilter_tree.cc +0 -376
  1644. package/deps/re2/re2/prefilter_tree.h +0 -153
  1645. package/deps/re2/re2/prog.cc +0 -1181
  1646. package/deps/re2/re2/prog.h +0 -493
  1647. package/deps/re2/re2/re2.cc +0 -1355
  1648. package/deps/re2/re2/re2.h +0 -1074
  1649. package/deps/re2/re2/regexp.cc +0 -1004
  1650. package/deps/re2/re2/regexp.h +0 -693
  1651. package/deps/re2/re2/set.cc +0 -185
  1652. package/deps/re2/re2/set.h +0 -91
  1653. package/deps/re2/re2/simplify.cc +0 -689
  1654. package/deps/re2/re2/sparse_array.h +0 -394
  1655. package/deps/re2/re2/sparse_set.h +0 -266
  1656. package/deps/re2/re2/stringpiece.h +0 -18
  1657. package/deps/re2/re2/testing/backtrack.cc +0 -274
  1658. package/deps/re2/re2/testing/charclass_test.cc +0 -228
  1659. package/deps/re2/re2/testing/compile_test.cc +0 -431
  1660. package/deps/re2/re2/testing/dfa_test.cc +0 -376
  1661. package/deps/re2/re2/testing/dump.cc +0 -172
  1662. package/deps/re2/re2/testing/exhaustive1_test.cc +0 -40
  1663. package/deps/re2/re2/testing/exhaustive2_test.cc +0 -72
  1664. package/deps/re2/re2/testing/exhaustive3_test.cc +0 -100
  1665. package/deps/re2/re2/testing/exhaustive_test.cc +0 -35
  1666. package/deps/re2/re2/testing/exhaustive_tester.cc +0 -204
  1667. package/deps/re2/re2/testing/exhaustive_tester.h +0 -105
  1668. package/deps/re2/re2/testing/filtered_re2_test.cc +0 -343
  1669. package/deps/re2/re2/testing/mimics_pcre_test.cc +0 -79
  1670. package/deps/re2/re2/testing/null_walker.cc +0 -48
  1671. package/deps/re2/re2/testing/parse_test.cc +0 -586
  1672. package/deps/re2/re2/testing/possible_match_test.cc +0 -251
  1673. package/deps/re2/re2/testing/random_test.cc +0 -102
  1674. package/deps/re2/re2/testing/re2_arg_test.cc +0 -182
  1675. package/deps/re2/re2/testing/re2_test.cc +0 -1699
  1676. package/deps/re2/re2/testing/regexp_benchmark.cc +0 -1605
  1677. package/deps/re2/re2/testing/regexp_generator.cc +0 -284
  1678. package/deps/re2/re2/testing/regexp_generator.h +0 -77
  1679. package/deps/re2/re2/testing/regexp_test.cc +0 -87
  1680. package/deps/re2/re2/testing/required_prefix_test.cc +0 -201
  1681. package/deps/re2/re2/testing/search_test.cc +0 -338
  1682. package/deps/re2/re2/testing/set_test.cc +0 -235
  1683. package/deps/re2/re2/testing/simplify_test.cc +0 -289
  1684. package/deps/re2/re2/testing/string_generator.cc +0 -144
  1685. package/deps/re2/re2/testing/string_generator.h +0 -76
  1686. package/deps/re2/re2/testing/string_generator_test.cc +0 -114
  1687. package/deps/re2/re2/testing/tester.cc +0 -690
  1688. package/deps/re2/re2/testing/tester.h +0 -121
  1689. package/deps/re2/re2/tostring.cc +0 -351
  1690. package/deps/re2/re2/unicode.py +0 -284
  1691. package/deps/re2/re2/unicode_casefold.cc +0 -604
  1692. package/deps/re2/re2/unicode_casefold.h +0 -77
  1693. package/deps/re2/re2/unicode_groups.cc +0 -6517
  1694. package/deps/re2/re2/unicode_groups.h +0 -66
  1695. package/deps/re2/re2/walker-inl.h +0 -249
  1696. package/deps/re2/re2.pc.in +0 -9
  1697. package/deps/re2/re2Config.cmake.in +0 -26
  1698. package/deps/re2/runtests +0 -33
  1699. package/deps/re2/testinstall.cc +0 -27
  1700. package/deps/re2/ucs2.diff +0 -567
  1701. package/deps/re2/util/malloc_counter.h +0 -19
  1702. package/deps/re2/util/pcre.cc +0 -957
  1703. package/deps/re2/util/pcre.h +0 -671
  1704. package/deps/re2/util/rune.cc +0 -260
  1705. package/deps/re2/util/strutil.cc +0 -26
  1706. package/deps/re2/util/strutil.h +0 -16
  1707. package/deps/re2/util/utf.h +0 -44
@@ -1,2090 +0,0 @@
1
- // Copyright 2018 The Abseil Authors.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // https://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- #include "absl/container/internal/raw_hash_set.h"
16
-
17
- #include <atomic>
18
- #include <cassert>
19
- #include <cstddef>
20
- #include <cstdint>
21
- #include <cstring>
22
- #include <memory>
23
- #include <tuple>
24
- #include <utility>
25
-
26
- #include "absl/base/attributes.h"
27
- #include "absl/base/config.h"
28
- #include "absl/base/dynamic_annotations.h"
29
- #include "absl/base/internal/endian.h"
30
- #include "absl/base/internal/raw_logging.h"
31
- #include "absl/base/optimization.h"
32
- #include "absl/container/internal/container_memory.h"
33
- #include "absl/container/internal/hashtable_control_bytes.h"
34
- #include "absl/container/internal/hashtablez_sampler.h"
35
- #include "absl/container/internal/raw_hash_set_resize_impl.h"
36
- #include "absl/functional/function_ref.h"
37
- #include "absl/hash/hash.h"
38
-
39
- namespace absl {
40
- ABSL_NAMESPACE_BEGIN
41
- namespace container_internal {
42
-
43
- // Represents a control byte corresponding to a full slot with arbitrary hash.
44
- constexpr ctrl_t ZeroCtrlT() { return static_cast<ctrl_t>(0); }
45
-
46
- // A single control byte for default-constructed iterators. We leave it
47
- // uninitialized because reading this memory is a bug.
48
- ABSL_DLL ctrl_t kDefaultIterControl;
49
-
50
- // We need one full byte followed by a sentinel byte for iterator::operator++.
51
- ABSL_CONST_INIT ABSL_DLL const ctrl_t kSooControl[2] = {ZeroCtrlT(),
52
- ctrl_t::kSentinel};
53
-
54
- namespace {
55
-
56
- #ifdef ABSL_SWISSTABLE_ASSERT
57
- #error ABSL_SWISSTABLE_ASSERT cannot be directly set
58
- #else
59
- // We use this macro for assertions that users may see when the table is in an
60
- // invalid state that sanitizers may help diagnose.
61
- #define ABSL_SWISSTABLE_ASSERT(CONDITION) \
62
- assert((CONDITION) && "Try enabling sanitizers.")
63
- #endif
64
-
65
- [[noreturn]] ABSL_ATTRIBUTE_NOINLINE void HashTableSizeOverflow() {
66
- ABSL_RAW_LOG(FATAL, "Hash table size overflow");
67
- }
68
-
69
- void ValidateMaxSize(size_t size, size_t slot_size) {
70
- if (IsAboveValidSize(size, slot_size)) {
71
- HashTableSizeOverflow();
72
- }
73
- }
74
-
75
- // Returns "random" seed.
76
- inline size_t RandomSeed() {
77
- #ifdef ABSL_HAVE_THREAD_LOCAL
78
- static thread_local size_t counter = 0;
79
- size_t value = ++counter;
80
- #else // ABSL_HAVE_THREAD_LOCAL
81
- static std::atomic<size_t> counter(0);
82
- size_t value = counter.fetch_add(1, std::memory_order_relaxed);
83
- #endif // ABSL_HAVE_THREAD_LOCAL
84
- return value ^ static_cast<size_t>(reinterpret_cast<uintptr_t>(&counter));
85
- }
86
-
87
- bool ShouldRehashForBugDetection(size_t capacity) {
88
- // Note: we can't use the abseil-random library because abseil-random
89
- // depends on swisstable. We want to return true with probability
90
- // `min(1, RehashProbabilityConstant() / capacity())`. In order to do this,
91
- // we probe based on a random hash and see if the offset is less than
92
- // RehashProbabilityConstant().
93
- return probe(capacity, absl::HashOf(RandomSeed())).offset() <
94
- RehashProbabilityConstant();
95
- }
96
-
97
- // Find a non-deterministic hash for single group table.
98
- // Last two bits are used to find a position for a newly inserted element after
99
- // resize.
100
- // This function basically using H2 last bits to save on shift operation.
101
- size_t SingleGroupTableH1(size_t hash, PerTableSeed seed) {
102
- return hash ^ seed.seed();
103
- }
104
-
105
- // Returns the offset of the new element after resize from capacity 1 to 3.
106
- size_t Resize1To3NewOffset(size_t hash, PerTableSeed seed) {
107
- // After resize from capacity 1 to 3, we always have exactly the slot with
108
- // index 1 occupied, so we need to insert either at index 0 or index 2.
109
- static_assert(SooSlotIndex() == 1);
110
- return SingleGroupTableH1(hash, seed) & 2;
111
- }
112
-
113
- // Returns the address of the ith slot in slots where each slot occupies
114
- // slot_size.
115
- inline void* SlotAddress(void* slot_array, size_t slot, size_t slot_size) {
116
- return static_cast<void*>(static_cast<char*>(slot_array) +
117
- (slot * slot_size));
118
- }
119
-
120
- // Returns the address of the slot `i` iterations after `slot` assuming each
121
- // slot has the specified size.
122
- inline void* NextSlot(void* slot, size_t slot_size, size_t i = 1) {
123
- return reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(slot) +
124
- slot_size * i);
125
- }
126
-
127
- // Returns the address of the slot just before `slot` assuming each slot has the
128
- // specified size.
129
- inline void* PrevSlot(void* slot, size_t slot_size) {
130
- return reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(slot) - slot_size);
131
- }
132
-
133
- } // namespace
134
-
135
- // Must be defined out-of-line to avoid MSVC error C2482 on some platforms,
136
- // which is caused by non-constexpr initialization.
137
- uint16_t HashtableSize::NextSeed() {
138
- static_assert(PerTableSeed::kBitCount == 16);
139
- thread_local uint16_t seed =
140
- static_cast<uint16_t>(reinterpret_cast<uintptr_t>(&seed));
141
- seed += uint16_t{0xad53};
142
- return seed;
143
- }
144
-
145
- GenerationType* EmptyGeneration() {
146
- if (SwisstableGenerationsEnabled()) {
147
- constexpr size_t kNumEmptyGenerations = 1024;
148
- static constexpr GenerationType kEmptyGenerations[kNumEmptyGenerations]{};
149
- return const_cast<GenerationType*>(
150
- &kEmptyGenerations[RandomSeed() % kNumEmptyGenerations]);
151
- }
152
- return nullptr;
153
- }
154
-
155
- bool CommonFieldsGenerationInfoEnabled::
156
- should_rehash_for_bug_detection_on_insert(size_t capacity) const {
157
- if (reserved_growth_ == kReservedGrowthJustRanOut) return true;
158
- if (reserved_growth_ > 0) return false;
159
- return ShouldRehashForBugDetection(capacity);
160
- }
161
-
162
- bool CommonFieldsGenerationInfoEnabled::should_rehash_for_bug_detection_on_move(
163
- size_t capacity) const {
164
- return ShouldRehashForBugDetection(capacity);
165
- }
166
-
167
- namespace {
168
-
169
- // Probes an array of control bits using a probe sequence,
170
- // and returns the mask corresponding to the first group with a deleted or empty
171
- // slot.
172
- inline Group::NonIterableBitMaskType probe_till_first_non_full_group(
173
- const ctrl_t* ctrl, probe_seq<Group::kWidth>& seq,
174
- [[maybe_unused]] size_t capacity) {
175
- while (true) {
176
- GroupFullEmptyOrDeleted g{ctrl + seq.offset()};
177
- auto mask = g.MaskEmptyOrDeleted();
178
- if (mask) {
179
- return mask;
180
- }
181
- seq.next();
182
- ABSL_SWISSTABLE_ASSERT(seq.index() <= capacity && "full table!");
183
- }
184
- }
185
-
186
- FindInfo find_first_non_full_from_h1(const ctrl_t* ctrl, size_t h1,
187
- size_t capacity) {
188
- auto seq = probe_h1(capacity, h1);
189
- if (IsEmptyOrDeleted(ctrl[seq.offset()])) {
190
- return {seq.offset(), /*probe_length=*/0};
191
- }
192
- auto mask = probe_till_first_non_full_group(ctrl, seq, capacity);
193
- return {seq.offset(mask.LowestBitSet()), seq.index()};
194
- }
195
-
196
- // Probes an array of control bits using a probe sequence derived from `hash`,
197
- // and returns the offset corresponding to the first deleted or empty slot.
198
- //
199
- // Behavior when the entire table is full is undefined.
200
- //
201
- // NOTE: this function must work with tables having both empty and deleted
202
- // slots in the same group. Such tables appear during `erase()`.
203
- FindInfo find_first_non_full(const CommonFields& common, size_t hash) {
204
- return find_first_non_full_from_h1(common.control(), H1(hash),
205
- common.capacity());
206
- }
207
-
208
- // Same as `find_first_non_full`, but returns the mask corresponding to the
209
- // first group with a deleted or empty slot.
210
- std::pair<FindInfo, Group::NonIterableBitMaskType> find_first_non_full_group(
211
- const CommonFields& common, size_t hash) {
212
- auto seq = probe(common, hash);
213
- auto mask =
214
- probe_till_first_non_full_group(common.control(), seq, common.capacity());
215
- return {{seq.offset(), seq.index()}, mask};
216
- }
217
-
218
- // Whether a table fits in half a group. A half-group table fits entirely into a
219
- // probing group, i.e., has a capacity < `Group::kWidth`.
220
- //
221
- // In half-group mode we are able to use the whole capacity. The extra control
222
- // bytes give us at least one "empty" control byte to stop the iteration.
223
- // This is important to make 1 a valid capacity.
224
- //
225
- // In half-group mode only the first `capacity` control bytes after the sentinel
226
- // are valid. The rest contain dummy ctrl_t::kEmpty values that do not
227
- // represent a real slot.
228
- constexpr bool is_half_group(size_t capacity) {
229
- return capacity < Group::kWidth - 1;
230
- }
231
-
232
- template <class Fn>
233
- void IterateOverFullSlotsImpl(const CommonFields& c, size_t slot_size, Fn cb) {
234
- const size_t cap = c.capacity();
235
- ABSL_SWISSTABLE_ASSERT(!IsSmallCapacity(cap));
236
- const ctrl_t* ctrl = c.control();
237
- void* slot = c.slot_array();
238
- if (is_half_group(cap)) {
239
- // Mirrored/cloned control bytes in half-group table are also located in the
240
- // first group (starting from position 0). We are taking group from position
241
- // `capacity` in order to avoid duplicates.
242
-
243
- // Half-group tables capacity fits into portable group, where
244
- // GroupPortableImpl::MaskFull is more efficient for the
245
- // capacity <= GroupPortableImpl::kWidth.
246
- ABSL_SWISSTABLE_ASSERT(cap <= GroupPortableImpl::kWidth &&
247
- "unexpectedly large half-group capacity");
248
- static_assert(Group::kWidth >= GroupPortableImpl::kWidth,
249
- "unexpected group width");
250
- // Group starts from kSentinel slot, so indices in the mask will
251
- // be increased by 1.
252
- const auto mask = GroupPortableImpl(ctrl + cap).MaskFull();
253
- --ctrl;
254
- slot = PrevSlot(slot, slot_size);
255
- for (uint32_t i : mask) {
256
- cb(ctrl + i, SlotAddress(slot, i, slot_size));
257
- }
258
- return;
259
- }
260
- size_t remaining = c.size();
261
- ABSL_ATTRIBUTE_UNUSED const size_t original_size_for_assert = remaining;
262
- while (remaining != 0) {
263
- for (uint32_t i : GroupFullEmptyOrDeleted(ctrl).MaskFull()) {
264
- ABSL_SWISSTABLE_ASSERT(IsFull(ctrl[i]) &&
265
- "hash table was modified unexpectedly");
266
- cb(ctrl + i, SlotAddress(slot, i, slot_size));
267
- --remaining;
268
- }
269
- ctrl += Group::kWidth;
270
- slot = NextSlot(slot, slot_size, Group::kWidth);
271
- ABSL_SWISSTABLE_ASSERT(
272
- (remaining == 0 || *(ctrl - 1) != ctrl_t::kSentinel) &&
273
- "hash table was modified unexpectedly");
274
- }
275
- // NOTE: erasure of the current element is allowed in callback for
276
- // absl::erase_if specialization. So we use `>=`.
277
- ABSL_SWISSTABLE_ASSERT(original_size_for_assert >= c.size() &&
278
- "hash table was modified unexpectedly");
279
- }
280
-
281
- } // namespace
282
-
283
- void ConvertDeletedToEmptyAndFullToDeleted(ctrl_t* ctrl, size_t capacity) {
284
- ABSL_SWISSTABLE_ASSERT(ctrl[capacity] == ctrl_t::kSentinel);
285
- ABSL_SWISSTABLE_ASSERT(IsValidCapacity(capacity));
286
- for (ctrl_t* pos = ctrl; pos < ctrl + capacity; pos += Group::kWidth) {
287
- Group{pos}.ConvertSpecialToEmptyAndFullToDeleted(pos);
288
- }
289
- // Copy the cloned ctrl bytes.
290
- std::memcpy(ctrl + capacity + 1, ctrl, NumClonedBytes());
291
- ctrl[capacity] = ctrl_t::kSentinel;
292
- }
293
-
294
- void IterateOverFullSlots(const CommonFields& c, size_t slot_size,
295
- absl::FunctionRef<void(const ctrl_t*, void*)> cb) {
296
- IterateOverFullSlotsImpl(c, slot_size, cb);
297
- }
298
-
299
- namespace {
300
-
301
- void ResetGrowthLeft(GrowthInfo& growth_info, size_t capacity, size_t size) {
302
- growth_info.InitGrowthLeftNoDeleted(CapacityToGrowth(capacity) - size);
303
- }
304
-
305
- void ResetGrowthLeft(CommonFields& common) {
306
- ResetGrowthLeft(common.growth_info(), common.capacity(), common.size());
307
- }
308
-
309
- // Finds guaranteed to exists empty slot from the given position.
310
- // NOTE: this function is almost never triggered inside of the
311
- // DropDeletesWithoutResize, so we keep it simple.
312
- // The table is rather sparse, so empty slot will be found very quickly.
313
- size_t FindEmptySlot(size_t start, size_t end, const ctrl_t* ctrl) {
314
- for (size_t i = start; i < end; ++i) {
315
- if (IsEmpty(ctrl[i])) {
316
- return i;
317
- }
318
- }
319
- ABSL_UNREACHABLE();
320
- }
321
-
322
- // Finds guaranteed to exist full slot starting from the given position.
323
- // NOTE: this function is only triggered for rehash(0), when we need to
324
- // go back to SOO state, so we keep it simple.
325
- size_t FindFirstFullSlot(size_t start, size_t end, const ctrl_t* ctrl) {
326
- for (size_t i = start; i < end; ++i) {
327
- if (IsFull(ctrl[i])) {
328
- return i;
329
- }
330
- }
331
- ABSL_UNREACHABLE();
332
- }
333
-
334
- void PrepareInsertCommon(CommonFields& common) {
335
- common.increment_size();
336
- common.maybe_increment_generation_on_insert();
337
- }
338
-
339
- // Sets sanitizer poisoning for slot corresponding to control byte being set.
340
- inline void DoSanitizeOnSetCtrl(const CommonFields& c, size_t i, ctrl_t h,
341
- size_t slot_size) {
342
- ABSL_SWISSTABLE_ASSERT(i < c.capacity());
343
- auto* slot_i = static_cast<const char*>(c.slot_array()) + i * slot_size;
344
- if (IsFull(h)) {
345
- SanitizerUnpoisonMemoryRegion(slot_i, slot_size);
346
- } else {
347
- SanitizerPoisonMemoryRegion(slot_i, slot_size);
348
- }
349
- }
350
-
351
- // Sets `ctrl[i]` to `h`.
352
- //
353
- // Unlike setting it directly, this function will perform bounds checks and
354
- // mirror the value to the cloned tail if necessary.
355
- inline void SetCtrl(const CommonFields& c, size_t i, ctrl_t h,
356
- size_t slot_size) {
357
- ABSL_SWISSTABLE_ASSERT(!c.is_small());
358
- DoSanitizeOnSetCtrl(c, i, h, slot_size);
359
- ctrl_t* ctrl = c.control();
360
- ctrl[i] = h;
361
- ctrl[((i - NumClonedBytes()) & c.capacity()) +
362
- (NumClonedBytes() & c.capacity())] = h;
363
- }
364
- // Overload for setting to an occupied `h2_t` rather than a special `ctrl_t`.
365
- inline void SetCtrl(const CommonFields& c, size_t i, h2_t h, size_t slot_size) {
366
- SetCtrl(c, i, static_cast<ctrl_t>(h), slot_size);
367
- }
368
-
369
- // Like SetCtrl, but in a single group table, we can save some operations when
370
- // setting the cloned control byte.
371
- inline void SetCtrlInSingleGroupTable(const CommonFields& c, size_t i, ctrl_t h,
372
- size_t slot_size) {
373
- ABSL_SWISSTABLE_ASSERT(!c.is_small());
374
- ABSL_SWISSTABLE_ASSERT(is_single_group(c.capacity()));
375
- DoSanitizeOnSetCtrl(c, i, h, slot_size);
376
- ctrl_t* ctrl = c.control();
377
- ctrl[i] = h;
378
- ctrl[i + c.capacity() + 1] = h;
379
- }
380
- // Overload for setting to an occupied `h2_t` rather than a special `ctrl_t`.
381
- inline void SetCtrlInSingleGroupTable(const CommonFields& c, size_t i, h2_t h,
382
- size_t slot_size) {
383
- SetCtrlInSingleGroupTable(c, i, static_cast<ctrl_t>(h), slot_size);
384
- }
385
-
386
- // Like SetCtrl, but in a table with capacity >= Group::kWidth - 1,
387
- // we can save some operations when setting the cloned control byte.
388
- inline void SetCtrlInLargeTable(const CommonFields& c, size_t i, ctrl_t h,
389
- size_t slot_size) {
390
- ABSL_SWISSTABLE_ASSERT(c.capacity() >= Group::kWidth - 1);
391
- DoSanitizeOnSetCtrl(c, i, h, slot_size);
392
- ctrl_t* ctrl = c.control();
393
- ctrl[i] = h;
394
- ctrl[((i - NumClonedBytes()) & c.capacity()) + NumClonedBytes()] = h;
395
- }
396
- // Overload for setting to an occupied `h2_t` rather than a special `ctrl_t`.
397
- inline void SetCtrlInLargeTable(const CommonFields& c, size_t i, h2_t h,
398
- size_t slot_size) {
399
- SetCtrlInLargeTable(c, i, static_cast<ctrl_t>(h), slot_size);
400
- }
401
-
402
- size_t DropDeletesWithoutResizeAndPrepareInsert(
403
- CommonFields& common, const PolicyFunctions& __restrict policy,
404
- size_t new_hash) {
405
- void* set = &common;
406
- void* slot_array = common.slot_array();
407
- const size_t capacity = common.capacity();
408
- ABSL_SWISSTABLE_ASSERT(IsValidCapacity(capacity));
409
- ABSL_SWISSTABLE_ASSERT(!is_single_group(capacity));
410
- // Algorithm:
411
- // - mark all DELETED slots as EMPTY
412
- // - mark all FULL slots as DELETED
413
- // - for each slot marked as DELETED
414
- // hash = Hash(element)
415
- // target = find_first_non_full(hash)
416
- // if target is in the same group
417
- // mark slot as FULL
418
- // else if target is EMPTY
419
- // transfer element to target
420
- // mark slot as EMPTY
421
- // mark target as FULL
422
- // else if target is DELETED
423
- // swap current element with target element
424
- // mark target as FULL
425
- // repeat procedure for current slot with moved from element (target)
426
- ctrl_t* ctrl = common.control();
427
- ConvertDeletedToEmptyAndFullToDeleted(ctrl, capacity);
428
- const void* hash_fn = policy.hash_fn(common);
429
- auto hasher = policy.hash_slot;
430
- auto transfer_n = policy.transfer_n;
431
- const size_t slot_size = policy.slot_size;
432
-
433
- size_t total_probe_length = 0;
434
- void* slot_ptr = SlotAddress(slot_array, 0, slot_size);
435
-
436
- // The index of an empty slot that can be used as temporary memory for
437
- // the swap operation.
438
- constexpr size_t kUnknownId = ~size_t{};
439
- size_t tmp_space_id = kUnknownId;
440
-
441
- for (size_t i = 0; i != capacity;
442
- ++i, slot_ptr = NextSlot(slot_ptr, slot_size)) {
443
- ABSL_SWISSTABLE_ASSERT(slot_ptr == SlotAddress(slot_array, i, slot_size));
444
- if (IsEmpty(ctrl[i])) {
445
- tmp_space_id = i;
446
- continue;
447
- }
448
- if (!IsDeleted(ctrl[i])) continue;
449
- const size_t hash = (*hasher)(hash_fn, slot_ptr, common.seed().seed());
450
- const FindInfo target = find_first_non_full(common, hash);
451
- const size_t new_i = target.offset;
452
- total_probe_length += target.probe_length;
453
-
454
- // Verify if the old and new i fall within the same group wrt the hash.
455
- // If they do, we don't need to move the object as it falls already in the
456
- // best probe we can.
457
- const size_t probe_offset = probe(common, hash).offset();
458
- const h2_t h2 = H2(hash);
459
- const auto probe_index = [probe_offset, capacity](size_t pos) {
460
- return ((pos - probe_offset) & capacity) / Group::kWidth;
461
- };
462
-
463
- // Element doesn't move.
464
- if (ABSL_PREDICT_TRUE(probe_index(new_i) == probe_index(i))) {
465
- SetCtrlInLargeTable(common, i, h2, slot_size);
466
- continue;
467
- }
468
-
469
- void* new_slot_ptr = SlotAddress(slot_array, new_i, slot_size);
470
- if (IsEmpty(ctrl[new_i])) {
471
- // Transfer element to the empty spot.
472
- // SetCtrl poisons/unpoisons the slots so we have to call it at the
473
- // right time.
474
- SetCtrlInLargeTable(common, new_i, h2, slot_size);
475
- (*transfer_n)(set, new_slot_ptr, slot_ptr, 1);
476
- SetCtrlInLargeTable(common, i, ctrl_t::kEmpty, slot_size);
477
- // Initialize or change empty space id.
478
- tmp_space_id = i;
479
- } else {
480
- ABSL_SWISSTABLE_ASSERT(IsDeleted(ctrl[new_i]));
481
- SetCtrlInLargeTable(common, new_i, h2, slot_size);
482
- // Until we are done rehashing, DELETED marks previously FULL slots.
483
-
484
- if (tmp_space_id == kUnknownId) {
485
- tmp_space_id = FindEmptySlot(i + 1, capacity, ctrl);
486
- }
487
- void* tmp_space = SlotAddress(slot_array, tmp_space_id, slot_size);
488
- SanitizerUnpoisonMemoryRegion(tmp_space, slot_size);
489
-
490
- // Swap i and new_i elements.
491
- (*transfer_n)(set, tmp_space, new_slot_ptr, 1);
492
- (*transfer_n)(set, new_slot_ptr, slot_ptr, 1);
493
- (*transfer_n)(set, slot_ptr, tmp_space, 1);
494
-
495
- SanitizerPoisonMemoryRegion(tmp_space, slot_size);
496
-
497
- // repeat the processing of the ith slot
498
- --i;
499
- slot_ptr = PrevSlot(slot_ptr, slot_size);
500
- }
501
- }
502
- // Prepare insert for the new element.
503
- PrepareInsertCommon(common);
504
- ResetGrowthLeft(common);
505
- FindInfo find_info = find_first_non_full(common, new_hash);
506
- SetCtrlInLargeTable(common, find_info.offset, H2(new_hash), slot_size);
507
- common.infoz().RecordInsertMiss(new_hash, find_info.probe_length);
508
- common.infoz().RecordRehash(total_probe_length);
509
- return find_info.offset;
510
- }
511
-
512
- bool WasNeverFull(CommonFields& c, size_t index) {
513
- if (is_single_group(c.capacity())) {
514
- return true;
515
- }
516
- const size_t index_before = (index - Group::kWidth) & c.capacity();
517
- const auto empty_after = Group(c.control() + index).MaskEmpty();
518
- const auto empty_before = Group(c.control() + index_before).MaskEmpty();
519
-
520
- // We count how many consecutive non empties we have to the right and to the
521
- // left of `it`. If the sum is >= kWidth then there is at least one probe
522
- // window that might have seen a full group.
523
- return empty_before && empty_after &&
524
- static_cast<size_t>(empty_after.TrailingZeros()) +
525
- empty_before.LeadingZeros() <
526
- Group::kWidth;
527
- }
528
-
529
- // Updates the control bytes to indicate a completely empty table such that all
530
- // control bytes are kEmpty except for the kSentinel byte.
531
- void ResetCtrl(CommonFields& common, size_t slot_size) {
532
- const size_t capacity = common.capacity();
533
- ctrl_t* ctrl = common.control();
534
- static constexpr size_t kTwoGroupCapacity = 2 * Group::kWidth - 1;
535
- if (ABSL_PREDICT_TRUE(capacity <= kTwoGroupCapacity)) {
536
- if (IsSmallCapacity(capacity)) return;
537
- std::memset(ctrl, static_cast<int8_t>(ctrl_t::kEmpty), Group::kWidth);
538
- std::memset(ctrl + capacity, static_cast<int8_t>(ctrl_t::kEmpty),
539
- Group::kWidth);
540
- if (capacity == kTwoGroupCapacity) {
541
- std::memset(ctrl + Group::kWidth, static_cast<int8_t>(ctrl_t::kEmpty),
542
- Group::kWidth);
543
- }
544
- } else {
545
- std::memset(ctrl, static_cast<int8_t>(ctrl_t::kEmpty),
546
- capacity + 1 + NumClonedBytes());
547
- }
548
- ctrl[capacity] = ctrl_t::kSentinel;
549
- SanitizerPoisonMemoryRegion(common.slot_array(), slot_size * capacity);
550
- }
551
-
552
- // Initializes control bytes for growing from capacity 1 to 3.
553
- // `orig_h2` is placed in the position `SooSlotIndex()`.
554
- // `new_h2` is placed in the position `new_offset`.
555
- ABSL_ATTRIBUTE_ALWAYS_INLINE inline void InitializeThreeElementsControlBytes(
556
- h2_t orig_h2, h2_t new_h2, size_t new_offset, ctrl_t* new_ctrl) {
557
- static constexpr size_t kNewCapacity = NextCapacity(SooCapacity());
558
- static_assert(kNewCapacity == 3);
559
- static_assert(is_single_group(kNewCapacity));
560
- static_assert(SooSlotIndex() == 1);
561
- ABSL_SWISSTABLE_ASSERT(new_offset == 0 || new_offset == 2);
562
-
563
- static constexpr uint64_t kEmptyXorSentinel =
564
- static_cast<uint8_t>(ctrl_t::kEmpty) ^
565
- static_cast<uint8_t>(ctrl_t::kSentinel);
566
- static constexpr uint64_t kEmpty64 = static_cast<uint8_t>(ctrl_t::kEmpty);
567
- static constexpr size_t kMirroredSooSlotIndex =
568
- SooSlotIndex() + kNewCapacity + 1;
569
- // The first 8 bytes, where SOO slot original and mirrored positions are
570
- // replaced with 0.
571
- // Result will look like: E0ESE0EE
572
- static constexpr uint64_t kFirstCtrlBytesWithZeroes =
573
- k8EmptyBytes ^ (kEmpty64 << (8 * SooSlotIndex())) ^
574
- (kEmptyXorSentinel << (8 * kNewCapacity)) ^
575
- (kEmpty64 << (8 * kMirroredSooSlotIndex));
576
-
577
- const uint64_t soo_h2 = static_cast<uint64_t>(orig_h2);
578
- const uint64_t new_h2_xor_empty =
579
- static_cast<uint64_t>(new_h2 ^ static_cast<uint8_t>(ctrl_t::kEmpty));
580
- // Fill the original and mirrored bytes for SOO slot.
581
- // Result will look like:
582
- // EHESEHEE
583
- // Where H = soo_h2, E = kEmpty, S = kSentinel.
584
- uint64_t first_ctrl_bytes =
585
- ((soo_h2 << (8 * SooSlotIndex())) | kFirstCtrlBytesWithZeroes) |
586
- (soo_h2 << (8 * kMirroredSooSlotIndex));
587
- // Replace original and mirrored empty bytes for the new position.
588
- // Result for new_offset 0 will look like:
589
- // NHESNHEE
590
- // Where H = soo_h2, N = H2(new_hash), E = kEmpty, S = kSentinel.
591
- // Result for new_offset 2 will look like:
592
- // EHNSEHNE
593
- first_ctrl_bytes ^= (new_h2_xor_empty << (8 * new_offset));
594
- size_t new_mirrored_offset = new_offset + kNewCapacity + 1;
595
- first_ctrl_bytes ^= (new_h2_xor_empty << (8 * new_mirrored_offset));
596
-
597
- // Fill last bytes with kEmpty.
598
- std::memset(new_ctrl + kNewCapacity, static_cast<int8_t>(ctrl_t::kEmpty),
599
- Group::kWidth);
600
- // Overwrite the first 8 bytes with first_ctrl_bytes.
601
- absl::little_endian::Store64(new_ctrl, first_ctrl_bytes);
602
-
603
- // Example for group size 16:
604
- // new_ctrl after 1st memset = ???EEEEEEEEEEEEEEEE
605
- // new_offset 0:
606
- // new_ctrl after 2nd store = NHESNHEEEEEEEEEEEEE
607
- // new_offset 2:
608
- // new_ctrl after 2nd store = EHNSEHNEEEEEEEEEEEE
609
-
610
- // Example for group size 8:
611
- // new_ctrl after 1st memset = ???EEEEEEEE
612
- // new_offset 0:
613
- // new_ctrl after 2nd store = NHESNHEEEEE
614
- // new_offset 2:
615
- // new_ctrl after 2nd store = EHNSEHNEEEE
616
- }
617
-
618
- } // namespace
619
-
620
- void EraseMetaOnlySmall(CommonFields& c, bool soo_enabled, size_t slot_size) {
621
- ABSL_SWISSTABLE_ASSERT(c.is_small());
622
- if (soo_enabled) {
623
- c.set_empty_soo();
624
- return;
625
- }
626
- c.decrement_size();
627
- c.infoz().RecordErase();
628
- SanitizerPoisonMemoryRegion(c.slot_array(), slot_size);
629
- }
630
-
631
- void EraseMetaOnlyLarge(CommonFields& c, const ctrl_t* ctrl, size_t slot_size) {
632
- ABSL_SWISSTABLE_ASSERT(!c.is_small());
633
- ABSL_SWISSTABLE_ASSERT(IsFull(*ctrl) && "erasing a dangling iterator");
634
- c.decrement_size();
635
- c.infoz().RecordErase();
636
-
637
- size_t index = static_cast<size_t>(ctrl - c.control());
638
-
639
- if (WasNeverFull(c, index)) {
640
- SetCtrl(c, index, ctrl_t::kEmpty, slot_size);
641
- c.growth_info().OverwriteFullAsEmpty();
642
- return;
643
- }
644
-
645
- c.growth_info().OverwriteFullAsDeleted();
646
- SetCtrlInLargeTable(c, index, ctrl_t::kDeleted, slot_size);
647
- }
648
-
649
- void ClearBackingArray(CommonFields& c,
650
- const PolicyFunctions& __restrict policy, void* alloc,
651
- bool reuse, bool soo_enabled) {
652
- if (reuse) {
653
- c.set_size_to_zero();
654
- ABSL_SWISSTABLE_ASSERT(!soo_enabled || c.capacity() > SooCapacity());
655
- ResetCtrl(c, policy.slot_size);
656
- ResetGrowthLeft(c);
657
- c.infoz().RecordStorageChanged(0, c.capacity());
658
- } else {
659
- // We need to record infoz before calling dealloc, which will unregister
660
- // infoz.
661
- c.infoz().RecordClearedReservation();
662
- c.infoz().RecordStorageChanged(0, soo_enabled ? SooCapacity() : 0);
663
- c.infoz().Unregister();
664
- (*policy.dealloc)(alloc, c.capacity(), c.control(), policy.slot_size,
665
- policy.slot_align, c.has_infoz());
666
- c = soo_enabled ? CommonFields{soo_tag_t{}} : CommonFields{non_soo_tag_t{}};
667
- }
668
- }
669
-
670
- namespace {
671
-
672
- enum class ResizeNonSooMode {
673
- kGuaranteedEmpty,
674
- kGuaranteedAllocated,
675
- };
676
-
677
- // Iterates over full slots in old table, finds new positions for them and
678
- // transfers the slots.
679
- // This function is used for reserving or rehashing non-empty tables.
680
- // This use case is rare so the function is type erased.
681
- // Returns the total probe length.
682
- size_t FindNewPositionsAndTransferSlots(
683
- CommonFields& common, const PolicyFunctions& __restrict policy,
684
- ctrl_t* old_ctrl, void* old_slots, size_t old_capacity) {
685
- void* new_slots = common.slot_array();
686
- const void* hash_fn = policy.hash_fn(common);
687
- const size_t slot_size = policy.slot_size;
688
- const size_t seed = common.seed().seed();
689
-
690
- const auto insert_slot = [&](void* slot) {
691
- size_t hash = policy.hash_slot(hash_fn, slot, seed);
692
- FindInfo target;
693
- if (common.is_small()) {
694
- target = FindInfo{0, 0};
695
- } else {
696
- target = find_first_non_full(common, hash);
697
- SetCtrl(common, target.offset, H2(hash), slot_size);
698
- }
699
- policy.transfer_n(&common, SlotAddress(new_slots, target.offset, slot_size),
700
- slot, 1);
701
- return target.probe_length;
702
- };
703
- if (IsSmallCapacity(old_capacity)) {
704
- if (common.size() == 1) insert_slot(old_slots);
705
- return 0;
706
- }
707
- size_t total_probe_length = 0;
708
- for (size_t i = 0; i < old_capacity; ++i) {
709
- if (IsFull(old_ctrl[i])) {
710
- total_probe_length += insert_slot(old_slots);
711
- }
712
- old_slots = NextSlot(old_slots, slot_size);
713
- }
714
- return total_probe_length;
715
- }
716
-
717
- void ReportGrowthToInfozImpl(CommonFields& common, HashtablezInfoHandle infoz,
718
- size_t hash, size_t total_probe_length,
719
- size_t distance_from_desired) {
720
- ABSL_SWISSTABLE_ASSERT(infoz.IsSampled());
721
- infoz.RecordStorageChanged(common.size() - 1, common.capacity());
722
- infoz.RecordRehash(total_probe_length);
723
- infoz.RecordInsertMiss(hash, distance_from_desired);
724
- common.set_has_infoz();
725
- // TODO(b/413062340): we could potentially store infoz in place of the
726
- // control pointer for the capacity 1 case.
727
- common.set_infoz(infoz);
728
- }
729
-
730
- // Specialization to avoid passing two 0s from hot function.
731
- ABSL_ATTRIBUTE_NOINLINE void ReportSingleGroupTableGrowthToInfoz(
732
- CommonFields& common, HashtablezInfoHandle infoz, size_t hash) {
733
- ReportGrowthToInfozImpl(common, infoz, hash, /*total_probe_length=*/0,
734
- /*distance_from_desired=*/0);
735
- }
736
-
737
- ABSL_ATTRIBUTE_NOINLINE void ReportGrowthToInfoz(CommonFields& common,
738
- HashtablezInfoHandle infoz,
739
- size_t hash,
740
- size_t total_probe_length,
741
- size_t distance_from_desired) {
742
- ReportGrowthToInfozImpl(common, infoz, hash, total_probe_length,
743
- distance_from_desired);
744
- }
745
-
746
- ABSL_ATTRIBUTE_NOINLINE void ReportResizeToInfoz(CommonFields& common,
747
- HashtablezInfoHandle infoz,
748
- size_t total_probe_length) {
749
- ABSL_SWISSTABLE_ASSERT(infoz.IsSampled());
750
- infoz.RecordStorageChanged(common.size(), common.capacity());
751
- infoz.RecordRehash(total_probe_length);
752
- common.set_has_infoz();
753
- common.set_infoz(infoz);
754
- }
755
-
756
- struct BackingArrayPtrs {
757
- ctrl_t* ctrl;
758
- void* slots;
759
- };
760
-
761
- BackingArrayPtrs AllocBackingArray(CommonFields& common,
762
- const PolicyFunctions& __restrict policy,
763
- size_t new_capacity, bool has_infoz,
764
- void* alloc) {
765
- RawHashSetLayout layout(new_capacity, policy.slot_size, policy.slot_align,
766
- has_infoz);
767
- // Perform a direct call in the common case to allow for profile-guided
768
- // heap optimization (PGHO) to understand which allocation function is used.
769
- constexpr size_t kDefaultAlignment = BackingArrayAlignment(alignof(size_t));
770
- char* mem = static_cast<char*>(
771
- ABSL_PREDICT_TRUE(
772
- policy.alloc ==
773
- (&AllocateBackingArray<kDefaultAlignment, std::allocator<char>>))
774
- ? AllocateBackingArray<kDefaultAlignment, std::allocator<char>>(
775
- alloc, layout.alloc_size())
776
- : policy.alloc(alloc, layout.alloc_size()));
777
- const GenerationType old_generation = common.generation();
778
- common.set_generation_ptr(
779
- reinterpret_cast<GenerationType*>(mem + layout.generation_offset()));
780
- common.set_generation(NextGeneration(old_generation));
781
-
782
- return {reinterpret_cast<ctrl_t*>(mem + layout.control_offset()),
783
- mem + layout.slot_offset()};
784
- }
785
-
786
- template <ResizeNonSooMode kMode>
787
- void ResizeNonSooImpl(CommonFields& common,
788
- const PolicyFunctions& __restrict policy,
789
- size_t new_capacity, HashtablezInfoHandle infoz) {
790
- ABSL_SWISSTABLE_ASSERT(IsValidCapacity(new_capacity));
791
- ABSL_SWISSTABLE_ASSERT(new_capacity > policy.soo_capacity());
792
-
793
- [[maybe_unused]] const size_t old_capacity = common.capacity();
794
- [[maybe_unused]] ctrl_t* old_ctrl;
795
- [[maybe_unused]] void* old_slots;
796
- if constexpr (kMode == ResizeNonSooMode::kGuaranteedAllocated) {
797
- old_ctrl = common.control();
798
- old_slots = common.slot_array();
799
- }
800
-
801
- const size_t slot_size = policy.slot_size;
802
- [[maybe_unused]] const size_t slot_align = policy.slot_align;
803
- const bool has_infoz = infoz.IsSampled();
804
- void* alloc = policy.get_char_alloc(common);
805
-
806
- common.set_capacity(new_capacity);
807
- const auto [new_ctrl, new_slots] =
808
- AllocBackingArray(common, policy, new_capacity, has_infoz, alloc);
809
- common.set_control(new_ctrl);
810
- common.set_slots(new_slots);
811
- common.generate_new_seed(has_infoz);
812
-
813
- size_t total_probe_length = 0;
814
- ResetCtrl(common, slot_size);
815
- ABSL_SWISSTABLE_ASSERT(kMode != ResizeNonSooMode::kGuaranteedEmpty ||
816
- old_capacity == policy.soo_capacity());
817
- ABSL_SWISSTABLE_ASSERT(kMode != ResizeNonSooMode::kGuaranteedAllocated ||
818
- old_capacity > 0);
819
- if constexpr (kMode == ResizeNonSooMode::kGuaranteedAllocated) {
820
- total_probe_length = FindNewPositionsAndTransferSlots(
821
- common, policy, old_ctrl, old_slots, old_capacity);
822
- (*policy.dealloc)(alloc, old_capacity, old_ctrl, slot_size, slot_align,
823
- has_infoz);
824
- ResetGrowthLeft(GetGrowthInfoFromControl(new_ctrl), new_capacity,
825
- common.size());
826
- } else {
827
- GetGrowthInfoFromControl(new_ctrl).InitGrowthLeftNoDeleted(
828
- CapacityToGrowth(new_capacity));
829
- }
830
-
831
- if (ABSL_PREDICT_FALSE(has_infoz)) {
832
- ReportResizeToInfoz(common, infoz, total_probe_length);
833
- }
834
- }
835
-
836
- void ResizeEmptyNonAllocatedTableImpl(CommonFields& common,
837
- const PolicyFunctions& __restrict policy,
838
- size_t new_capacity, bool force_infoz) {
839
- ABSL_SWISSTABLE_ASSERT(IsValidCapacity(new_capacity));
840
- ABSL_SWISSTABLE_ASSERT(new_capacity > policy.soo_capacity());
841
- ABSL_SWISSTABLE_ASSERT(!force_infoz || policy.soo_enabled);
842
- ABSL_SWISSTABLE_ASSERT(common.capacity() <= policy.soo_capacity());
843
- ABSL_SWISSTABLE_ASSERT(common.empty());
844
- const size_t slot_size = policy.slot_size;
845
- HashtablezInfoHandle infoz;
846
- const bool should_sample =
847
- policy.is_hashtablez_eligible && (force_infoz || ShouldSampleNextTable());
848
- if (ABSL_PREDICT_FALSE(should_sample)) {
849
- infoz = ForcedTrySample(slot_size, policy.key_size, policy.value_size,
850
- policy.soo_capacity());
851
- }
852
- ResizeNonSooImpl<ResizeNonSooMode::kGuaranteedEmpty>(common, policy,
853
- new_capacity, infoz);
854
- }
855
-
856
- // If the table was SOO, initializes new control bytes and transfers slot.
857
- // After transferring the slot, sets control and slots in CommonFields.
858
- // It is rare to resize an SOO table with one element to a large size.
859
- // Requires: `c` contains SOO data.
860
- void InsertOldSooSlotAndInitializeControlBytes(
861
- CommonFields& c, const PolicyFunctions& __restrict policy, ctrl_t* new_ctrl,
862
- void* new_slots, bool has_infoz) {
863
- ABSL_SWISSTABLE_ASSERT(c.size() == policy.soo_capacity());
864
- ABSL_SWISSTABLE_ASSERT(policy.soo_enabled);
865
- size_t new_capacity = c.capacity();
866
-
867
- c.generate_new_seed(has_infoz);
868
-
869
- const size_t soo_slot_hash =
870
- policy.hash_slot(policy.hash_fn(c), c.soo_data(), c.seed().seed());
871
- size_t offset = probe(new_capacity, soo_slot_hash).offset();
872
- offset = offset == new_capacity ? 0 : offset;
873
- SanitizerPoisonMemoryRegion(new_slots, policy.slot_size * new_capacity);
874
- void* target_slot = SlotAddress(new_slots, offset, policy.slot_size);
875
- SanitizerUnpoisonMemoryRegion(target_slot, policy.slot_size);
876
- policy.transfer_n(&c, target_slot, c.soo_data(), 1);
877
- c.set_control(new_ctrl);
878
- c.set_slots(new_slots);
879
- ResetCtrl(c, policy.slot_size);
880
- SetCtrl(c, offset, H2(soo_slot_hash), policy.slot_size);
881
- }
882
-
883
- enum class ResizeFullSooTableSamplingMode {
884
- kNoSampling,
885
- // Force sampling. If the table was still not sampled, do not resize.
886
- kForceSampleNoResizeIfUnsampled,
887
- };
888
-
889
- void AssertSoo([[maybe_unused]] CommonFields& common,
890
- [[maybe_unused]] const PolicyFunctions& policy) {
891
- ABSL_SWISSTABLE_ASSERT(policy.soo_enabled);
892
- ABSL_SWISSTABLE_ASSERT(common.capacity() == policy.soo_capacity());
893
- }
894
- void AssertFullSoo([[maybe_unused]] CommonFields& common,
895
- [[maybe_unused]] const PolicyFunctions& policy) {
896
- AssertSoo(common, policy);
897
- ABSL_SWISSTABLE_ASSERT(common.size() == policy.soo_capacity());
898
- }
899
-
900
- void ResizeFullSooTable(CommonFields& common,
901
- const PolicyFunctions& __restrict policy,
902
- size_t new_capacity,
903
- ResizeFullSooTableSamplingMode sampling_mode) {
904
- AssertFullSoo(common, policy);
905
- const size_t slot_size = policy.slot_size;
906
- void* alloc = policy.get_char_alloc(common);
907
-
908
- HashtablezInfoHandle infoz;
909
- bool has_infoz = false;
910
- if (sampling_mode ==
911
- ResizeFullSooTableSamplingMode::kForceSampleNoResizeIfUnsampled) {
912
- if (ABSL_PREDICT_FALSE(policy.is_hashtablez_eligible)) {
913
- infoz = ForcedTrySample(slot_size, policy.key_size, policy.value_size,
914
- policy.soo_capacity());
915
- }
916
-
917
- if (!infoz.IsSampled()) return;
918
- has_infoz = true;
919
- }
920
-
921
- common.set_capacity(new_capacity);
922
-
923
- // We do not set control and slots in CommonFields yet to avoid overriding
924
- // SOO data.
925
- const auto [new_ctrl, new_slots] =
926
- AllocBackingArray(common, policy, new_capacity, has_infoz, alloc);
927
-
928
- InsertOldSooSlotAndInitializeControlBytes(common, policy, new_ctrl, new_slots,
929
- has_infoz);
930
- ResetGrowthLeft(common);
931
- if (has_infoz) {
932
- common.set_has_infoz();
933
- common.set_infoz(infoz);
934
- infoz.RecordStorageChanged(common.size(), new_capacity);
935
- }
936
- }
937
-
938
- void GrowIntoSingleGroupShuffleControlBytes(ctrl_t* __restrict old_ctrl,
939
- size_t old_capacity,
940
- ctrl_t* __restrict new_ctrl,
941
- size_t new_capacity) {
942
- ABSL_SWISSTABLE_ASSERT(is_single_group(new_capacity));
943
- constexpr size_t kHalfWidth = Group::kWidth / 2;
944
- ABSL_ASSUME(old_capacity < kHalfWidth);
945
- ABSL_ASSUME(old_capacity > 0);
946
- static_assert(Group::kWidth == 8 || Group::kWidth == 16,
947
- "Group size is not supported.");
948
-
949
- // NOTE: operations are done with compile time known size = 8.
950
- // Compiler optimizes that into single ASM operation.
951
-
952
- // Load the bytes from old_capacity. This contains
953
- // - the sentinel byte
954
- // - all the old control bytes
955
- // - the rest is filled with kEmpty bytes
956
- // Example:
957
- // old_ctrl = 012S012EEEEEEEEE...
958
- // copied_bytes = S012EEEE
959
- uint64_t copied_bytes = absl::little_endian::Load64(old_ctrl + old_capacity);
960
-
961
- // We change the sentinel byte to kEmpty before storing to both the start of
962
- // the new_ctrl, and past the end of the new_ctrl later for the new cloned
963
- // bytes. Note that this is faster than setting the sentinel byte to kEmpty
964
- // after the copy directly in new_ctrl because we are limited on store
965
- // bandwidth.
966
- static constexpr uint64_t kEmptyXorSentinel =
967
- static_cast<uint8_t>(ctrl_t::kEmpty) ^
968
- static_cast<uint8_t>(ctrl_t::kSentinel);
969
-
970
- // Replace the first byte kSentinel with kEmpty.
971
- // Resulting bytes will be shifted by one byte old control blocks.
972
- // Example:
973
- // old_ctrl = 012S012EEEEEEEEE...
974
- // before = S012EEEE
975
- // after = E012EEEE
976
- copied_bytes ^= kEmptyXorSentinel;
977
-
978
- if (Group::kWidth == 8) {
979
- // With group size 8, we can grow with two write operations.
980
- ABSL_SWISSTABLE_ASSERT(old_capacity < 8 &&
981
- "old_capacity is too large for group size 8");
982
- absl::little_endian::Store64(new_ctrl, copied_bytes);
983
-
984
- static constexpr uint64_t kSentinal64 =
985
- static_cast<uint8_t>(ctrl_t::kSentinel);
986
-
987
- // Prepend kSentinel byte to the beginning of copied_bytes.
988
- // We have maximum 3 non-empty bytes at the beginning of copied_bytes for
989
- // group size 8.
990
- // Example:
991
- // old_ctrl = 012S012EEEE
992
- // before = E012EEEE
993
- // after = SE012EEE
994
- copied_bytes = (copied_bytes << 8) ^ kSentinal64;
995
- absl::little_endian::Store64(new_ctrl + new_capacity, copied_bytes);
996
- // Example for capacity 3:
997
- // old_ctrl = 012S012EEEE
998
- // After the first store:
999
- // >!
1000
- // new_ctrl = E012EEEE???????
1001
- // After the second store:
1002
- // >!
1003
- // new_ctrl = E012EEESE012EEE
1004
- return;
1005
- }
1006
-
1007
- ABSL_SWISSTABLE_ASSERT(Group::kWidth == 16); // NOLINT(misc-static-assert)
1008
-
1009
- // Fill the second half of the main control bytes with kEmpty.
1010
- // For small capacity that may write into mirrored control bytes.
1011
- // It is fine as we will overwrite all the bytes later.
1012
- std::memset(new_ctrl + kHalfWidth, static_cast<int8_t>(ctrl_t::kEmpty),
1013
- kHalfWidth);
1014
- // Fill the second half of the mirrored control bytes with kEmpty.
1015
- std::memset(new_ctrl + new_capacity + kHalfWidth,
1016
- static_cast<int8_t>(ctrl_t::kEmpty), kHalfWidth);
1017
- // Copy the first half of the non-mirrored control bytes.
1018
- absl::little_endian::Store64(new_ctrl, copied_bytes);
1019
- new_ctrl[new_capacity] = ctrl_t::kSentinel;
1020
- // Copy the first half of the mirrored control bytes.
1021
- absl::little_endian::Store64(new_ctrl + new_capacity + 1, copied_bytes);
1022
-
1023
- // Example for growth capacity 1->3:
1024
- // old_ctrl = 0S0EEEEEEEEEEEEEE
1025
- // new_ctrl at the end = E0ESE0EEEEEEEEEEEEE
1026
- // >!
1027
- // new_ctrl after 1st memset = ????????EEEEEEEE???
1028
- // >!
1029
- // new_ctrl after 2nd memset = ????????EEEEEEEEEEE
1030
- // >!
1031
- // new_ctrl after 1st store = E0EEEEEEEEEEEEEEEEE
1032
- // new_ctrl after kSentinel = E0ESEEEEEEEEEEEEEEE
1033
- // >!
1034
- // new_ctrl after 2nd store = E0ESE0EEEEEEEEEEEEE
1035
-
1036
- // Example for growth capacity 3->7:
1037
- // old_ctrl = 012S012EEEEEEEEEEEE
1038
- // new_ctrl at the end = E012EEESE012EEEEEEEEEEE
1039
- // >!
1040
- // new_ctrl after 1st memset = ????????EEEEEEEE???????
1041
- // >!
1042
- // new_ctrl after 2nd memset = ????????EEEEEEEEEEEEEEE
1043
- // >!
1044
- // new_ctrl after 1st store = E012EEEEEEEEEEEEEEEEEEE
1045
- // new_ctrl after kSentinel = E012EEESEEEEEEEEEEEEEEE
1046
- // >!
1047
- // new_ctrl after 2nd store = E012EEESE012EEEEEEEEEEE
1048
-
1049
- // Example for growth capacity 7->15:
1050
- // old_ctrl = 0123456S0123456EEEEEEEE
1051
- // new_ctrl at the end = E0123456EEEEEEESE0123456EEEEEEE
1052
- // >!
1053
- // new_ctrl after 1st memset = ????????EEEEEEEE???????????????
1054
- // >!
1055
- // new_ctrl after 2nd memset = ????????EEEEEEEE???????EEEEEEEE
1056
- // >!
1057
- // new_ctrl after 1st store = E0123456EEEEEEEE???????EEEEEEEE
1058
- // new_ctrl after kSentinel = E0123456EEEEEEES???????EEEEEEEE
1059
- // >!
1060
- // new_ctrl after 2nd store = E0123456EEEEEEESE0123456EEEEEEE
1061
- }
1062
-
1063
- // Size of the buffer we allocate on stack for storing probed elements in
1064
- // GrowToNextCapacity algorithm.
1065
- constexpr size_t kProbedElementsBufferSize = 512;
1066
-
1067
- // Decodes information about probed elements from contiguous memory.
1068
- // Finds new position for each element and transfers it to the new slots.
1069
- // Returns the total probe length.
1070
- template <typename ProbedItem>
1071
- ABSL_ATTRIBUTE_NOINLINE size_t DecodeAndInsertImpl(
1072
- CommonFields& c, const PolicyFunctions& __restrict policy,
1073
- const ProbedItem* start, const ProbedItem* end, void* old_slots) {
1074
- const size_t new_capacity = c.capacity();
1075
-
1076
- void* new_slots = c.slot_array();
1077
- ctrl_t* new_ctrl = c.control();
1078
- size_t total_probe_length = 0;
1079
-
1080
- const size_t slot_size = policy.slot_size;
1081
- auto transfer_n = policy.transfer_n;
1082
-
1083
- for (; start < end; ++start) {
1084
- const FindInfo target = find_first_non_full_from_h1(
1085
- new_ctrl, static_cast<size_t>(start->h1), new_capacity);
1086
- total_probe_length += target.probe_length;
1087
- const size_t old_index = static_cast<size_t>(start->source_offset);
1088
- const size_t new_i = target.offset;
1089
- ABSL_SWISSTABLE_ASSERT(old_index < new_capacity / 2);
1090
- ABSL_SWISSTABLE_ASSERT(new_i < new_capacity);
1091
- ABSL_SWISSTABLE_ASSERT(IsEmpty(new_ctrl[new_i]));
1092
- void* src_slot = SlotAddress(old_slots, old_index, slot_size);
1093
- void* dst_slot = SlotAddress(new_slots, new_i, slot_size);
1094
- SanitizerUnpoisonMemoryRegion(dst_slot, slot_size);
1095
- transfer_n(&c, dst_slot, src_slot, 1);
1096
- SetCtrlInLargeTable(c, new_i, static_cast<h2_t>(start->h2), slot_size);
1097
- }
1098
- return total_probe_length;
1099
- }
1100
-
1101
- // Sentinel value for the start of marked elements.
1102
- // Signals that there are no marked elements.
1103
- constexpr size_t kNoMarkedElementsSentinel = ~size_t{};
1104
-
1105
- // Process probed elements that did not fit into available buffers.
1106
- // We marked them in control bytes as kSentinel.
1107
- // Hash recomputation and full probing is done here.
1108
- // This use case should be extremely rare.
1109
- ABSL_ATTRIBUTE_NOINLINE size_t ProcessProbedMarkedElements(
1110
- CommonFields& c, const PolicyFunctions& __restrict policy, ctrl_t* old_ctrl,
1111
- void* old_slots, size_t start) {
1112
- size_t old_capacity = PreviousCapacity(c.capacity());
1113
- const size_t slot_size = policy.slot_size;
1114
- void* new_slots = c.slot_array();
1115
- size_t total_probe_length = 0;
1116
- const void* hash_fn = policy.hash_fn(c);
1117
- auto hash_slot = policy.hash_slot;
1118
- auto transfer_n = policy.transfer_n;
1119
- const size_t seed = c.seed().seed();
1120
- for (size_t old_index = start; old_index < old_capacity; ++old_index) {
1121
- if (old_ctrl[old_index] != ctrl_t::kSentinel) {
1122
- continue;
1123
- }
1124
- void* src_slot = SlotAddress(old_slots, old_index, slot_size);
1125
- const size_t hash = hash_slot(hash_fn, src_slot, seed);
1126
- const FindInfo target = find_first_non_full(c, hash);
1127
- total_probe_length += target.probe_length;
1128
- const size_t new_i = target.offset;
1129
- void* dst_slot = SlotAddress(new_slots, new_i, slot_size);
1130
- SetCtrlInLargeTable(c, new_i, H2(hash), slot_size);
1131
- transfer_n(&c, dst_slot, src_slot, 1);
1132
- }
1133
- return total_probe_length;
1134
- }
1135
-
1136
- // The largest old capacity for which it is guaranteed that all probed elements
1137
- // fit in ProbedItemEncoder's local buffer.
1138
- // For such tables, `encode_probed_element` is trivial.
1139
- constexpr size_t kMaxLocalBufferOldCapacity =
1140
- kProbedElementsBufferSize / sizeof(ProbedItem4Bytes) - 1;
1141
- static_assert(IsValidCapacity(kMaxLocalBufferOldCapacity));
1142
- constexpr size_t kMaxLocalBufferNewCapacity =
1143
- NextCapacity(kMaxLocalBufferOldCapacity);
1144
- static_assert(kMaxLocalBufferNewCapacity <= ProbedItem4Bytes::kMaxNewCapacity);
1145
- static_assert(NextCapacity(kMaxLocalBufferNewCapacity) <=
1146
- ProbedItem4Bytes::kMaxNewCapacity);
1147
-
1148
- // Initializes mirrored control bytes after
1149
- // transfer_unprobed_elements_to_next_capacity.
1150
- void InitializeMirroredControlBytes(ctrl_t* new_ctrl, size_t new_capacity) {
1151
- std::memcpy(new_ctrl + new_capacity,
1152
- // We own GrowthInfo just before control bytes. So it is ok
1153
- // to read one byte from it.
1154
- new_ctrl - 1, Group::kWidth);
1155
- new_ctrl[new_capacity] = ctrl_t::kSentinel;
1156
- }
1157
-
1158
- // Encodes probed elements into available memory.
1159
- // At first, a local (on stack) buffer is used. The size of the buffer is
1160
- // kProbedElementsBufferSize bytes.
1161
- // When the local buffer is full, we switch to `control_` buffer. We are allowed
1162
- // to overwrite `control_` buffer till the `source_offset` byte. In case we have
1163
- // no space in `control_` buffer, we fallback to a naive algorithm for all the
1164
- // rest of the probed elements. We mark elements as kSentinel in control bytes
1165
- // and later process them fully. See ProcessMarkedElements for details. It
1166
- // should be extremely rare.
1167
- template <typename ProbedItemType,
1168
- // If true, we only use the local buffer and never switch to the
1169
- // control buffer.
1170
- bool kGuaranteedFitToBuffer = false>
1171
- class ProbedItemEncoder {
1172
- public:
1173
- using ProbedItem = ProbedItemType;
1174
- explicit ProbedItemEncoder(ctrl_t* control) : control_(control) {}
1175
-
1176
- // Encode item into the best available location.
1177
- void EncodeItem(ProbedItem item) {
1178
- if (ABSL_PREDICT_FALSE(!kGuaranteedFitToBuffer && pos_ >= end_)) {
1179
- return ProcessEncodeWithOverflow(item);
1180
- }
1181
- ABSL_SWISSTABLE_ASSERT(pos_ < end_);
1182
- *pos_ = item;
1183
- ++pos_;
1184
- }
1185
-
1186
- // Decodes information about probed elements from all available sources.
1187
- // Finds new position for each element and transfers it to the new slots.
1188
- // Returns the total probe length.
1189
- size_t DecodeAndInsertToTable(CommonFields& common,
1190
- const PolicyFunctions& __restrict policy,
1191
- void* old_slots) const {
1192
- if (pos_ == buffer_) {
1193
- return 0;
1194
- }
1195
- if constexpr (kGuaranteedFitToBuffer) {
1196
- return DecodeAndInsertImpl(common, policy, buffer_, pos_, old_slots);
1197
- }
1198
- size_t total_probe_length = DecodeAndInsertImpl(
1199
- common, policy, buffer_,
1200
- local_buffer_full_ ? buffer_ + kBufferSize : pos_, old_slots);
1201
- if (!local_buffer_full_) {
1202
- return total_probe_length;
1203
- }
1204
- total_probe_length +=
1205
- DecodeAndInsertToTableOverflow(common, policy, old_slots);
1206
- return total_probe_length;
1207
- }
1208
-
1209
- private:
1210
- static ProbedItem* AlignToNextItem(void* ptr) {
1211
- return reinterpret_cast<ProbedItem*>(AlignUpTo(
1212
- reinterpret_cast<uintptr_t>(ptr), alignof(ProbedItem)));
1213
- }
1214
-
1215
- ProbedItem* OverflowBufferStart() const {
1216
- // We reuse GrowthInfo memory as well.
1217
- return AlignToNextItem(control_ - ControlOffset(/*has_infoz=*/false));
1218
- }
1219
-
1220
- // Encodes item when previously allocated buffer is full.
1221
- // At first that happens when local buffer is full.
1222
- // We switch from the local buffer to the control buffer.
1223
- // Every time this function is called, the available buffer is extended till
1224
- // `item.source_offset` byte in the control buffer.
1225
- // After the buffer is extended, this function wouldn't be called till the
1226
- // buffer is exhausted.
1227
- //
1228
- // If there's no space in the control buffer, we fallback to naive algorithm
1229
- // and mark probed elements as kSentinel in the control buffer. In this case,
1230
- // we will call this function for every subsequent probed element.
1231
- ABSL_ATTRIBUTE_NOINLINE void ProcessEncodeWithOverflow(ProbedItem item) {
1232
- if (!local_buffer_full_) {
1233
- local_buffer_full_ = true;
1234
- pos_ = OverflowBufferStart();
1235
- }
1236
- const size_t source_offset = static_cast<size_t>(item.source_offset);
1237
- // We are in fallback mode so we can't reuse control buffer anymore.
1238
- // Probed elements are marked as kSentinel in the control buffer.
1239
- if (ABSL_PREDICT_FALSE(marked_elements_starting_position_ !=
1240
- kNoMarkedElementsSentinel)) {
1241
- control_[source_offset] = ctrl_t::kSentinel;
1242
- return;
1243
- }
1244
- // Refresh the end pointer to the new available position.
1245
- // Invariant: if pos < end, then we have at least sizeof(ProbedItem) bytes
1246
- // to write.
1247
- end_ = control_ + source_offset + 1 - sizeof(ProbedItem);
1248
- if (ABSL_PREDICT_TRUE(pos_ < end_)) {
1249
- *pos_ = item;
1250
- ++pos_;
1251
- return;
1252
- }
1253
- control_[source_offset] = ctrl_t::kSentinel;
1254
- marked_elements_starting_position_ = source_offset;
1255
- // Now we will always fall down to `ProcessEncodeWithOverflow`.
1256
- ABSL_SWISSTABLE_ASSERT(pos_ >= end_);
1257
- }
1258
-
1259
- // Decodes information about probed elements from control buffer and processes
1260
- // marked elements.
1261
- // Finds new position for each element and transfers it to the new slots.
1262
- // Returns the total probe length.
1263
- ABSL_ATTRIBUTE_NOINLINE size_t DecodeAndInsertToTableOverflow(
1264
- CommonFields& common, const PolicyFunctions& __restrict policy,
1265
- void* old_slots) const {
1266
- ABSL_SWISSTABLE_ASSERT(local_buffer_full_ &&
1267
- "must not be called when local buffer is not full");
1268
- size_t total_probe_length = DecodeAndInsertImpl(
1269
- common, policy, OverflowBufferStart(), pos_, old_slots);
1270
- if (ABSL_PREDICT_TRUE(marked_elements_starting_position_ ==
1271
- kNoMarkedElementsSentinel)) {
1272
- return total_probe_length;
1273
- }
1274
- total_probe_length +=
1275
- ProcessProbedMarkedElements(common, policy, control_, old_slots,
1276
- marked_elements_starting_position_);
1277
- return total_probe_length;
1278
- }
1279
-
1280
- static constexpr size_t kBufferSize =
1281
- kProbedElementsBufferSize / sizeof(ProbedItem);
1282
- ProbedItem buffer_[kBufferSize];
1283
- // If local_buffer_full_ is false, then pos_/end_ are in the local buffer,
1284
- // otherwise, they're in the overflow buffer.
1285
- ProbedItem* pos_ = buffer_;
1286
- const void* end_ = buffer_ + kBufferSize;
1287
- ctrl_t* const control_;
1288
- size_t marked_elements_starting_position_ = kNoMarkedElementsSentinel;
1289
- bool local_buffer_full_ = false;
1290
- };
1291
-
1292
- // Grows to next capacity with specified encoder type.
1293
- // Encoder is used to store probed elements that are processed later.
1294
- // Different encoder is used depending on the capacity of the table.
1295
- // Returns total probe length.
1296
- template <typename Encoder>
1297
- size_t GrowToNextCapacity(CommonFields& common,
1298
- const PolicyFunctions& __restrict policy,
1299
- ctrl_t* old_ctrl, void* old_slots) {
1300
- using ProbedItem = typename Encoder::ProbedItem;
1301
- ABSL_SWISSTABLE_ASSERT(common.capacity() <= ProbedItem::kMaxNewCapacity);
1302
- Encoder encoder(old_ctrl);
1303
- policy.transfer_unprobed_elements_to_next_capacity(
1304
- common, old_ctrl, old_slots, &encoder,
1305
- [](void* probed_storage, h2_t h2, size_t source_offset, size_t h1) {
1306
- auto encoder_ptr = static_cast<Encoder*>(probed_storage);
1307
- encoder_ptr->EncodeItem(ProbedItem(h2, source_offset, h1));
1308
- });
1309
- InitializeMirroredControlBytes(common.control(), common.capacity());
1310
- return encoder.DecodeAndInsertToTable(common, policy, old_slots);
1311
- }
1312
-
1313
- // Grows to next capacity for relatively small tables so that even if all
1314
- // elements are probed, we don't need to overflow the local buffer.
1315
- // Returns total probe length.
1316
- size_t GrowToNextCapacityThatFitsInLocalBuffer(
1317
- CommonFields& common, const PolicyFunctions& __restrict policy,
1318
- ctrl_t* old_ctrl, void* old_slots) {
1319
- ABSL_SWISSTABLE_ASSERT(common.capacity() <= kMaxLocalBufferNewCapacity);
1320
- return GrowToNextCapacity<
1321
- ProbedItemEncoder<ProbedItem4Bytes, /*kGuaranteedFitToBuffer=*/true>>(
1322
- common, policy, old_ctrl, old_slots);
1323
- }
1324
-
1325
- // Grows to next capacity with different encodings. Returns total probe length.
1326
- // These functions are useful to simplify profile analysis.
1327
- size_t GrowToNextCapacity4BytesEncoder(CommonFields& common,
1328
- const PolicyFunctions& __restrict policy,
1329
- ctrl_t* old_ctrl, void* old_slots) {
1330
- return GrowToNextCapacity<ProbedItemEncoder<ProbedItem4Bytes>>(
1331
- common, policy, old_ctrl, old_slots);
1332
- }
1333
- size_t GrowToNextCapacity8BytesEncoder(CommonFields& common,
1334
- const PolicyFunctions& __restrict policy,
1335
- ctrl_t* old_ctrl, void* old_slots) {
1336
- return GrowToNextCapacity<ProbedItemEncoder<ProbedItem8Bytes>>(
1337
- common, policy, old_ctrl, old_slots);
1338
- }
1339
- size_t GrowToNextCapacity16BytesEncoder(
1340
- CommonFields& common, const PolicyFunctions& __restrict policy,
1341
- ctrl_t* old_ctrl, void* old_slots) {
1342
- return GrowToNextCapacity<ProbedItemEncoder<ProbedItem16Bytes>>(
1343
- common, policy, old_ctrl, old_slots);
1344
- }
1345
-
1346
- // Grows to next capacity for tables with relatively large capacity so that we
1347
- // can't guarantee that all probed elements fit in the local buffer. Returns
1348
- // total probe length.
1349
- size_t GrowToNextCapacityOverflowLocalBuffer(
1350
- CommonFields& common, const PolicyFunctions& __restrict policy,
1351
- ctrl_t* old_ctrl, void* old_slots) {
1352
- const size_t new_capacity = common.capacity();
1353
- if (ABSL_PREDICT_TRUE(new_capacity <= ProbedItem4Bytes::kMaxNewCapacity)) {
1354
- return GrowToNextCapacity4BytesEncoder(common, policy, old_ctrl, old_slots);
1355
- }
1356
- if (ABSL_PREDICT_TRUE(new_capacity <= ProbedItem8Bytes::kMaxNewCapacity)) {
1357
- return GrowToNextCapacity8BytesEncoder(common, policy, old_ctrl, old_slots);
1358
- }
1359
- // 16 bytes encoding supports the maximum swisstable capacity.
1360
- return GrowToNextCapacity16BytesEncoder(common, policy, old_ctrl, old_slots);
1361
- }
1362
-
1363
- // Dispatches to the appropriate `GrowToNextCapacity*` function based on the
1364
- // capacity of the table. Returns total probe length.
1365
- ABSL_ATTRIBUTE_NOINLINE
1366
- size_t GrowToNextCapacityDispatch(CommonFields& common,
1367
- const PolicyFunctions& __restrict policy,
1368
- ctrl_t* old_ctrl, void* old_slots) {
1369
- const size_t new_capacity = common.capacity();
1370
- if (ABSL_PREDICT_TRUE(new_capacity <= kMaxLocalBufferNewCapacity)) {
1371
- return GrowToNextCapacityThatFitsInLocalBuffer(common, policy, old_ctrl,
1372
- old_slots);
1373
- } else {
1374
- return GrowToNextCapacityOverflowLocalBuffer(common, policy, old_ctrl,
1375
- old_slots);
1376
- }
1377
- }
1378
-
1379
- void IncrementSmallSizeNonSoo(CommonFields& common,
1380
- const PolicyFunctions& __restrict policy) {
1381
- ABSL_SWISSTABLE_ASSERT(common.is_small());
1382
- common.increment_size();
1383
- SanitizerUnpoisonMemoryRegion(common.slot_array(), policy.slot_size);
1384
- }
1385
-
1386
- void IncrementSmallSize(CommonFields& common,
1387
- const PolicyFunctions& __restrict policy) {
1388
- ABSL_SWISSTABLE_ASSERT(common.is_small());
1389
- if (policy.soo_enabled) {
1390
- common.set_full_soo();
1391
- } else {
1392
- IncrementSmallSizeNonSoo(common, policy);
1393
- }
1394
- }
1395
-
1396
- std::pair<ctrl_t*, void*> Grow1To3AndPrepareInsert(
1397
- CommonFields& common, const PolicyFunctions& __restrict policy,
1398
- absl::FunctionRef<size_t(size_t)> get_hash) {
1399
- // TODO(b/413062340): Refactor to reuse more code with
1400
- // GrowSooTableToNextCapacityAndPrepareInsert.
1401
- ABSL_SWISSTABLE_ASSERT(common.capacity() == 1);
1402
- ABSL_SWISSTABLE_ASSERT(!common.empty());
1403
- ABSL_SWISSTABLE_ASSERT(!policy.soo_enabled);
1404
- constexpr size_t kOldCapacity = 1;
1405
- constexpr size_t kNewCapacity = NextCapacity(kOldCapacity);
1406
- ctrl_t* old_ctrl = common.control();
1407
- void* old_slots = common.slot_array();
1408
-
1409
- const size_t slot_size = policy.slot_size;
1410
- const size_t slot_align = policy.slot_align;
1411
- void* alloc = policy.get_char_alloc(common);
1412
- HashtablezInfoHandle infoz = common.infoz();
1413
- const bool has_infoz = infoz.IsSampled();
1414
- common.set_capacity(kNewCapacity);
1415
-
1416
- const auto [new_ctrl, new_slots] =
1417
- AllocBackingArray(common, policy, kNewCapacity, has_infoz, alloc);
1418
- common.set_control(new_ctrl);
1419
- common.set_slots(new_slots);
1420
- SanitizerPoisonMemoryRegion(new_slots, kNewCapacity * slot_size);
1421
-
1422
- if (ABSL_PREDICT_TRUE(!has_infoz)) {
1423
- // When we're sampled, we already have a seed.
1424
- common.generate_new_seed(/*has_infoz=*/false);
1425
- }
1426
- const size_t new_hash = get_hash(common.seed().seed());
1427
- h2_t new_h2 = H2(new_hash);
1428
- size_t orig_hash =
1429
- policy.hash_slot(policy.hash_fn(common), old_slots, common.seed().seed());
1430
- size_t offset = Resize1To3NewOffset(new_hash, common.seed());
1431
- InitializeThreeElementsControlBytes(H2(orig_hash), new_h2, offset, new_ctrl);
1432
-
1433
- void* old_element_target = NextSlot(new_slots, slot_size);
1434
- SanitizerUnpoisonMemoryRegion(old_element_target, slot_size);
1435
- policy.transfer_n(&common, old_element_target, old_slots, 1);
1436
-
1437
- void* new_element_target_slot = SlotAddress(new_slots, offset, slot_size);
1438
- SanitizerUnpoisonMemoryRegion(new_element_target_slot, slot_size);
1439
-
1440
- policy.dealloc(alloc, kOldCapacity, old_ctrl, slot_size, slot_align,
1441
- has_infoz);
1442
- PrepareInsertCommon(common);
1443
- ABSL_SWISSTABLE_ASSERT(common.size() == 2);
1444
- GetGrowthInfoFromControl(new_ctrl).InitGrowthLeftNoDeleted(kNewCapacity - 2);
1445
-
1446
- if (ABSL_PREDICT_FALSE(has_infoz)) {
1447
- ReportSingleGroupTableGrowthToInfoz(common, infoz, new_hash);
1448
- }
1449
- return {new_ctrl + offset, new_element_target_slot};
1450
- }
1451
-
1452
- // Grows to next capacity and prepares insert for the given new_hash.
1453
- // Returns the offset of the new element.
1454
- size_t GrowToNextCapacityAndPrepareInsert(
1455
- CommonFields& common, const PolicyFunctions& __restrict policy,
1456
- size_t new_hash) {
1457
- ABSL_SWISSTABLE_ASSERT(common.growth_left() == 0);
1458
- const size_t old_capacity = common.capacity();
1459
- ABSL_SWISSTABLE_ASSERT(old_capacity > policy.soo_capacity());
1460
- ABSL_SWISSTABLE_ASSERT(!IsSmallCapacity(old_capacity));
1461
-
1462
- const size_t new_capacity = NextCapacity(old_capacity);
1463
- ctrl_t* old_ctrl = common.control();
1464
- void* old_slots = common.slot_array();
1465
-
1466
- common.set_capacity(new_capacity);
1467
- const size_t slot_size = policy.slot_size;
1468
- const size_t slot_align = policy.slot_align;
1469
- void* alloc = policy.get_char_alloc(common);
1470
- HashtablezInfoHandle infoz = common.infoz();
1471
- const bool has_infoz = infoz.IsSampled();
1472
-
1473
- const auto [new_ctrl, new_slots] =
1474
- AllocBackingArray(common, policy, new_capacity, has_infoz, alloc);
1475
- common.set_control(new_ctrl);
1476
- common.set_slots(new_slots);
1477
- SanitizerPoisonMemoryRegion(new_slots, new_capacity * slot_size);
1478
-
1479
- h2_t new_h2 = H2(new_hash);
1480
- size_t total_probe_length = 0;
1481
- FindInfo find_info;
1482
- if (ABSL_PREDICT_TRUE(is_single_group(new_capacity))) {
1483
- size_t offset;
1484
- GrowIntoSingleGroupShuffleControlBytes(old_ctrl, old_capacity, new_ctrl,
1485
- new_capacity);
1486
- // We put the new element either at the beginning or at the end of the
1487
- // table with approximately equal probability.
1488
- offset =
1489
- SingleGroupTableH1(new_hash, common.seed()) & 1 ? 0 : new_capacity - 1;
1490
-
1491
- ABSL_SWISSTABLE_ASSERT(IsEmpty(new_ctrl[offset]));
1492
- SetCtrlInSingleGroupTable(common, offset, new_h2, policy.slot_size);
1493
- find_info = FindInfo{offset, 0};
1494
- // Single group tables have all slots full on resize. So we can transfer
1495
- // all slots without checking the control bytes.
1496
- ABSL_SWISSTABLE_ASSERT(common.size() == old_capacity);
1497
- void* target = NextSlot(new_slots, slot_size);
1498
- SanitizerUnpoisonMemoryRegion(target, old_capacity * slot_size);
1499
- policy.transfer_n(&common, target, old_slots, old_capacity);
1500
- } else {
1501
- total_probe_length =
1502
- GrowToNextCapacityDispatch(common, policy, old_ctrl, old_slots);
1503
- find_info = find_first_non_full(common, new_hash);
1504
- SetCtrlInLargeTable(common, find_info.offset, new_h2, policy.slot_size);
1505
- }
1506
- ABSL_SWISSTABLE_ASSERT(old_capacity > policy.soo_capacity());
1507
- (*policy.dealloc)(alloc, old_capacity, old_ctrl, slot_size, slot_align,
1508
- has_infoz);
1509
- PrepareInsertCommon(common);
1510
- ResetGrowthLeft(GetGrowthInfoFromControl(new_ctrl), new_capacity,
1511
- common.size());
1512
-
1513
- if (ABSL_PREDICT_FALSE(has_infoz)) {
1514
- ReportGrowthToInfoz(common, infoz, new_hash, total_probe_length,
1515
- find_info.probe_length);
1516
- }
1517
- return find_info.offset;
1518
- }
1519
-
1520
- } // namespace
1521
-
1522
- std::pair<ctrl_t*, void*> PrepareInsertSmallNonSoo(
1523
- CommonFields& common, const PolicyFunctions& __restrict policy,
1524
- absl::FunctionRef<size_t(size_t)> get_hash) {
1525
- ABSL_SWISSTABLE_ASSERT(common.is_small());
1526
- ABSL_SWISSTABLE_ASSERT(!policy.soo_enabled);
1527
- if (common.capacity() == 1) {
1528
- if (common.empty()) {
1529
- IncrementSmallSizeNonSoo(common, policy);
1530
- return {SooControl(), common.slot_array()};
1531
- } else {
1532
- return Grow1To3AndPrepareInsert(common, policy, get_hash);
1533
- }
1534
- }
1535
-
1536
- // Growing from 0 to 1 capacity.
1537
- ABSL_SWISSTABLE_ASSERT(common.capacity() == 0);
1538
- constexpr size_t kNewCapacity = 1;
1539
-
1540
- common.set_capacity(kNewCapacity);
1541
- HashtablezInfoHandle infoz;
1542
- const bool should_sample =
1543
- policy.is_hashtablez_eligible && ShouldSampleNextTable();
1544
- if (ABSL_PREDICT_FALSE(should_sample)) {
1545
- infoz = ForcedTrySample(policy.slot_size, policy.key_size,
1546
- policy.value_size, policy.soo_capacity());
1547
- }
1548
- const bool has_infoz = infoz.IsSampled();
1549
- void* alloc = policy.get_char_alloc(common);
1550
-
1551
- const auto [new_ctrl, new_slots] =
1552
- AllocBackingArray(common, policy, kNewCapacity, has_infoz, alloc);
1553
- common.set_control(new_ctrl);
1554
- common.set_slots(new_slots);
1555
-
1556
- static_assert(NextCapacity(0) == 1);
1557
- PrepareInsertCommon(common);
1558
-
1559
- if (ABSL_PREDICT_FALSE(has_infoz)) {
1560
- common.generate_new_seed(/*has_infoz=*/true);
1561
- ReportSingleGroupTableGrowthToInfoz(common, infoz,
1562
- get_hash(common.seed().seed()));
1563
- }
1564
- return {SooControl(), new_slots};
1565
- }
1566
-
1567
- namespace {
1568
-
1569
- // Called whenever the table needs to vacate empty slots either by removing
1570
- // tombstones via rehash or growth to next capacity.
1571
- ABSL_ATTRIBUTE_NOINLINE
1572
- size_t RehashOrGrowToNextCapacityAndPrepareInsert(
1573
- CommonFields& common, const PolicyFunctions& __restrict policy,
1574
- size_t new_hash) {
1575
- const size_t cap = common.capacity();
1576
- ABSL_ASSUME(cap > 0);
1577
- if (cap > Group::kWidth &&
1578
- // Do these calculations in 64-bit to avoid overflow.
1579
- common.size() * uint64_t{32} <= cap * uint64_t{25}) {
1580
- // Squash DELETED without growing if there is enough capacity.
1581
- //
1582
- // Rehash in place if the current size is <= 25/32 of capacity.
1583
- // Rationale for such a high factor: 1) DropDeletesWithoutResize() is
1584
- // faster than resize, and 2) it takes quite a bit of work to add
1585
- // tombstones. In the worst case, seems to take approximately 4
1586
- // insert/erase pairs to create a single tombstone and so if we are
1587
- // rehashing because of tombstones, we can afford to rehash-in-place as
1588
- // long as we are reclaiming at least 1/8 the capacity without doing more
1589
- // than 2X the work. (Where "work" is defined to be size() for rehashing
1590
- // or rehashing in place, and 1 for an insert or erase.) But rehashing in
1591
- // place is faster per operation than inserting or even doubling the size
1592
- // of the table, so we actually afford to reclaim even less space from a
1593
- // resize-in-place. The decision is to rehash in place if we can reclaim
1594
- // at about 1/8th of the usable capacity (specifically 3/28 of the
1595
- // capacity) which means that the total cost of rehashing will be a small
1596
- // fraction of the total work.
1597
- //
1598
- // Here is output of an experiment using the BM_CacheInSteadyState
1599
- // benchmark running the old case (where we rehash-in-place only if we can
1600
- // reclaim at least 7/16*capacity) vs. this code (which rehashes in place
1601
- // if we can recover 3/32*capacity).
1602
- //
1603
- // Note that although in the worst-case number of rehashes jumped up from
1604
- // 15 to 190, but the number of operations per second is almost the same.
1605
- //
1606
- // Abridged output of running BM_CacheInSteadyState benchmark from
1607
- // raw_hash_set_benchmark. N is the number of insert/erase operations.
1608
- //
1609
- // | OLD (recover >= 7/16 | NEW (recover >= 3/32)
1610
- // size | N/s LoadFactor NRehashes | N/s LoadFactor NRehashes
1611
- // 448 | 145284 0.44 18 | 140118 0.44 19
1612
- // 493 | 152546 0.24 11 | 151417 0.48 28
1613
- // 538 | 151439 0.26 11 | 151152 0.53 38
1614
- // 583 | 151765 0.28 11 | 150572 0.57 50
1615
- // 628 | 150241 0.31 11 | 150853 0.61 66
1616
- // 672 | 149602 0.33 12 | 150110 0.66 90
1617
- // 717 | 149998 0.35 12 | 149531 0.70 129
1618
- // 762 | 149836 0.37 13 | 148559 0.74 190
1619
- // 807 | 149736 0.39 14 | 151107 0.39 14
1620
- // 852 | 150204 0.42 15 | 151019 0.42 15
1621
- return DropDeletesWithoutResizeAndPrepareInsert(common, policy, new_hash);
1622
- } else {
1623
- // Otherwise grow the container.
1624
- return GrowToNextCapacityAndPrepareInsert(common, policy, new_hash);
1625
- }
1626
- }
1627
-
1628
- // Slow path for PrepareInsertLarge that is called when the table has deleted
1629
- // slots or need to be resized or rehashed.
1630
- size_t PrepareInsertLargeSlow(CommonFields& common,
1631
- const PolicyFunctions& __restrict policy,
1632
- size_t hash) {
1633
- const GrowthInfo growth_info = common.growth_info();
1634
- ABSL_SWISSTABLE_ASSERT(!growth_info.HasNoDeletedAndGrowthLeft());
1635
- if (ABSL_PREDICT_TRUE(growth_info.HasNoGrowthLeftAndNoDeleted())) {
1636
- // Table without deleted slots (>95% cases) that needs to be resized.
1637
- ABSL_SWISSTABLE_ASSERT(growth_info.HasNoDeleted() &&
1638
- growth_info.GetGrowthLeft() == 0);
1639
- return GrowToNextCapacityAndPrepareInsert(common, policy, hash);
1640
- }
1641
- if (ABSL_PREDICT_FALSE(growth_info.HasNoGrowthLeftAssumingMayHaveDeleted())) {
1642
- // Table with deleted slots that needs to be rehashed or resized.
1643
- return RehashOrGrowToNextCapacityAndPrepareInsert(common, policy, hash);
1644
- }
1645
- // Table with deleted slots that has space for the inserting element.
1646
- FindInfo target = find_first_non_full(common, hash);
1647
- PrepareInsertCommon(common);
1648
- common.growth_info().OverwriteControlAsFull(common.control()[target.offset]);
1649
- SetCtrlInLargeTable(common, target.offset, H2(hash), policy.slot_size);
1650
- common.infoz().RecordInsertMiss(hash, target.probe_length);
1651
- return target.offset;
1652
- }
1653
-
1654
- // Resizes empty non-allocated SOO table to NextCapacity(SooCapacity()),
1655
- // forces the table to be sampled and prepares the insert.
1656
- // SOO tables need to switch from SOO to heap in order to store the infoz.
1657
- // Requires:
1658
- // 1. `c.capacity() == SooCapacity()`.
1659
- // 2. `c.empty()`.
1660
- ABSL_ATTRIBUTE_NOINLINE size_t
1661
- GrowEmptySooTableToNextCapacityForceSamplingAndPrepareInsert(
1662
- CommonFields& common, const PolicyFunctions& __restrict policy,
1663
- absl::FunctionRef<size_t(size_t)> get_hash) {
1664
- ResizeEmptyNonAllocatedTableImpl(common, policy, NextCapacity(SooCapacity()),
1665
- /*force_infoz=*/true);
1666
- PrepareInsertCommon(common);
1667
- common.growth_info().OverwriteEmptyAsFull();
1668
- const size_t new_hash = get_hash(common.seed().seed());
1669
- SetCtrlInSingleGroupTable(common, SooSlotIndex(), H2(new_hash),
1670
- policy.slot_size);
1671
- common.infoz().RecordInsertMiss(new_hash, /*distance_from_desired=*/0);
1672
- return SooSlotIndex();
1673
- }
1674
-
1675
- // Resizes empty non-allocated table to the capacity to fit new_size elements.
1676
- // Requires:
1677
- // 1. `c.capacity() == policy.soo_capacity()`.
1678
- // 2. `c.empty()`.
1679
- // 3. `new_size > policy.soo_capacity()`.
1680
- // The table will be attempted to be sampled.
1681
- void ReserveEmptyNonAllocatedTableToFitNewSize(
1682
- CommonFields& common, const PolicyFunctions& __restrict policy,
1683
- size_t new_size) {
1684
- ValidateMaxSize(new_size, policy.slot_size);
1685
- ABSL_ASSUME(new_size > 0);
1686
- ResizeEmptyNonAllocatedTableImpl(common, policy, SizeToCapacity(new_size),
1687
- /*force_infoz=*/false);
1688
- // This is after resize, to ensure that we have completed the allocation
1689
- // and have potentially sampled the hashtable.
1690
- common.infoz().RecordReservation(new_size);
1691
- }
1692
-
1693
- // Type erased version of raw_hash_set::reserve for tables that have an
1694
- // allocated backing array.
1695
- //
1696
- // Requires:
1697
- // 1. `c.capacity() > policy.soo_capacity()` OR `!c.empty()`.
1698
- // Reserving already allocated tables is considered to be a rare case.
1699
- ABSL_ATTRIBUTE_NOINLINE void ReserveAllocatedTable(
1700
- CommonFields& common, const PolicyFunctions& __restrict policy,
1701
- size_t new_size) {
1702
- const size_t cap = common.capacity();
1703
- ValidateMaxSize(new_size, policy.slot_size);
1704
- ABSL_ASSUME(new_size > 0);
1705
- const size_t new_capacity = SizeToCapacity(new_size);
1706
- if (cap == policy.soo_capacity()) {
1707
- ABSL_SWISSTABLE_ASSERT(!common.empty());
1708
- ResizeFullSooTable(common, policy, new_capacity,
1709
- ResizeFullSooTableSamplingMode::kNoSampling);
1710
- } else {
1711
- ABSL_SWISSTABLE_ASSERT(cap > policy.soo_capacity());
1712
- // TODO(b/382423690): consider using GrowToNextCapacity, when applicable.
1713
- ResizeAllocatedTableWithSeedChange(common, policy, new_capacity);
1714
- }
1715
- common.infoz().RecordReservation(new_size);
1716
- }
1717
-
1718
- // As `ResizeFullSooTableToNextCapacity`, except that we also force the SOO
1719
- // table to be sampled. SOO tables need to switch from SOO to heap in order to
1720
- // store the infoz. No-op if sampling is disabled or not possible.
1721
- void GrowFullSooTableToNextCapacityForceSampling(
1722
- CommonFields& common, const PolicyFunctions& __restrict policy) {
1723
- AssertFullSoo(common, policy);
1724
- ResizeFullSooTable(
1725
- common, policy, NextCapacity(SooCapacity()),
1726
- ResizeFullSooTableSamplingMode::kForceSampleNoResizeIfUnsampled);
1727
- }
1728
-
1729
- } // namespace
1730
-
1731
- void* GetRefForEmptyClass(CommonFields& common) {
1732
- // Empty base optimization typically make the empty base class address to be
1733
- // the same as the first address of the derived class object.
1734
- // But we generally assume that for empty classes we can return any valid
1735
- // pointer.
1736
- return &common;
1737
- }
1738
-
1739
- void ResizeAllocatedTableWithSeedChange(
1740
- CommonFields& common, const PolicyFunctions& __restrict policy,
1741
- size_t new_capacity) {
1742
- ResizeNonSooImpl<ResizeNonSooMode::kGuaranteedAllocated>(
1743
- common, policy, new_capacity, common.infoz());
1744
- }
1745
-
1746
- void ReserveEmptyNonAllocatedTableToFitBucketCount(
1747
- CommonFields& common, const PolicyFunctions& __restrict policy,
1748
- size_t bucket_count) {
1749
- size_t new_capacity = NormalizeCapacity(bucket_count);
1750
- ValidateMaxSize(CapacityToGrowth(new_capacity), policy.slot_size);
1751
- ResizeEmptyNonAllocatedTableImpl(common, policy, new_capacity,
1752
- /*force_infoz=*/false);
1753
- }
1754
-
1755
- // Resizes a full SOO table to the NextCapacity(SooCapacity()).
1756
- template <size_t SooSlotMemcpySize, bool TransferUsesMemcpy>
1757
- size_t GrowSooTableToNextCapacityAndPrepareInsert(
1758
- CommonFields& common, const PolicyFunctions& __restrict policy,
1759
- absl::FunctionRef<size_t(size_t)> get_hash, bool force_sampling) {
1760
- AssertSoo(common, policy);
1761
- if (ABSL_PREDICT_FALSE(force_sampling)) {
1762
- // The table is empty, it is only used for forced sampling of SOO tables.
1763
- return GrowEmptySooTableToNextCapacityForceSamplingAndPrepareInsert(
1764
- common, policy, get_hash);
1765
- }
1766
- ABSL_SWISSTABLE_ASSERT(common.size() == policy.soo_capacity());
1767
- static constexpr size_t kNewCapacity = NextCapacity(SooCapacity());
1768
- const size_t slot_size = policy.slot_size;
1769
- void* alloc = policy.get_char_alloc(common);
1770
- common.set_capacity(kNewCapacity);
1771
-
1772
- // Since the table is not empty, it will not be sampled.
1773
- // The decision to sample was already made during the first insertion.
1774
- //
1775
- // We do not set control and slots in CommonFields yet to avoid overriding
1776
- // SOO data.
1777
- const auto [new_ctrl, new_slots] = AllocBackingArray(
1778
- common, policy, kNewCapacity, /*has_infoz=*/false, alloc);
1779
-
1780
- PrepareInsertCommon(common);
1781
- ABSL_SWISSTABLE_ASSERT(common.size() == 2);
1782
- GetGrowthInfoFromControl(new_ctrl).InitGrowthLeftNoDeleted(kNewCapacity - 2);
1783
- common.generate_new_seed(/*has_infoz=*/false);
1784
- const h2_t soo_slot_h2 = H2(policy.hash_slot(
1785
- policy.hash_fn(common), common.soo_data(), common.seed().seed()));
1786
- const size_t new_hash = get_hash(common.seed().seed());
1787
-
1788
- const size_t offset = Resize1To3NewOffset(new_hash, common.seed());
1789
- InitializeThreeElementsControlBytes(soo_slot_h2, H2(new_hash), offset,
1790
- new_ctrl);
1791
-
1792
- SanitizerPoisonMemoryRegion(new_slots, slot_size * kNewCapacity);
1793
- void* target_slot = SlotAddress(new_slots, SooSlotIndex(), slot_size);
1794
- SanitizerUnpoisonMemoryRegion(target_slot, slot_size);
1795
- if constexpr (TransferUsesMemcpy) {
1796
- // Target slot is placed at index 1, but capacity is at
1797
- // minimum 3. So we are allowed to copy at least twice as much
1798
- // memory.
1799
- static_assert(SooSlotIndex() == 1);
1800
- static_assert(SooSlotMemcpySize > 0);
1801
- static_assert(SooSlotMemcpySize <= MaxSooSlotSize());
1802
- ABSL_SWISSTABLE_ASSERT(SooSlotMemcpySize <= 2 * slot_size);
1803
- ABSL_SWISSTABLE_ASSERT(SooSlotMemcpySize >= slot_size);
1804
- void* next_slot = SlotAddress(target_slot, 1, slot_size);
1805
- SanitizerUnpoisonMemoryRegion(next_slot, SooSlotMemcpySize - slot_size);
1806
- std::memcpy(target_slot, common.soo_data(), SooSlotMemcpySize);
1807
- SanitizerPoisonMemoryRegion(next_slot, SooSlotMemcpySize - slot_size);
1808
- } else {
1809
- static_assert(SooSlotMemcpySize == 0);
1810
- policy.transfer_n(&common, target_slot, common.soo_data(), 1);
1811
- }
1812
- common.set_control(new_ctrl);
1813
- common.set_slots(new_slots);
1814
-
1815
- // Full SOO table couldn't be sampled. If SOO table is sampled, it would
1816
- // have been resized to the next capacity.
1817
- ABSL_SWISSTABLE_ASSERT(!common.infoz().IsSampled());
1818
- SanitizerUnpoisonMemoryRegion(SlotAddress(new_slots, offset, slot_size),
1819
- slot_size);
1820
- return offset;
1821
- }
1822
-
1823
- void Rehash(CommonFields& common, const PolicyFunctions& __restrict policy,
1824
- size_t n) {
1825
- const size_t cap = common.capacity();
1826
-
1827
- auto clear_backing_array = [&]() {
1828
- ClearBackingArray(common, policy, policy.get_char_alloc(common),
1829
- /*reuse=*/false, policy.soo_enabled);
1830
- };
1831
-
1832
- const size_t slot_size = policy.slot_size;
1833
-
1834
- if (n == 0) {
1835
- if (cap <= policy.soo_capacity()) return;
1836
- if (common.empty()) {
1837
- clear_backing_array();
1838
- return;
1839
- }
1840
- if (common.size() <= policy.soo_capacity()) {
1841
- // When the table is already sampled, we keep it sampled.
1842
- if (common.infoz().IsSampled()) {
1843
- static constexpr size_t kInitialSampledCapacity =
1844
- NextCapacity(SooCapacity());
1845
- if (cap > kInitialSampledCapacity) {
1846
- ResizeAllocatedTableWithSeedChange(common, policy,
1847
- kInitialSampledCapacity);
1848
- }
1849
- // This asserts that we didn't lose sampling coverage in `resize`.
1850
- ABSL_SWISSTABLE_ASSERT(common.infoz().IsSampled());
1851
- return;
1852
- }
1853
- ABSL_SWISSTABLE_ASSERT(slot_size <= sizeof(HeapOrSoo));
1854
- ABSL_SWISSTABLE_ASSERT(policy.slot_align <= alignof(HeapOrSoo));
1855
- HeapOrSoo tmp_slot;
1856
- size_t begin_offset = FindFirstFullSlot(0, cap, common.control());
1857
- policy.transfer_n(
1858
- &common, &tmp_slot,
1859
- SlotAddress(common.slot_array(), begin_offset, slot_size), 1);
1860
- clear_backing_array();
1861
- policy.transfer_n(&common, common.soo_data(), &tmp_slot, 1);
1862
- common.set_full_soo();
1863
- return;
1864
- }
1865
- }
1866
-
1867
- ValidateMaxSize(n, policy.slot_size);
1868
- // bitor is a faster way of doing `max` here. We will round up to the next
1869
- // power-of-2-minus-1, so bitor is good enough.
1870
- const size_t new_capacity =
1871
- NormalizeCapacity(n | SizeToCapacity(common.size()));
1872
- // n == 0 unconditionally rehashes as per the standard.
1873
- if (n == 0 || new_capacity > cap) {
1874
- if (cap == policy.soo_capacity()) {
1875
- if (common.empty()) {
1876
- ResizeEmptyNonAllocatedTableImpl(common, policy, new_capacity,
1877
- /*force_infoz=*/false);
1878
- } else {
1879
- ResizeFullSooTable(common, policy, new_capacity,
1880
- ResizeFullSooTableSamplingMode::kNoSampling);
1881
- }
1882
- } else {
1883
- ResizeAllocatedTableWithSeedChange(common, policy, new_capacity);
1884
- }
1885
- // This is after resize, to ensure that we have completed the allocation
1886
- // and have potentially sampled the hashtable.
1887
- common.infoz().RecordReservation(n);
1888
- }
1889
- }
1890
-
1891
- void Copy(CommonFields& common, const PolicyFunctions& __restrict policy,
1892
- const CommonFields& other,
1893
- absl::FunctionRef<void(void*, const void*)> copy_fn) {
1894
- const size_t size = other.size();
1895
- ABSL_SWISSTABLE_ASSERT(size > 0);
1896
- const size_t soo_capacity = policy.soo_capacity();
1897
- const size_t slot_size = policy.slot_size;
1898
- const bool soo_enabled = policy.soo_enabled;
1899
- if (size == 1) {
1900
- if (!soo_enabled) ReserveTableToFitNewSize(common, policy, 1);
1901
- IncrementSmallSize(common, policy);
1902
- const size_t other_capacity = other.capacity();
1903
- const void* other_slot =
1904
- other_capacity <= soo_capacity ? other.soo_data()
1905
- : other.is_small()
1906
- ? other.slot_array()
1907
- : SlotAddress(other.slot_array(),
1908
- FindFirstFullSlot(0, other_capacity, other.control()),
1909
- slot_size);
1910
- copy_fn(soo_enabled ? common.soo_data() : common.slot_array(), other_slot);
1911
-
1912
- if (soo_enabled && policy.is_hashtablez_eligible &&
1913
- ShouldSampleNextTable()) {
1914
- GrowFullSooTableToNextCapacityForceSampling(common, policy);
1915
- }
1916
- return;
1917
- }
1918
-
1919
- ReserveTableToFitNewSize(common, policy, size);
1920
- auto infoz = common.infoz();
1921
- ABSL_SWISSTABLE_ASSERT(other.capacity() > soo_capacity);
1922
- const size_t cap = common.capacity();
1923
- ABSL_SWISSTABLE_ASSERT(cap > soo_capacity);
1924
- size_t offset = cap;
1925
- const void* hash_fn = policy.hash_fn(common);
1926
- auto hasher = policy.hash_slot;
1927
- const size_t seed = common.seed().seed();
1928
- IterateOverFullSlotsImpl(
1929
- other, slot_size, [&](const ctrl_t*, void* that_slot) {
1930
- // The table is guaranteed to be empty, so we can do faster than
1931
- // a full `insert`.
1932
- const size_t hash = (*hasher)(hash_fn, that_slot, seed);
1933
- FindInfo target = find_first_non_full(common, hash);
1934
- infoz.RecordInsertMiss(hash, target.probe_length);
1935
- offset = target.offset;
1936
- SetCtrl(common, offset, H2(hash), slot_size);
1937
- copy_fn(SlotAddress(common.slot_array(), offset, slot_size), that_slot);
1938
- common.maybe_increment_generation_on_insert();
1939
- });
1940
- common.increment_size(size);
1941
- common.growth_info().OverwriteManyEmptyAsFull(size);
1942
- }
1943
-
1944
- void ReserveTableToFitNewSize(CommonFields& common,
1945
- const PolicyFunctions& __restrict policy,
1946
- size_t new_size) {
1947
- common.reset_reserved_growth(new_size);
1948
- common.set_reservation_size(new_size);
1949
- ABSL_SWISSTABLE_ASSERT(new_size > policy.soo_capacity());
1950
- const size_t cap = common.capacity();
1951
- if (ABSL_PREDICT_TRUE(common.empty() && cap <= policy.soo_capacity())) {
1952
- return ReserveEmptyNonAllocatedTableToFitNewSize(common, policy, new_size);
1953
- }
1954
-
1955
- ABSL_SWISSTABLE_ASSERT(!common.empty() || cap > policy.soo_capacity());
1956
- ABSL_SWISSTABLE_ASSERT(cap > 0);
1957
- const size_t max_size_before_growth =
1958
- IsSmallCapacity(cap) ? cap : common.size() + common.growth_left();
1959
- if (new_size <= max_size_before_growth) {
1960
- return;
1961
- }
1962
- ReserveAllocatedTable(common, policy, new_size);
1963
- }
1964
-
1965
- namespace {
1966
- size_t PrepareInsertLargeImpl(CommonFields& common,
1967
- const PolicyFunctions& __restrict policy,
1968
- size_t hash,
1969
- Group::NonIterableBitMaskType mask_empty,
1970
- FindInfo target_group) {
1971
- ABSL_SWISSTABLE_ASSERT(!common.is_small());
1972
- const GrowthInfo growth_info = common.growth_info();
1973
- // When there are no deleted slots in the table
1974
- // and growth_left is positive, we can insert at the first
1975
- // empty slot in the probe sequence (target).
1976
- if (ABSL_PREDICT_FALSE(!growth_info.HasNoDeletedAndGrowthLeft())) {
1977
- return PrepareInsertLargeSlow(common, policy, hash);
1978
- }
1979
- PrepareInsertCommon(common);
1980
- common.growth_info().OverwriteEmptyAsFull();
1981
- target_group.offset += mask_empty.LowestBitSet();
1982
- target_group.offset &= common.capacity();
1983
- SetCtrl(common, target_group.offset, H2(hash), policy.slot_size);
1984
- common.infoz().RecordInsertMiss(hash, target_group.probe_length);
1985
- return target_group.offset;
1986
- }
1987
- } // namespace
1988
-
1989
- size_t PrepareInsertLarge(CommonFields& common,
1990
- const PolicyFunctions& __restrict policy, size_t hash,
1991
- Group::NonIterableBitMaskType mask_empty,
1992
- FindInfo target_group) {
1993
- // NOLINTNEXTLINE(misc-static-assert)
1994
- ABSL_SWISSTABLE_ASSERT(!SwisstableGenerationsEnabled());
1995
- return PrepareInsertLargeImpl(common, policy, hash, mask_empty, target_group);
1996
- }
1997
-
1998
- size_t PrepareInsertLargeGenerationsEnabled(
1999
- CommonFields& common, const PolicyFunctions& policy, size_t hash,
2000
- Group::NonIterableBitMaskType mask_empty, FindInfo target_group,
2001
- absl::FunctionRef<size_t(size_t)> recompute_hash) {
2002
- // NOLINTNEXTLINE(misc-static-assert)
2003
- ABSL_SWISSTABLE_ASSERT(SwisstableGenerationsEnabled());
2004
- if (common.should_rehash_for_bug_detection_on_insert()) {
2005
- // Move to a different heap allocation in order to detect bugs.
2006
- const size_t cap = common.capacity();
2007
- ResizeAllocatedTableWithSeedChange(
2008
- common, policy, common.growth_left() > 0 ? cap : NextCapacity(cap));
2009
- hash = recompute_hash(common.seed().seed());
2010
- std::tie(target_group, mask_empty) =
2011
- find_first_non_full_group(common, hash);
2012
- }
2013
- return PrepareInsertLargeImpl(common, policy, hash, mask_empty, target_group);
2014
- }
2015
-
2016
- namespace {
2017
- // Returns true if the following is true
2018
- // 1. OptimalMemcpySizeForSooSlotTransfer(left) >
2019
- // OptimalMemcpySizeForSooSlotTransfer(left - 1)
2020
- // 2. OptimalMemcpySizeForSooSlotTransfer(left) are equal for all i in [left,
2021
- // right].
2022
- // This function is used to verify that we have all the possible template
2023
- // instantiations for GrowFullSooTableToNextCapacity.
2024
- // With this verification the problem may be detected at compile time instead of
2025
- // link time.
2026
- constexpr bool VerifyOptimalMemcpySizeForSooSlotTransferRange(size_t left,
2027
- size_t right) {
2028
- size_t optimal_size_for_range = OptimalMemcpySizeForSooSlotTransfer(left);
2029
- if (optimal_size_for_range <= OptimalMemcpySizeForSooSlotTransfer(left - 1)) {
2030
- return false;
2031
- }
2032
- for (size_t i = left + 1; i <= right; ++i) {
2033
- if (OptimalMemcpySizeForSooSlotTransfer(i) != optimal_size_for_range) {
2034
- return false;
2035
- }
2036
- }
2037
- return true;
2038
- }
2039
- } // namespace
2040
-
2041
- // Extern template instantiation for inline function.
2042
- template size_t TryFindNewIndexWithoutProbing(size_t h1, size_t old_index,
2043
- size_t old_capacity,
2044
- ctrl_t* new_ctrl,
2045
- size_t new_capacity);
2046
-
2047
- // We need to instantiate ALL possible template combinations because we define
2048
- // the function in the cc file.
2049
- template size_t GrowSooTableToNextCapacityAndPrepareInsert<0, false>(
2050
- CommonFields&, const PolicyFunctions&, absl::FunctionRef<size_t(size_t)>,
2051
- bool);
2052
- template size_t GrowSooTableToNextCapacityAndPrepareInsert<
2053
- OptimalMemcpySizeForSooSlotTransfer(1), true>(
2054
- CommonFields&, const PolicyFunctions&, absl::FunctionRef<size_t(size_t)>,
2055
- bool);
2056
-
2057
- static_assert(VerifyOptimalMemcpySizeForSooSlotTransferRange(2, 3));
2058
- template size_t GrowSooTableToNextCapacityAndPrepareInsert<
2059
- OptimalMemcpySizeForSooSlotTransfer(3), true>(
2060
- CommonFields&, const PolicyFunctions&, absl::FunctionRef<size_t(size_t)>,
2061
- bool);
2062
-
2063
- static_assert(VerifyOptimalMemcpySizeForSooSlotTransferRange(4, 8));
2064
- template size_t GrowSooTableToNextCapacityAndPrepareInsert<
2065
- OptimalMemcpySizeForSooSlotTransfer(8), true>(
2066
- CommonFields&, const PolicyFunctions&, absl::FunctionRef<size_t(size_t)>,
2067
- bool);
2068
-
2069
- #if UINTPTR_MAX == UINT32_MAX
2070
- static_assert(MaxSooSlotSize() == 8);
2071
- #else
2072
- static_assert(VerifyOptimalMemcpySizeForSooSlotTransferRange(9, 16));
2073
- template size_t GrowSooTableToNextCapacityAndPrepareInsert<
2074
- OptimalMemcpySizeForSooSlotTransfer(16), true>(
2075
- CommonFields&, const PolicyFunctions&, absl::FunctionRef<size_t(size_t)>,
2076
- bool);
2077
- static_assert(MaxSooSlotSize() == 16);
2078
- #endif
2079
-
2080
- template void* AllocateBackingArray<BackingArrayAlignment(alignof(size_t)),
2081
- std::allocator<char>>(void* alloc,
2082
- size_t n);
2083
- template void DeallocateBackingArray<BackingArrayAlignment(alignof(size_t)),
2084
- std::allocator<char>>(
2085
- void* alloc, size_t capacity, ctrl_t* ctrl, size_t slot_size,
2086
- size_t slot_align, bool had_infoz);
2087
-
2088
- } // namespace container_internal
2089
- ABSL_NAMESPACE_END
2090
- } // namespace absl