panic: kernel diagnostic assertion "pg->wire_count != NUM" failed: file "/syzkaller/managers/kasan/kernel/sys/uvm/uvm_pa

Status: upstream: reported on 2026/10/14 07:22
Reported-by: syzbot+dd08c36fd3364c299b17@syzkaller.appspotmail.com
First crash: 1d04h, last: 1d04h

Sample crash report:
panic: kernel WdiARaNgINGn:o SsPtLi c NaOsT sLerOWtEiRoEnD " pOgN- >SYwiSCrALeL_ c0 ou0 nEtX I!T =0  a0
" faStopped at    savectx+0x9e:   movl    $0,%gs:0x688
    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
*262974  44274      0         0x2          0    0  ifconfig
savectx() at savectx+0x9e
end trace frame: 0x0, count: 14
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports.  Insufficient info makes it difficult to find and fix bugs.
ddb{0}> 
ddb{0}> set $lines = 0
ddb{0}> set $maxwidth = 0
ddb{0}> show panic
*cpu1: kernel diagnostic assertion "pg->wire_count != 0" failed: file "/syzkaller/managers/kasan/kernel/sys/uvm/uvm_page.c", line 1207
ddb{0}> show kasan
kasan: no report recorded this boot
ddb{0}> trace
savectx() at savectx+0x9e
end trace frame: 0x0, count: -1
ddb{0}> show registers
rdi               0xffffffff854962a0    panicstr
rsi               0xffffffff84f7e4c0    __sancov_gen_cov_switch_values.22
rbp               0xffff800029919690
rbx                                0
rdx                                0
rcx               0xffffffff85093ff0    cpu_info_full_primary+0x1ff0
rax                             0x31
r8                0xffff800029919560
r9                               0x1
r10                                0
r11               0xffffffff8154eec0    x86_bus_space_io_read_1
r12                                0
r13                                0
r14               0xffff80003bb72558
r15                                0
rip               0xffffffff83dc934e    savectx+0x9e
cs                               0x8
rflags                          0x46
rsp               0xffff800029919610
ss                              0x10
savectx+0x9e:   movl    $0,%gs:0x688
ddb{0}> show proc
PROC (ifconfig) tid=262974 pid=44274 tcnt=1 stat=onproc
    flags process=2<EXEC> proc=0
    runpri=76, usrpri=77, slppri=32, nice=20
    wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0
    forw=0xffffffffffffffff, list=0xffff800029884008,0xffff80003bb73cc0
    process=0xffff8000298dc010 user=0xffff80002990e000, vmspace=0xffff800001829990
    estcpu=27, cpticks=2, pctcpu=0.0, user=0, sys=1, intr=0
ddb{0}> ps
   PID     TID   PPID   UID  S      PRLAGS     PFLAGS WAIT      COMMAND
 50273  211150  80579     0  2         0x2          0           sh
*44274  262974  58385     0  7         0x2          0           ifconfig
 90601  121845  96936     0  3           0       0x80 nanoslp   syz-executor
 90601  469070  96936     0  3           0  0x4000080 fsleep    syz-executor
 90601    6708  96936     0  2           0  0x4000000           syz-executor
 58385  364772  52259     0  3    0x100002       0x88 sigsusp   sh
 97342  209521  18576     0  3         0x2       0x80 wait      syz-executor
 52259  112343  18576     0  3         0x2       0x80 wait      syz-executor
 60015  319896      1     0  3    0x100003       0x80 ttyin     getty
 80579  334714  18576     0  2  0x10000002          0           syz-executor
 35127  179471  18576     0  3         0x2       0x80 piperd    syz-executor
 62307   15928  18576     0  3         0x2       0x80 nanoslp   syz-executor
 36588   45255  18576     0  3         0x2       0x80 piperd    syz-executor
 96936  475494  18576     0  3         0x2       0x80 nanoslp   syz-executor
 18576   86249      1     0  3         0x2       0x80 wait      syz-executor
 77167  340747      0     0  3     0x14000      0x200 bored     smr
 64274  277153      0     0  2     0x14000      0x200           zerothread
 89149  317201      0     0  3     0x14000      0x200 aiodoned  aiodoned
 69098  354694      0     0  3     0x14000      0x200 syncer    update
 73725  268000      0     0  3     0x14000      0x200 cleaner   cleaner
 67232  333619      0     0  2     0x14000      0x200           reaper
 69080  184058      0     0  3     0x14000      0x200 pgdaemon  pagedaemon
 53927  399474      0     0  3     0x14000      0x200 bored     viomb
 34483  337488      0     0  3     0x14000 0x40000200 acpi0     acpi0
 43561  299796      0     0  3     0x14000 0x40000200           idle1
 13602  271307      0     0  3     0x14000      0x200 bored     softnet1
 93060   37287      0     0  3     0x14000      0x200 bored     softnet0
 48048  435842      0     0  3     0x14000      0x200 smrbar    systqmp
 71988   77579      0     0  3     0x14000      0x200 bored     systq
 33846  242509      0     0  3     0x14000      0x200 tmoslp    softclockmp
 89159  367230      0     0  3     0x14000 0x40000200 tmoslp    softclock
 22004  327897      0     0  3     0x14000 0x40000200           idle0
     1  447119      0     0  3         0x2       0x80 wait      init
     0       0     -1     0  3     0x10000      0x200 scheduler swapper
ddb{0}> show all locks
CPU 0:
exclusive mutex &uvm.fpageqlock r = 0 (0xffffffff854c3868)
#0  witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0  witness_lock+0x632 sys/kern/subr_witness.c:1160
#1  mtx_enter+0x683 sys/kern/kern_lock.c:487
#2  uvm_pmr_freepages+0x225 sys/uvm/uvm_pmemrange.c:-1
#3  pmap_do_remove+0xe85 sys/arch/amd64/amd64/pmap.c:1982
#4  uvm_unmap_kill_entry_withlock+0x42f sys/uvm/uvm_map.c:1869
#5  uvm_unmap_remove+0x92a sys/uvm/uvm_map.c:2005
#6  uvmspace_exec+0x38c sys/uvm/uvm_map.c:3364
#7  sys_execve+0x1183 sys/kern/kern_exec.c:517
#8  syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#8  syscall+0x1089 sys/arch/amd64/amd64/trap.c:791
#9  Xsyscall+0x128
Process 44274 (ifconfig) thread 0xffff80003bb72558 (262974)
exclusive rwlock amaplk r = 0 (0xffff800001af7be0)
#0  witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0  witness_lock+0x632 sys/kern/subr_witness.c:1160
#1  rw_do_enter_write+0x53e sys/kern/kern_rwlock.c:320
#2  uvm_unmap_kill_entry_withlock+0x136 uvm_map_lock_entry sys/uvm/uvm_map.c:464 [inline]
#2  uvm_unmap_kill_entry_withlock+0x136 sys/uvm/uvm_map.c:1870
#3  uvm_unmap_remove+0x92a sys/uvm/uvm_map.c:2005
#4  uvmspace_exec+0x38c sys/uvm/uvm_map.c:3364
#5  sys_execve+0x1183 sys/kern/kern_exec.c:517
#6  syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#6  syscall+0x1089 sys/arch/amd64/amd64/trap.c:791
#7  Xsyscall+0x128
exclusive rwlock vmmaplk r = 0 (0xffff800001829a90)
#0  witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0  witness_lock+0x632 sys/kern/subr_witness.c:1160
#1  rw_do_enter_write+0x53e sys/kern/kern_rwlock.c:320
#2  vm_map_lock_ln+0x19f sys/uvm/uvm_map.c:5170
#3  uvmspace_exec+0x2e7 sys/uvm/uvm_map.c:3345
#4  sys_execve+0x1183 sys/kern/kern_exec.c:517
#5  syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#5  syscall+0x1089 sys/arch/amd64/amd64/trap.c:791
#6  Xsyscall+0x128
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8558dbc0)
#0  witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0  witness_lock+0x632 sys/kern/subr_witness.c:1160
#1  syscall+0x1048 mi_syscall sys/sys/syscall_mi.h:175 [inline]
#1  syscall+0x1048 sys/arch/amd64/amd64/trap.c:791
#2  Xsyscall+0x128
exclusive mutex &uvm.fpageqlock r = 0 (0xffffffff854c3868)
#0  witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0  witness_lock+0x632 sys/kern/subr_witness.c:1160
#1  mtx_enter+0x683 sys/kern/kern_lock.c:487
#2  uvm_pmr_freepages+0x225 sys/uvm/uvm_pmemrange.c:-1
#3  pmap_do_remove+0xe85 sys/arch/amd64/amd64/pmap.c:1982
#4  uvm_unmap_kill_entry_withlock+0x42f sys/uvm/uvm_map.c:1869
#5  uvm_unmap_remove+0x92a sys/uvm/uvm_map.c:2005
#6  uvmspace_exec+0x38c sys/uvm/uvm_map.c:3364
#7  sys_execve+0x1183 sys/kern/kern_exec.c:517
#8  syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
#8  syscall+0x1089 sys/arch/amd64/amd64/trap.c:791
#9  Xsyscall+0x128
Process 48048 (systqmp) thread 0xffff800045ffe298 (435842)
shared rwlock systqmp r = 0 (0xffffffff8540d1b8)
#0  witness_lock+0x632 stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0  witness_lock+0x632 sys/kern/subr_witness.c:1160
#1  taskq_thread+0x1ba sys/kern/kern_task.c:442
#2  proc_trampoline+0x10
ddb{0}> show malloc
           Type InUse  MemUse  HighUse   Limit  Requests Type Lim
         devbuf 11059  12175K   12394K 166960K     12164        0
            pcb    18     24K      24K 166960K        22        0
         rtable   233     15K      30K 166960K       395        0
             pf    37     23K      26K 166960K        53        0
         ifaddr    44     12K      13K 166960K        54        0
        ifgroup    59      2K       2K 166960K        67        0
         sysctl     3      1K      13K 166960K         7        0
       counters    72     43K      43K 166960K        76        0
       ioctlops     1      0K     194K 166960K      1498        0
          mount     1      1K       1K 166960K         1        0
            log     0      0K       0K 166960K         4        0
         vnodes  1333     86K      86K 166960K      1425        0
      UFS quota     1     36K      36K 166960K         1        0
      UFS mount     5     44K      44K 166960K         5        0
            shm     2      2K       6K 166960K         5        0
         VM map     2      1K       1K 166960K         2        0
            sem     7      0K       0K 166960K         7        0
        dirhash    12      2K       2K 166960K        12        0
           ACPI  1692    195K     405K 166960K     12470        0
      file desc    19     58K     121K 166960K       220        0
           proc   100     50K     198K 166960K       646        0
        subproc    90     11K      11K 166960K       108        0
    NFS srvsock     1      0K       0K 166960K         1        0
     NFS daemon     1     20K      20K 166960K         1        0
       in_multi    99      7K       8K 166960K       121        0
    ether_multi     1      0K       0K 166960K         1        0
            mrt     7      0K       0K 166960K        12        0
    ISOFS mount     1     36K      36K 166960K         1        0
  MSDOSFS mount     1     20K      20K 166960K         1        0
           ttys    43    303K     303K 166960K        43        0
           exec    22      5K      17K 166960K       422        0
   fusefs mount     1     36K      36K 166960K         1        0
            tdb     3      1K       1K 166960K         3        0
        VM swap    14    124K     124K 166960K        15        0
       UVM amap   456    177K     378K 166960K      3651        0
       UVM aobj     6      4K       4K 166960K         7        0
     pinsyscall   112    198K     386K 166960K      1445        0
        memdesc     1      4K       4K 166960K         1        0
    crypto data     1      1K       1K 166960K         1        0
    ip6_options     0      0K       0K 166960K         2        0
            NDP    19      0K       2K 166960K        35        0
           temp   240   9275K    9470K 166960K      3912        0
         kqueue    12     39K      84K 166960K        36        0
      SYN cache     2     16K      16K 166960K         2        0
ddb{0}> show all pools
Name      Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
plcache    128       28    0        0     1     0     1     1     0     8    0
rtpcb      120       36    0       36     1     0     1     1     0     8    1
rtentry    176      132    0       56     6     0     6     6     0     8    0
unpcb      144       76    0       76     1     0     1     1     0     8    1
syncache   336        4    0        4     1     1     0     1     0     8    0
tcpcb      736       12    0       11     1     0     1     1     0     8    0
arp        136       22    0       10     1     0     1     1     0     8    0
inpcb      328      103    0      102     2     0     2     2     0     8    1
nd6        152       29    0       15     1     0     1     1     0     8    0
kcovpl      48       12    0        4     1     0     1     1     0     8    0
pfosfp      40     1428    0     1005     5     0     5     5     0     8    0
pfosfpen   112     1428    0      714    21     0    21    21     0     8    0
pfstitem    24       32    0        0     1     0     1     1     0     8    0
pfstkey    128       32    0        0     2     0     2     2     0     8    0
pfstate    448       32    0        0     4     0     4     4     0     8    0
pfrule     1360      24    0       19     2     1     1     2     0     8    0
art_heap8  4096       1    0        0     1     0     1     1     0     8    0
art_heap4  256      540    0      176    29     0    29    29     0     8    4
art_table   40      541    0      176     5     0     5     5     0     8    0
art_node    32      132    0       53     1     0     1     1     0     8    0
semapl      72        5    0        2     1     0     1     1     0     8    0
shmpl      120        4    0        2     1     0     1     1     0     8    0
dirhash    1024      17    0        0     3     0     3     3     0     8    0
dino2pl    256     1649    0      175    93     0    93    93     0     8    0
ffsino     296     1649    0      175   114     0   114   114     0     8    0
nchpl      144     1903    0      192    64     0    64    64     0     8    0
vnodes     216     1787    0        0   100     0   100   100     0     8    0
namei      1024    7280    0     7280     6     2     4     4     0     8    4
percpumem   16       54    0        5     1     0     1     1     0     8    0
kstatmem   264       33    0       10     2     0     2     2     0     8    0
scxspl     216     7050    0     7050     6     3     3     3     1     8    3
plimitpl   152       44    0       33     1     0     1     1     0     8    0
sigapl     424      530    0      496     7     0     7     7     0     8    1
knotepl    120       54    0        0     2     0     2     2     0     8    0
kqueuepl   224       48    0       47     1     0     1     1     0     8    0
pipepl     344      145    0      118     3     0     3     3     0     8    0
fdescpl    528      514    0      498     3     0     3     3     0     8    0
filepl     160     2170    0     2022    12     0    12    12     0     8    2
lockfpl    104       15    0       15     1     0     1     1     0     8    1
lockfspl    48        7    0        7     1     0     1     1     0     8    1
sessionpl  144       30    0       27     1     0     1     1     0     8    0
pgrppl      48       42    0       31     1     0     1     1     0     8    0
ucredpl    104      131    0      128     1     0     1     1     0     8    0
zombiepl   144      499    0      496     1     0     1     1     0     8    0
processpl  1240     530    0      496     5     0     5     5     0     8    1
procpl     664      619    0      583     6     0     6     6     0     8    1
sosppl     176        2    0        2     1     0     1     1     0     8    1
sockpl     752      216    0      215     4     0     4     4     0     8    3
mcl8k      8192       2    0        0     1     0     1     1     0     8    0
mcl4k      4096     129    0        0    17     0    17    17     0     8    0
mcl2k      2048      24    0        0     3     0     3     3     0     8    0
mextrefs    64       24    0        0     1     0     1     1     0     8    0
mtagpl      96        3    0        0     1     0     1     1     0     8    0
mbufpl     256      242    0        0    16     0    16    16     0     8    0
bufpl      272     4936    0      106   322     0   322   322     0     8    0
anonpl      32     6014    0        0    49     0    49    49     0   222    0
amapchunkpl 152   10496    0     9996    20     0    20    20     0   158    0
amappl16   200     2295    0     2285    13     0    13    13     0     8   10
amappl15   192        7    0        7     1     1     0     1     0     8    0
amappl14   184      463    0      462     1     0     1     1     0     8    0
amappl13   176      127    0      126     1     0     1     1     0     8    0
amappl12   168      775    0      761     2     0     2     2     0     8    0
amappl11   160        4    0        4     1     1     0     1     0     8    0
amappl10   152       68    0       68     1     0     1     1     0     8    1
amappl9    144      273    0      273     1     1     0     1     0     8    0
amappl8    136      121    0      120     1     0     1     1     0     8    0
amappl7    128      152    0      150     1     0     1     1     0     8    0
amappl6    120      188    0      184     1     0     1     1     0     8    0
amappl5    112      106    0      106     1     0     1     1     0     8    1
amappl4    104      305    0      302     1     0     1     1     0     8    0
amappl3     96     1778    0     1736     3     0     3     3     0     8    1
amappl2     88      613    0      595     2     0     2     2     0     8    0
amappl1     80    10933    0    10826    15     0    15    15     0     8    7
amappl      88     2888    0     2803     4     0     4     4     0    92    0
uvmvnodes   80      102    0        0     3     0     3     3     0     8    0
dma4096    4096       1    0        1     1     1     0     1     0     8    0
dma1024    1024       1    0        0     1     0     1     1     0     8    0
dma256     256        6    0        6     1     1     0     1     0     8    0
dma128     128      253    0      253     1     1     0     1     0     8    0
dma64       64        6    0        6     1     1     0     1     0     8    0
dma32       32        7    0        7     1     1     0     1     0     8    0
dma16       16       18    0       17     1     0     1     1     0     8    0
aobjpl      72        6    0        2     1     0     1     1     0     8    0
uaddrrnd    24      514    0      497     1     0     1     1     0     8    0
uaddrbest   32        2    0        0     1     0     1     1     0     8    0
uaddr       24      514    0      497     1     0     1     1     0     8    0
vmmpekpl   168     6338    0     6303     3     0     3     3     0     8    0
vmmpepl    168    42858    0    42249    89     1    88    88     0   357   39
vmsppl     488      513    0      496     5     0     5     5     0     8    1
rwobjpl     80    16018    0    15634    24     0    24    24     0     8    4
pdppl      4096    1037    0      992   103    52    51    89     0     8    6
pvpl        32    22480    0        0   182     0   182   182     0   265    0
pmappl     256      513    0      496     3     0     3     3     0     8    1
extentpl    40       46    0       28     1     0     1     1     0     8    0
phpool     120      608    0       58    17     0    17    17     0     8    0
ddb{0}> machine ddbcpu 0
Invalid cpu 0
ddb{0}> trace
savectx() at savectx+0x9e
end trace frame: 0x0, count: -1
ddb{0}> machine ddbcpu 1
Stopped at      x86_ipi_db+0x19:        leave
x86_ipi_db(ffff800028fd3ff0) at x86_ipi_db+0x19 sys/arch/amd64/amd64/db_interface.c:412
x86_ipi_handler() at x86_ipi_handler+0x112 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
x86_bus_space_io_read_4(b008,0) at x86_bus_space_io_read_4+0x29 sys/arch/amd64/amd64/bus_space.c:689
acpitimer_delay(1) at acpitimer_delay+0x2a2 acpitimer_read sys/dev/acpi/acpitimer.c:142 [inline]
acpitimer_delay(1) at acpitimer_delay+0x2a2 sys/dev/acpi/acpitimer.c:125
comcnputc(800,61) at comcnputc+0x342 sys/dev/ic/com.c:1274
cnputc(61) at cnputc+0xaf sys/dev/cons.c:218
db_putchar(61) at db_putchar+0x29f sys/ddb/db_output.c:155
kprintf() at kprintf+0x2afa sys/kern/subr_prf.c:1066
db_printf(ffffffff847d27c0) at db_printf+0x102 sys/kern/subr_prf.c:-1
panic(ffffffff847d2720) at panic+0x17d sys/kern/subr_prf.c:217
__assert(ffffffff8492a340,ffffffff8492a360,4b7,ffffffff8492ac80) at __assert+0x48
uvm_pageunwire(fffffd80082530c0) at uvm_pageunwire+0x1d8 sys/uvm/uvm_page.c:1206
uvm_fault_unwire_locked(ffff8000018293d8,f46efe63000,f46f0262000) at uvm_fault_unwire_locked+0x4a8 sys/uvm/uvm_fault.c:1794
end trace frame: 0xffff80002990d8b0, count: 0
ddb{1}> trace
x86_ipi_db(ffff800028fd3ff0) at x86_ipi_db+0x19 sys/arch/amd64/amd64/db_interface.c:412
x86_ipi_handler() at x86_ipi_handler+0x112 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
x86_bus_space_io_read_4(b008,0) at x86_bus_space_io_read_4+0x29 sys/arch/amd64/amd64/bus_space.c:689
acpitimer_delay(1) at acpitimer_delay+0x2a2 acpitimer_read sys/dev/acpi/acpitimer.c:142 [inline]
acpitimer_delay(1) at acpitimer_delay+0x2a2 sys/dev/acpi/acpitimer.c:125
comcnputc(800,61) at comcnputc+0x342 sys/dev/ic/com.c:1274
cnputc(61) at cnputc+0xaf sys/dev/cons.c:218
db_putchar(61) at db_putchar+0x29f sys/ddb/db_output.c:155
kprintf() at kprintf+0x2afa sys/kern/subr_prf.c:1066
db_printf(ffffffff847d27c0) at db_printf+0x102 sys/kern/subr_prf.c:-1
panic(ffffffff847d2720) at panic+0x17d sys/kern/subr_prf.c:217
__assert(ffffffff8492a340,ffffffff8492a360,4b7,ffffffff8492ac80) at __assert+0x48
uvm_pageunwire(fffffd80082530c0) at uvm_pageunwire+0x1d8 sys/uvm/uvm_page.c:1206
uvm_fault_unwire_locked(ffff8000018293d8,f46efe63000,f46f0262000) at uvm_fault_unwire_locked+0x4a8 sys/uvm/uvm_fault.c:1794
uvm_unmap_kill_entry_withlock(ffff8000018293d8,ffff8000017052a8,0) at uvm_unmap_kill_entry_withlock+0xc6 sys/uvm/uvm_map.c:1866
uvm_map_teardown(ffff8000018293d8) at uvm_map_teardown+0x1d7 uvm_map_addr_RBT_LEFT sys/uvm/uvm_map.h:-1 [inline]
uvm_map_teardown(ffff8000018293d8) at uvm_map_teardown+0x1d7 sys/uvm/uvm_map.c:2497
exit1(ffff80003bb722c0,0,0,1) at exit1+0xa58 sys/kern/kern_exit.c:262
sys_exit(ffff80003bb722c0,ffff80002990dc00,ffff80002990db60) at sys_exit+0x4a
syscall(ffff80002990dc00) at syscall+0x1089 mi_syscall sys/sys/syscall_mi.h:176 [inline]
syscall(ffff80002990dc00) at syscall+0x1089 sys/arch/amd64/amd64/trap.c:791
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7776043af1d0, count: -20
ddb{1}> 

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/10/14 07:22 https://github.com/blackgnezdo/openbsd-src.git syzbot-kasan bacaf78497a8 7321cd29 .config console log report [disk image] [bsd.gdb] [kernel image] ci-openbsd-kasan panic: kernel diagnostic assertion "pg->wire_count != NUM" failed: file "/syzkaller/managers/kasan/kernel/sys/uvm/uvm_pa
* Struck through repros no longer work on HEAD.