opnsense-src/contrib/llvm-project/libcxx/include
Jordan Gordeev a0d22d7934 libc++: fix compiling <locale> with -fmodules
In /usr/include/c++/v1/__locale_dir/locale_base_api.h, xlocale.h is
included without first including stdio.h and stdlib.h, which causes
functions like strtoll_l() or sscanf_l() to not be declared.

When compiling with -fmodules, locale_base_api.h is processed separately
due to a declaration in /usr/include/c++/v1/module.modulemap, and this
will cause errors due to the above undeclared symbols.

Meanwhile, upstream has substantially reorganized this part of libc++'s
headers, so apply a minimalistic workaround: specifically when compiling
with -fmodules, add includes of stdio.h and stdlib.h.

PR:		286342
Approved by:	re (cperciva)
MFC after:	1 week

(cherry picked from commit c809b0184d)
(cherry picked from commit cab029073dc6cb5814df44556e585b8fdb1c9846)
2025-05-28 18:26:27 +02:00
..
__algorithm Merge llvm-project release/19.x llvmorg-19.1.0-rc4-0-g0c641568515a 2024-12-01 12:17:14 +01:00
__atomic Merge llvm-project release/19.x llvmorg-19.1.0-rc2-0-gd033ae172d1c 2024-12-01 12:17:12 +01:00
__bit Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8 2024-12-01 12:17:13 +01:00
__charconv Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__chrono Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__compare Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__concepts Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__condition_variable Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__configuration Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__coroutine Merge llvm-project main llvmorg-18-init-18359-g93248729cfae 2024-04-19 23:14:13 +02:00
__debug_utils Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__exception Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__expected Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__filesystem Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__format libcxx-compat: revert llvmorg-19-init-8667-g472b612ccbed: 2024-12-01 12:17:10 +01:00
__functional Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__fwd Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__ios Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
__iterator Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2 2024-12-01 12:17:07 +01:00
__locale_dir libc++: fix compiling <locale> with -fmodules 2025-05-28 18:26:27 +02:00
__math Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8 2024-12-01 12:17:13 +01:00
__mdspan Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__memory Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8 2024-12-01 12:17:13 +01:00
__memory_resource Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__mutex Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__numeric Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__ostream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__pstl Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__random Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__ranges Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__stop_token Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__string Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__system_error Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__thread Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__tuple libcxx-compat: revert llvmorg-19-init-17473-g69fecaa1a455: 2024-12-01 12:17:10 +01:00
__type_traits libcxx-compat: revert llvmorg-19-init-4003-g55357160d0e1: 2024-12-01 12:17:11 +01:00
__utility Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__variant Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
experimental Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ext Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__assert Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__bit_reference Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2 2024-12-01 12:17:07 +01:00
__config Merge llvm-project release/19.x llvmorg-19.1.7-0-gcd708029e0b2 2025-01-19 12:05:53 +01:00
__hash_table Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__locale Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__mbstate_t.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
__node_handle Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__split_buffer Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__std_clang_module Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fb 2024-04-19 23:12:03 +02:00
__std_mbstate_t.h Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51 2024-01-07 18:46:17 +01:00
__tree Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
__undef_macros Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51 2024-01-07 18:46:17 +01:00
__verbose_abort Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
algorithm Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
any Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
array Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
atomic Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
barrier Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
bit Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
bitset Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cassert Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ccomplex Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cctype Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cerrno Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cfenv Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cfloat Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
charconv Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
chrono Merge llvm-project release/19.x llvmorg-19.1.0-0-ga4bf6cd7cfb1 2024-12-01 12:17:14 +01:00
cinttypes Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ciso646 Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
climits Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
clocale Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cmath Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2 2024-12-01 12:17:07 +01:00
codecvt Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
compare Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
complex Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8 2024-12-01 12:17:13 +01:00
complex.h Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41 2023-06-22 20:20:56 +02:00
concepts Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
condition_variable Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
coroutine Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
csetjmp Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
csignal Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cstdarg Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cstdbool Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cstddef Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cstdint Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cstdio Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cstdlib libcxx cstdlib, cwchar: avoid using long long functions if not 2024-12-01 12:17:08 +01:00
cstring Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ctgmath Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ctime Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ctype.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
cuchar Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
cwchar libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83: 2024-12-01 12:17:11 +01:00
cwctype Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
deque Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2 2024-12-01 12:17:07 +01:00
errno.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
exception Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
execution libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83: 2024-12-01 12:17:11 +01:00
expected Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
fenv.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
filesystem Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
float.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
format Merge llvm-project release/19.x llvmorg-19.1.0-rc4-0-g0c641568515a 2024-12-01 12:17:14 +01:00
forward_list Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
fstream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
functional Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
future Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
initializer_list Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
inttypes.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
iomanip Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ios Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
iosfwd Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
iostream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
istream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
iterator Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
latch Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
limits Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
list Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
locale Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2 2024-12-01 12:17:07 +01:00
locale.h Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
map Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
math.h Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
mdspan Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
memory Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
memory_resource Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
module.modulemap libcxx-compat: revert llvmorg-19-init-17727-g0eebb48fcfbc: 2024-12-01 12:17:10 +01:00
mutex Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
new Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
numbers Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
numeric Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
optional Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8 2024-12-01 12:17:13 +01:00
ostream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
print Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
queue Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
random Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ranges Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
ratio Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
regex Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
scoped_allocator Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
semaphore Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
set Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
shared_mutex Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
source_location Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fb 2024-04-19 23:12:03 +02:00
span Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8 2024-12-01 12:17:13 +01:00
sstream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
stack Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
stdatomic.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
stdbool.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
stddef.h Merge llvm-project release/18.x llvmorg-18.1.4-0-ge6c3289804a6 2024-04-23 19:33:06 +02:00
stdexcept Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
stdint.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
stdio.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
stdlib.h Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
stop_token Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
streambuf Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
string Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2 2024-12-01 12:17:07 +01:00
string.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
string_view Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
strstream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
syncstream Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
system_error Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
tgmath.h Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41 2023-06-22 20:20:56 +02:00
thread Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
tuple Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
type_traits libcxx-compat: revert llvmorg-19-init-17727-g0eebb48fcfbc: 2024-12-01 12:17:10 +01:00
typeindex Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
typeinfo Merge llvm-project release/19.x llvmorg-19.1.0-rc2-0-gd033ae172d1c 2024-12-01 12:17:12 +01:00
uchar.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
unordered_map Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
unordered_set Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
utility Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
valarray Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
variant Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
vector Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0 2024-12-01 12:16:52 +01:00
version Merge llvm-project release/19.x llvmorg-19.1.2-0-g7ba7d8e2f7b6 2024-12-01 12:17:15 +01:00
wchar.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00
wctype.h Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a 2024-04-19 23:12:22 +02:00