re2 1.23.0 → 1.23.2

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 (280) hide show
  1. package/README.md +2 -0
  2. package/binding.gyp +3 -2
  3. package/package.json +5 -5
  4. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +25 -4
  5. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +6 -1
  6. package/vendor/abseil-cpp/CMakeLists.txt +2 -2
  7. package/vendor/abseil-cpp/MODULE.bazel +2 -2
  8. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +0 -1
  9. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -2
  10. package/vendor/abseil-cpp/absl/algorithm/container.h +191 -140
  11. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +818 -0
  12. package/vendor/abseil-cpp/absl/base/BUILD.bazel +44 -5
  13. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +42 -3
  14. package/vendor/abseil-cpp/absl/base/attributes.h +5 -1
  15. package/vendor/abseil-cpp/absl/base/call_once_test.cc +10 -10
  16. package/vendor/abseil-cpp/absl/base/casts.cc +61 -0
  17. package/vendor/abseil-cpp/absl/base/casts.h +128 -2
  18. package/vendor/abseil-cpp/absl/base/casts_test.cc +151 -0
  19. package/vendor/abseil-cpp/absl/base/config.h +13 -37
  20. package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  21. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +4 -0
  22. package/vendor/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
  23. package/vendor/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
  24. package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  25. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +13 -7
  26. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +16 -11
  27. package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +2 -1
  28. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +0 -9
  29. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -6
  30. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -1
  31. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  32. package/vendor/abseil-cpp/absl/base/macros.h +40 -17
  33. package/vendor/abseil-cpp/absl/base/nullability.h +1 -1
  34. package/vendor/abseil-cpp/absl/base/optimization.h +1 -3
  35. package/vendor/abseil-cpp/absl/base/options.h +1 -27
  36. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +5 -8
  37. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +4 -0
  38. package/vendor/abseil-cpp/absl/container/BUILD.bazel +195 -2
  39. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +136 -2
  40. package/vendor/abseil-cpp/absl/container/btree_map.h +56 -6
  41. package/vendor/abseil-cpp/absl/container/btree_set.h +52 -6
  42. package/vendor/abseil-cpp/absl/container/btree_test.cc +107 -1
  43. package/vendor/abseil-cpp/absl/container/chunked_queue.h +755 -0
  44. package/vendor/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
  45. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
  46. package/vendor/abseil-cpp/absl/container/fixed_array.h +4 -6
  47. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +16 -6
  48. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +1 -2
  49. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +16 -6
  50. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -2
  51. package/vendor/abseil-cpp/absl/container/inlined_vector.h +12 -4
  52. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +21 -0
  53. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +14 -5
  54. package/vendor/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
  55. package/vendor/abseil-cpp/absl/container/internal/common.h +51 -0
  56. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +7 -1
  57. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +11 -0
  58. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -2
  59. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +1 -2
  60. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -14
  61. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +11 -8
  62. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +3 -4
  63. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +23 -6
  64. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +31 -15
  65. package/vendor/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
  66. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +4 -12
  67. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -10
  68. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +149 -23
  69. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +120 -126
  70. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +4 -0
  71. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +8 -0
  72. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +14 -59
  73. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +111 -22
  74. package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +53 -112
  75. package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +10 -15
  76. package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +3 -3
  77. package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +45 -61
  78. package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +53 -112
  79. package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +6 -9
  80. package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +3 -3
  81. package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +25 -31
  82. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +666 -0
  83. package/vendor/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
  84. package/vendor/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
  85. package/vendor/abseil-cpp/absl/container/linked_hash_set.h +527 -0
  86. package/vendor/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
  87. package/vendor/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
  88. package/vendor/abseil-cpp/absl/container/node_hash_map.h +17 -6
  89. package/vendor/abseil-cpp/absl/container/node_hash_set.h +16 -5
  90. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +1 -2
  91. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +79 -0
  92. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +79 -0
  93. package/vendor/abseil-cpp/absl/copts/copts.py +17 -4
  94. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +67 -13
  95. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  96. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +31 -0
  97. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +34 -0
  98. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +2 -2
  99. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
  100. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
  101. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
  102. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  103. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  104. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +4 -0
  105. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -0
  106. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +1 -1
  107. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -7
  108. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  109. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +2 -1
  110. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
  111. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +2 -2
  112. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +35 -67
  113. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +3 -0
  114. package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +24 -1
  115. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +39 -15
  116. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  117. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +25 -40
  118. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  119. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +1 -0
  120. package/vendor/abseil-cpp/absl/flags/declare.h +9 -0
  121. package/vendor/abseil-cpp/absl/flags/flag.h +2 -1
  122. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  123. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +3 -2
  124. package/vendor/abseil-cpp/absl/flags/marshalling.cc +1 -16
  125. package/vendor/abseil-cpp/absl/flags/parse.cc +4 -2
  126. package/vendor/abseil-cpp/absl/flags/parse_test.cc +1 -1
  127. package/vendor/abseil-cpp/absl/flags/reflection.cc +4 -3
  128. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +4 -0
  129. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
  130. package/vendor/abseil-cpp/absl/functional/any_invocable.h +3 -1
  131. package/vendor/abseil-cpp/absl/functional/function_ref.h +125 -20
  132. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +122 -9
  133. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +13 -2
  134. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +42 -4
  135. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +11 -0
  136. package/vendor/abseil-cpp/absl/hash/hash_test.cc +5 -2
  137. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +184 -53
  138. package/vendor/abseil-cpp/absl/hash/internal/hash.h +116 -10
  139. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +43 -4
  140. package/vendor/abseil-cpp/absl/log/BUILD.bazel +2 -0
  141. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +35 -1
  142. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +59 -4
  143. package/vendor/abseil-cpp/absl/log/die_if_null.cc +3 -1
  144. package/vendor/abseil-cpp/absl/log/die_if_null.h +24 -3
  145. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +31 -1
  146. package/vendor/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  147. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +3 -1
  148. package/vendor/abseil-cpp/absl/log/internal/check_op.h +44 -18
  149. package/vendor/abseil-cpp/absl/log/internal/conditions.h +38 -35
  150. package/vendor/abseil-cpp/absl/log/internal/container.h +312 -0
  151. package/vendor/abseil-cpp/absl/log/internal/container_test.cc +254 -0
  152. package/vendor/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  153. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -2
  154. package/vendor/abseil-cpp/absl/log/internal/log_message.h +5 -1
  155. package/vendor/abseil-cpp/absl/log/internal/strip.h +30 -31
  156. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +19 -19
  157. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  158. package/vendor/abseil-cpp/absl/log/log.h +2 -2
  159. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +51 -0
  160. package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +46 -0
  161. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
  162. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
  163. package/vendor/abseil-cpp/absl/meta/internal/requires.h +67 -0
  164. package/vendor/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
  165. package/vendor/abseil-cpp/absl/meta/type_traits.h +42 -1
  166. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +14 -0
  167. package/vendor/abseil-cpp/absl/numeric/int128.h +41 -21
  168. package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  169. package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  170. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +52 -5
  171. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +1 -0
  172. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +1 -0
  173. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +18 -7
  174. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +1 -0
  175. package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +3 -5
  176. package/vendor/abseil-cpp/absl/random/internal/platform.h +0 -13
  177. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -1
  178. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +1 -27
  179. package/vendor/abseil-cpp/absl/status/BUILD.bazel +17 -0
  180. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +16 -0
  181. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +4 -2
  182. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +2 -2
  183. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +2 -1
  184. package/vendor/abseil-cpp/absl/status/status.cc +4 -0
  185. package/vendor/abseil-cpp/absl/status/status.h +5 -0
  186. package/vendor/abseil-cpp/absl/status/status_matchers.h +48 -0
  187. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +27 -0
  188. package/vendor/abseil-cpp/absl/status/status_test.cc +1 -0
  189. package/vendor/abseil-cpp/absl/status/statusor.h +1 -1
  190. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +101 -21
  191. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +99 -5
  192. package/vendor/abseil-cpp/absl/strings/ascii.h +9 -4
  193. package/vendor/abseil-cpp/absl/strings/cord.cc +15 -10
  194. package/vendor/abseil-cpp/absl/strings/cord.h +1 -1
  195. package/vendor/abseil-cpp/absl/strings/escaping.cc +126 -94
  196. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  197. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
  198. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +2 -0
  199. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +8 -8
  200. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +24 -18
  201. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +10 -16
  202. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +9 -7
  203. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
  204. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
  205. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
  206. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
  207. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -12
  208. package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  209. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +21 -7
  210. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +495 -8
  211. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -15
  212. package/vendor/abseil-cpp/absl/strings/numbers.cc +71 -8
  213. package/vendor/abseil-cpp/absl/strings/numbers.h +25 -12
  214. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +70 -0
  215. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
  216. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
  217. package/vendor/abseil-cpp/absl/strings/str_cat.cc +96 -91
  218. package/vendor/abseil-cpp/absl/strings/str_cat.h +17 -12
  219. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +4 -4
  220. package/vendor/abseil-cpp/absl/strings/str_split.h +1 -1
  221. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +1 -1
  222. package/vendor/abseil-cpp/absl/strings/string_view.h +8 -718
  223. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1 -1265
  224. package/vendor/abseil-cpp/absl/strings/substitute.cc +24 -24
  225. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +2 -3
  226. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +1 -0
  227. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  228. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +15 -5
  229. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2 -1
  230. package/vendor/abseil-cpp/absl/synchronization/mutex.h +47 -23
  231. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  232. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +2 -0
  233. package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +1 -2
  234. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +58 -103
  235. package/vendor/abseil-cpp/absl/time/clock.cc +18 -16
  236. package/vendor/abseil-cpp/absl/time/clock_test.cc +2 -2
  237. package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +144 -0
  238. package/vendor/abseil-cpp/absl/time/duration_test.cc +26 -29
  239. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +7 -1
  240. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +4 -2
  241. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  242. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
  243. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  244. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  245. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  246. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  247. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  248. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  249. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +9 -9
  250. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +12 -12
  251. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +47 -47
  252. package/vendor/abseil-cpp/absl/time/time.cc +4 -4
  253. package/vendor/abseil-cpp/absl/time/time.h +10 -10
  254. package/vendor/abseil-cpp/absl/time/time_test.cc +1 -0
  255. package/vendor/abseil-cpp/absl/types/compare.h +62 -61
  256. package/vendor/abseil-cpp/absl/types/compare_test.cc +3 -3
  257. package/vendor/abseil-cpp/absl/types/internal/span.h +1 -0
  258. package/vendor/abseil-cpp/absl/types/optional.h +2 -2
  259. package/vendor/abseil-cpp/absl/types/span.h +10 -2
  260. package/vendor/abseil-cpp/absl/utility/utility.h +13 -0
  261. package/vendor/abseil-cpp/ci/absl_alternate_options.h +0 -1
  262. package/vendor/abseil-cpp/ci/cmake_common.sh +1 -1
  263. package/vendor/abseil-cpp/ci/cmake_install_test.sh +6 -0
  264. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +1 -0
  265. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +2 -0
  266. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +1 -0
  267. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +1 -0
  268. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +1 -0
  269. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -0
  270. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +1 -0
  271. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +6 -0
  272. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +6 -0
  273. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +3 -2
  274. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +5 -0
  275. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -0
  276. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -0
  277. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +6 -1
  278. package/vendor/abseil-cpp/absl/base/internal/identity.h +0 -39
  279. package/vendor/abseil-cpp/absl/strings/string_view.cc +0 -257
  280. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +0 -380
@@ -32,31 +32,6 @@
32
32
  #include <zircon/types.h>
33
33
  #endif
34
34
 
35
- #if defined(_WIN32)
36
- // Include only when <icu.h> is available.
37
- // https://learn.microsoft.com/en-us/windows/win32/intl/international-components-for-unicode--icu-
38
- // https://devblogs.microsoft.com/oldnewthing/20210527-00/?p=105255
39
- #if defined(__has_include)
40
- #if __has_include(<icu.h>)
41
- #define USE_WIN32_LOCAL_TIME_ZONE
42
- #include <windows.h>
43
- #pragma push_macro("_WIN32_WINNT")
44
- #pragma push_macro("NTDDI_VERSION")
45
- // Minimum _WIN32_WINNT and NTDDI_VERSION to use ucal_getTimeZoneIDForWindowsID
46
- #undef _WIN32_WINNT
47
- #define _WIN32_WINNT 0x0A00 // == _WIN32_WINNT_WIN10
48
- #undef NTDDI_VERSION
49
- #define NTDDI_VERSION 0x0A000004 // == NTDDI_WIN10_RS3
50
- #include <icu.h>
51
- #pragma pop_macro("NTDDI_VERSION")
52
- #pragma pop_macro("_WIN32_WINNT")
53
- #include <timezoneapi.h>
54
-
55
- #include <atomic>
56
- #endif // __has_include(<icu.h>)
57
- #endif // __has_include
58
- #endif // _WIN32
59
-
60
35
  #include <array>
61
36
  #include <cstdint>
62
37
  #include <cstdlib>
@@ -66,87 +41,15 @@
66
41
  #include "absl/time/internal/cctz/src/time_zone_fixed.h"
67
42
  #include "absl/time/internal/cctz/src/time_zone_impl.h"
68
43
 
44
+ #if defined(_WIN32)
45
+ #include "absl/time/internal/cctz/src/time_zone_name_win.h"
46
+ #endif // _WIN32
47
+
69
48
  namespace absl {
70
49
  ABSL_NAMESPACE_BEGIN
71
50
  namespace time_internal {
72
51
  namespace cctz {
73
52
 
74
- namespace {
75
- #if defined(USE_WIN32_LOCAL_TIME_ZONE)
76
- // True if we have already failed to load the API.
77
- static std::atomic_bool g_ucal_getTimeZoneIDForWindowsIDUnavailable;
78
- static std::atomic<decltype(ucal_getTimeZoneIDForWindowsID)*>
79
- g_ucal_getTimeZoneIDForWindowsIDRef;
80
-
81
- std::string win32_local_time_zone() {
82
- // If we have already failed to load the API, then just give up.
83
- if (g_ucal_getTimeZoneIDForWindowsIDUnavailable.load()) {
84
- return "";
85
- }
86
-
87
- auto ucal_getTimeZoneIDForWindowsIDFunc =
88
- g_ucal_getTimeZoneIDForWindowsIDRef.load();
89
- if (ucal_getTimeZoneIDForWindowsIDFunc == nullptr) {
90
- // If we have already failed to load the API, then just give up.
91
- if (g_ucal_getTimeZoneIDForWindowsIDUnavailable.load()) {
92
- return "";
93
- }
94
-
95
- const HMODULE icudll =
96
- ::LoadLibraryExW(L"icu.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32);
97
-
98
- if (icudll == nullptr) {
99
- g_ucal_getTimeZoneIDForWindowsIDUnavailable.store(true);
100
- return "";
101
- }
102
-
103
- ucal_getTimeZoneIDForWindowsIDFunc =
104
- reinterpret_cast<decltype(ucal_getTimeZoneIDForWindowsID)*>(
105
- ::GetProcAddress(icudll, "ucal_getTimeZoneIDForWindowsID"));
106
-
107
- if (ucal_getTimeZoneIDForWindowsIDFunc == nullptr) {
108
- g_ucal_getTimeZoneIDForWindowsIDUnavailable.store(true);
109
- return "";
110
- }
111
- // store-race is not a problem here, because ::GetProcAddress() returns the
112
- // same address for the same function in the same DLL.
113
- g_ucal_getTimeZoneIDForWindowsIDRef.store(
114
- ucal_getTimeZoneIDForWindowsIDFunc);
115
-
116
- // We intentionally do not call ::FreeLibrary() here to avoid frequent DLL
117
- // loadings and unloading. As "icu.dll" is a system library, keeping it on
118
- // memory is supposed to have no major drawback.
119
- }
120
-
121
- DYNAMIC_TIME_ZONE_INFORMATION info = {};
122
- if (::GetDynamicTimeZoneInformation(&info) == TIME_ZONE_ID_INVALID) {
123
- return "";
124
- }
125
-
126
- std::array<UChar, 128> buffer;
127
- UErrorCode status = U_ZERO_ERROR;
128
- const auto num_chars_in_buffer = ucal_getTimeZoneIDForWindowsIDFunc(
129
- reinterpret_cast<const UChar*>(info.TimeZoneKeyName), -1, nullptr,
130
- buffer.data(), static_cast<int32_t>(buffer.size()), &status);
131
- if (status != U_ZERO_ERROR || num_chars_in_buffer <= 0 ||
132
- num_chars_in_buffer > static_cast<int32_t>(buffer.size())) {
133
- return "";
134
- }
135
-
136
- const int num_bytes_in_utf8 = ::WideCharToMultiByte(
137
- CP_UTF8, 0, reinterpret_cast<const wchar_t*>(buffer.data()),
138
- static_cast<int>(num_chars_in_buffer), nullptr, 0, nullptr, nullptr);
139
- std::string local_time_str;
140
- local_time_str.resize(static_cast<size_t>(num_bytes_in_utf8));
141
- ::WideCharToMultiByte(
142
- CP_UTF8, 0, reinterpret_cast<const wchar_t*>(buffer.data()),
143
- static_cast<int>(num_chars_in_buffer), &local_time_str[0],
144
- num_bytes_in_utf8, nullptr, nullptr);
145
- return local_time_str;
146
- }
147
- #endif // USE_WIN32_LOCAL_TIME_ZONE
148
- } // namespace
149
-
150
53
  std::string time_zone::name() const { return effective_impl().Name(); }
151
54
 
152
55
  time_zone::absolute_lookup time_zone::lookup(
@@ -261,8 +164,8 @@ time_zone local_time_zone() {
261
164
  zone = primary_tz.c_str();
262
165
  }
263
166
  #endif
264
- #if defined(USE_WIN32_LOCAL_TIME_ZONE)
265
- std::string win32_tz = win32_local_time_zone();
167
+ #if defined(_WIN32)
168
+ std::string win32_tz = GetWindowsLocalTimeZone();
266
169
  if (!win32_tz.empty()) {
267
170
  zone = win32_tz.c_str();
268
171
  }
@@ -0,0 +1,186 @@
1
+ // Copyright 2025 Google Inc. All Rights Reserved.
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/time/internal/cctz/src/time_zone_name_win.h"
16
+
17
+ #include "absl/base/config.h"
18
+
19
+ #if !defined(NOMINMAX)
20
+ #define NOMINMAX
21
+ #endif // !defined(NOMINMAX)
22
+ #include <windows.h>
23
+
24
+ #include <algorithm>
25
+ #include <atomic>
26
+ #include <cstddef>
27
+ #include <cstdint>
28
+ #include <limits>
29
+ #include <string>
30
+ #include <type_traits>
31
+ #include <utility>
32
+
33
+ namespace absl {
34
+ ABSL_NAMESPACE_BEGIN
35
+ namespace time_internal {
36
+ namespace cctz {
37
+ namespace {
38
+
39
+ // Define UChar as wchar_t here because Win32 APIs receive UTF-16 strings as
40
+ // wchar_t* instead of char16_t*. Using char16_t would require additional casts.
41
+ using UChar = wchar_t;
42
+
43
+ enum UErrorCode : std::int32_t {
44
+ U_ZERO_ERROR = 0,
45
+ U_BUFFER_OVERFLOW_ERROR = 15,
46
+ };
47
+
48
+ bool U_SUCCESS(UErrorCode error) { return error <= U_ZERO_ERROR; }
49
+
50
+ using ucal_getTimeZoneIDForWindowsID_func = std::int32_t(__cdecl*)(
51
+ const UChar* winid, std::int32_t len, const char* region, UChar* id,
52
+ std::int32_t id_capacity, UErrorCode* status);
53
+
54
+ std::atomic<bool> g_unavailable;
55
+ std::atomic<ucal_getTimeZoneIDForWindowsID_func>
56
+ g_ucal_getTimeZoneIDForWindowsID;
57
+
58
+ template <typename T>
59
+ static T AsProcAddress(HMODULE module, const char* name) {
60
+ static_assert(
61
+ std::is_pointer<T>::value &&
62
+ std::is_function<typename std::remove_pointer<T>::type>::value,
63
+ "T must be a function pointer type");
64
+ const auto proc_address = ::GetProcAddress(module, name);
65
+ return reinterpret_cast<T>(reinterpret_cast<void*>(proc_address));
66
+ }
67
+
68
+ std::wstring GetSystem32Dir() {
69
+ std::wstring result;
70
+ std::uint32_t len = std::max<std::uint32_t>(
71
+ static_cast<std::uint32_t>(std::min<size_t>(
72
+ result.capacity(), std::numeric_limits<std::uint32_t>::max())),
73
+ 1);
74
+ do {
75
+ result.resize(len);
76
+ len = ::GetSystemDirectoryW(&result[0], len);
77
+ } while (len > result.size());
78
+ result.resize(len);
79
+ return result;
80
+ }
81
+
82
+ ucal_getTimeZoneIDForWindowsID_func LoadIcuGetTimeZoneIDForWindowsID() {
83
+ // This function is intended to be lock free to avoid potential deadlocks
84
+ // with loader-lock taken inside LoadLibraryW. As LoadLibraryW and
85
+ // GetProcAddress are idempotent unless the DLL is unloaded, we just need to
86
+ // make sure global variables are read/written atomically, where
87
+ // memory_order_relaxed is also acceptable.
88
+
89
+ if (g_unavailable.load(std::memory_order_relaxed)) {
90
+ return nullptr;
91
+ }
92
+
93
+ {
94
+ const auto ucal_getTimeZoneIDForWindowsIDRef =
95
+ g_ucal_getTimeZoneIDForWindowsID.load(std::memory_order_relaxed);
96
+ if (ucal_getTimeZoneIDForWindowsIDRef != nullptr) {
97
+ return ucal_getTimeZoneIDForWindowsIDRef;
98
+ }
99
+ }
100
+
101
+ const std::wstring system32_dir = GetSystem32Dir();
102
+ if (system32_dir.empty()) {
103
+ g_unavailable.store(true, std::memory_order_relaxed);
104
+ return nullptr;
105
+ }
106
+
107
+ // Here LoadLibraryExW(L"icu.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32) does
108
+ // not work if "icu.dll" is already loaded from somewhere other than the
109
+ // system32 directory. Specifying the full path with LoadLibraryW is more
110
+ // reliable.
111
+ const std::wstring icu_dll_path = system32_dir + L"\\icu.dll";
112
+ const HMODULE icu_dll = ::LoadLibraryW(icu_dll_path.c_str());
113
+ if (icu_dll == nullptr) {
114
+ g_unavailable.store(true, std::memory_order_relaxed);
115
+ return nullptr;
116
+ }
117
+
118
+ const auto ucal_getTimeZoneIDForWindowsIDRef =
119
+ AsProcAddress<ucal_getTimeZoneIDForWindowsID_func>(
120
+ icu_dll, "ucal_getTimeZoneIDForWindowsID");
121
+ if (ucal_getTimeZoneIDForWindowsIDRef != nullptr) {
122
+ g_unavailable.store(true, std::memory_order_relaxed);
123
+ return nullptr;
124
+ }
125
+
126
+ g_ucal_getTimeZoneIDForWindowsID.store(ucal_getTimeZoneIDForWindowsIDRef,
127
+ std::memory_order_relaxed);
128
+
129
+ return ucal_getTimeZoneIDForWindowsIDRef;
130
+ }
131
+
132
+ // Convert wchar_t array (UTF-16) to UTF-8 string
133
+ std::string Utf16ToUtf8(const wchar_t* ptr, size_t size) {
134
+ if (size > std::numeric_limits<int>::max()) {
135
+ return std::string();
136
+ }
137
+ const int chars_len = static_cast<int>(size);
138
+ std::string result;
139
+ std::size_t len = std::max<std::size_t>(
140
+ std::min<size_t>(result.capacity(), std::numeric_limits<int>::max()), 1);
141
+ do {
142
+ result.resize(len);
143
+ // TODO: Switch to std::string::data() when we require C++17 or higher.
144
+ len = static_cast<std::size_t>(::WideCharToMultiByte(
145
+ CP_UTF8, WC_ERR_INVALID_CHARS, ptr, chars_len, &result[0],
146
+ static_cast<int>(len), nullptr, nullptr));
147
+ } while (len > result.size());
148
+ result.resize(len);
149
+ return result;
150
+ }
151
+
152
+ } // namespace
153
+
154
+ std::string GetWindowsLocalTimeZone() {
155
+ const auto getTimeZoneIDForWindowsID = LoadIcuGetTimeZoneIDForWindowsID();
156
+ if (getTimeZoneIDForWindowsID == nullptr) {
157
+ return std::string();
158
+ }
159
+
160
+ DYNAMIC_TIME_ZONE_INFORMATION info = {};
161
+ if (::GetDynamicTimeZoneInformation(&info) == TIME_ZONE_ID_INVALID) {
162
+ return std::string();
163
+ }
164
+
165
+ std::wstring result;
166
+ std::size_t len = std::max<std::size_t>(
167
+ std::min<size_t>(result.capacity(), std::numeric_limits<int>::max()), 1);
168
+ for (;;) {
169
+ UErrorCode status = U_ZERO_ERROR;
170
+ result.resize(len);
171
+ len = static_cast<std::size_t>(
172
+ getTimeZoneIDForWindowsID(info.TimeZoneKeyName, -1, nullptr, &result[0],
173
+ static_cast<int>(len), &status));
174
+ if (U_SUCCESS(status)) {
175
+ return Utf16ToUtf8(result.data(), len);
176
+ }
177
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
178
+ return std::string();
179
+ }
180
+ }
181
+ }
182
+
183
+ } // namespace cctz
184
+ } // namespace time_internal
185
+ ABSL_NAMESPACE_END
186
+ } // namespace absl
@@ -0,0 +1,37 @@
1
+ // Copyright 2025 Google Inc. All Rights Reserved.
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
+ #ifndef ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_NAME_WIN_H_
16
+ #define ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_NAME_WIN_H_
17
+
18
+ #include <string>
19
+
20
+ #include "absl/base/config.h"
21
+
22
+ namespace absl {
23
+ ABSL_NAMESPACE_BEGIN
24
+ namespace time_internal {
25
+ namespace cctz {
26
+
27
+ // Returns the local time zone ID in IANA format (e.g. "America/Los_Angeles"),
28
+ // or the empty string on failure. Not supported on Windows 10 1809 and earlier,
29
+ // where "icu.dll" is not available in the System32 directory.
30
+ std::string GetWindowsLocalTimeZone();
31
+
32
+ } // namespace cctz
33
+ } // namespace time_internal
34
+ ABSL_NAMESPACE_END
35
+ } // namespace absl
36
+
37
+ #endif // ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_NAME_WIN_H_
@@ -1 +1 @@
1
- 2025b
1
+ 2025c
@@ -3,22 +3,22 @@
3
3
  # This file is in the public domain, so clarified as of
4
4
  # 2009-05-17 by Arthur David Olson.
5
5
  #
6
- # From Paul Eggert (2023-09-06):
6
+ # From Paul Eggert (2025-07-01):
7
7
  # This file contains a table of two-letter country codes. Columns are
8
- # separated by a single tab. Lines beginning with '#' are comments.
8
+ # separated by a single tab. Lines beginning with ‘#’ are comments.
9
9
  # All text uses UTF-8 encoding. The columns of the table are as follows:
10
10
  #
11
11
  # 1. ISO 3166-1 alpha-2 country code, current as of
12
- # ISO/TC 46 N1108 (2023-04-05). See: ISO/TC 46 Documents
12
+ # ISO/TC 46 N1127 (2024-02-29). See: ISO/TC 46 Documents
13
13
  # https://www.iso.org/committee/48750.html?view=documents
14
14
  # 2. The usual English name for the coded region. This sometimes
15
15
  # departs from ISO-listed names, sometimes so that sorted subsets
16
- # of names are useful (e.g., "Samoa (American)" and "Samoa
17
- # (western)" rather than "American Samoa" and "Samoa"),
16
+ # of names are useful (e.g., Samoa (American) and Samoa
17
+ # (western) rather than American Samoa and Samoa),
18
18
  # sometimes to avoid confusion among non-experts (e.g.,
19
- # "Czech Republic" and "Turkey" rather than "Czechia" and "Türkiye"),
20
- # and sometimes to omit needless detail or churn (e.g., "Netherlands"
21
- # rather than "Netherlands (the)" or "Netherlands (Kingdom of the)").
19
+ # Czech Republic and Turkey rather than Czechia and Türkiye),
20
+ # and sometimes to omit needless detail or churn (e.g., Netherlands
21
+ # rather than Netherlands (the) or Netherlands (Kingdom of the)).
22
22
  #
23
23
  # The table is sorted by country code.
24
24
  #
@@ -71,7 +71,7 @@ CD Congo (Dem. Rep.)
71
71
  CF Central African Rep.
72
72
  CG Congo (Rep.)
73
73
  CH Switzerland
74
- CI Côte d'Ivoire
74
+ CI Côte dIvoire
75
75
  CK Cook Islands
76
76
  CL Chile
77
77
  CM Cameroon
@@ -2,15 +2,15 @@
2
2
  #
3
3
  # This file is in the public domain.
4
4
  #
5
- # From Paul Eggert (2018-06-27):
5
+ # From Paul Eggert (2025-05-15):
6
6
  # This file contains a table where each row stands for a timezone where
7
7
  # civil timestamps have agreed since 1970. Columns are separated by
8
- # a single tab. Lines beginning with '#' are comments. All text uses
8
+ # a single tab. Lines beginning with ‘#’ are comments. All text uses
9
9
  # UTF-8 encoding. The columns of the table are as follows:
10
10
  #
11
11
  # 1. The countries that overlap the timezone, as a comma-separated list
12
- # of ISO 3166 2-character country codes. See the file 'iso3166.tab'.
13
- # 2. Latitude and longitude of the timezone's principal location
12
+ # of ISO 3166 2-character country codes.
13
+ # 2. Latitude and longitude of the timezones principal location
14
14
  # in ISO 6709 sign-degrees-minutes-seconds format,
15
15
  # either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS,
16
16
  # first latitude (+ is north), then longitude (+ is east).
@@ -197,7 +197,7 @@ KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda
197
197
  KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay
198
198
  KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe
199
199
  KZ +4431+05016 Asia/Aqtau Mangghystaū/Mankistau
200
- KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur'yev
200
+ KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Guryev
201
201
  KZ +5113+05121 Asia/Oral West Kazakhstan
202
202
  LB +3353+03530 Asia/Beirut
203
203
  LK +0656+07951 Asia/Colombo
@@ -245,7 +245,7 @@ PE -1203-07703 America/Lima
245
245
  PF -1732-14934 Pacific/Tahiti Society Islands
246
246
  PF -0900-13930 Pacific/Marquesas Marquesas Islands
247
247
  PF -2308-13457 Pacific/Gambier Gambier Islands
248
- PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville
248
+ PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont dUrville
249
249
  PG -0613+15534 Pacific/Bougainville Bougainville
250
250
  PH +143512+1205804 Asia/Manila
251
251
  PK +2452+06703 Asia/Karachi
@@ -265,7 +265,7 @@ RO +4426+02606 Europe/Bucharest
265
265
  RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade
266
266
  RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad
267
267
  RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area
268
- # Mention RU and UA alphabetically. See "territorial claims" above.
268
+ # Mention RU and UA alphabetically. See territorial claims above.
269
269
  RU,UA +4457+03406 Europe/Simferopol Crimea
270
270
  RU +5836+04939 Europe/Kirov MSK+00 - Kirov
271
271
  RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd
@@ -353,20 +353,20 @@ ZA,LS,SZ -2615+02800 Africa/Johannesburg
353
353
  # The next section contains experimental tab-separated comments for
354
354
  # use by user agents like tzselect that identify continents and oceans.
355
355
  #
356
- # For example, the comment "#@AQ<tab>Antarctica/" means the country code
356
+ # For example, the comment ‘#@AQ<tab>Antarctica/’ means the country code
357
357
  # AQ is in the continent Antarctica regardless of the Zone name,
358
358
  # so Pacific/Auckland should be listed under Antarctica as well as
359
- # under the Pacific because its line's country codes include AQ.
359
+ # under the Pacific because its lines country codes include AQ.
360
360
  #
361
361
  # If more than one country code is affected each is listed separated
362
- # by commas, e.g., #@IS,SH<tab>Atlantic/". If a country code is in
362
+ # by commas, e.g., ‘#@IS,SH<tab>Atlantic/’. If a country code is in
363
363
  # more than one continent or ocean, each is listed separated by
364
- # commas, e.g., the second column of "#@CY,TR<tab>Asia/,Europe/".
364
+ # commas, e.g., the second column of ‘#@CY,TR<tab>Asia/,Europe/’.
365
365
  #
366
366
  # These experimental comments are present only for country codes where
367
367
  # the continent or ocean is not already obvious from the Zone name.
368
368
  # For example, there is no such comment for RU since it already
369
- # corresponds to Zone names starting with both "Europe/" and "Asia/".
369
+ # corresponds to Zone names starting with both Europe/’ and Asia/’.
370
370
  #
371
371
  #@AQ Antarctica/
372
372
  #@IS,SH Atlantic/