Dear Linux kernel developers and maintainers,
We are writing to report a general protection fault discovered in the
xfs subsystem with our generated syzkaller specifications. This issue
is reproducible on the latest version of linux (v6.19-rc6, commit
24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from
kernel is listed below (formatted by syz-symbolize):
---
loop0: detected capacity change from 0 to 32768
XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
XFS (loop0): Ending clean mount
XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line
309, on filesystem "loop0"
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]
CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701
Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe
48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f
b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
RSP: 0018:ffffc9000854f360 EFLAGS: 00010206
RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00
RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002
R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880
FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0
PKRU: 55555554
Call Trace:
<TASK>
xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930
xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x45a879
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48
89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d
01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879
RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005
RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005
R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990
R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701
Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe
48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f
b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
RSP: 0018:ffffc9000854f360 EFLAGS: 00010206
RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00
RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002
R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880
FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0
PKRU: 55555554
----------------
Code disassembly (best guess):
0: f2 00 66 43 repnz add %ah,0x43(%rsi)
4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1)
b: c6
c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax
12: 44 39 fe cmp %r15d,%esi
15: 48 89 5c 24 40 mov %rbx,0x40(%rsp)
1a: 48 83 c3 48 add $0x48,%rbx
1e: 48 89 d8 mov %rbx,%rax
21: 48 c1 e8 03 shr $0x3,%rax
25: 48 89 44 24 30 mov %rax,0x30(%rsp)
* 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction
2f: 84 c0 test %al,%al
31: 0f 85 d6 11 00 00 jne 0x120d
37: 44 0f b6 33 movzbl (%rbx),%r14d
3b: 41 ff ce dec %r14d
3e: bf .byte 0xbf
3f: 53 push %rbx
---
The root cause of this issue is that in xchk_btree(), where the
argument cur can be NULL but the function assume cur is not NULL,
leading to a NULL pointer dereference when accessing member
(https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701).
We can add a NULL check at the beginning of xchk_btree() to fix this issue:
```
--- a/fs/xfs/scrub/btree.c
+++ b/fs/xfs/scrub/btree.c
@@ -693,6 +693,9 @@ xchk_btree(
int level;
int error = 0;
+ if (!cur)
+ return -EINVAL;
+
/*
* Allocate the btree scrub context from the heap, because this
* structure can get rather large. Don't let a caller feed us a
```
After applying changes above and re-running reproducer, another issues
is triggered:
---
TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner
XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
XFS (loop6): Ending clean mount
==================================================================
BUG: KASAN: slab-use-after-free in
xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401
Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096
CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty
#30 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0x17e/0x810 mm/kasan/report.c:482
kasan_report+0x147/0x180 mm/kasan/report.c:595
xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401
xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797
xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925
xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f71bddb459d
Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48
89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d
01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d
RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005
RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000
</TASK>
Allocated by task 14096:
kasan_save_stack mm/kasan/common.c:57 [inline]
kasan_save_track+0x3e/0x80 mm/kasan/common.c:78
unpoison_slab_object mm/kasan/common.c:340 [inline]
__kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366
kasan_slab_alloc include/linux/kasan.h:253 [inline]
slab_post_alloc_hook mm/slub.c:4953 [inline]
slab_alloc_node mm/slub.c:5263 [inline]
kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270
xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline]
xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485
xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612
xchk_ag_init fs/xfs/scrub/common.c:698 [inline]
xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943
xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35
xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709
xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Freed by task 14096:
kasan_save_stack mm/kasan/common.c:57 [inline]
kasan_save_track+0x3e/0x80 mm/kasan/common.c:78
kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584
poison_slab_object mm/kasan/common.c:253 [inline]
__kasan_slab_free+0x58/0x80 mm/kasan/common.c:285
kasan_slab_free include/linux/kasan.h:235 [inline]
slab_free_hook mm/slub.c:2540 [inline]
slab_free mm/slub.c:6670 [inline]
kmem_cache_free+0x197/0x620 mm/slub.c:6781
xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351
xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190
xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395
xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797
xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925
xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
The buggy address belongs to the object at ffff88806af035c8
which belongs to the cache xfs_bnobt_cur of size 232
The buggy address is located 16 bytes inside of
freed 232-byte region [ffff88806af035c8, ffff88806af036b0)
The buggy address belongs to the physical page:
page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03
ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff)
page_type: f5(slab)
raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003
raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Unmovable, gfp_mask
0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP),
pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822
set_page_owner include/linux/page_owner.h:32 [inline]
post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884
prep_new_page mm/page_alloc.c:1892 [inline]
get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945
__alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240
alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486
alloc_slab_page mm/slub.c:3075 [inline]
allocate_slab+0x86/0x3b0 mm/slub.c:3248
new_slab mm/slub.c:3302 [inline]
___slab_alloc+0xe70/0x1860 mm/slub.c:4656
__slab_alloc+0x65/0x100 mm/slub.c:4779
__slab_alloc_node mm/slub.c:4855 [inline]
slab_alloc_node mm/slub.c:5251 [inline]
kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270
xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline]
xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511
xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149
__xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047
xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555
xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595
xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707
xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741
xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242
page last free pid 785 tgid 785 stack trace:
reset_page_owner include/linux/page_owner.h:25 [inline]
free_pages_prepare mm/page_alloc.c:1433 [inline]
__free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973
vfree+0x25a/0x400 mm/vmalloc.c:3466
delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385
process_one_work kernel/workqueue.c:3257 [inline]
process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340
worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421
kthread+0x711/0x8a0 kernel/kthread.c:463
ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
Memory state around the buggy address:
ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb
ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb
^
ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb
==================================================================
---
I also analyzed the root cause of this issue. In
xchk_btree_check_block_owner(), bs->cur is an alias for
bs->sc->sa.bnocur (or rmap_cur,
https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400).
The issue occurs when error injection triggers a failure path:
1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space()
2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a
non-zero error due to error injection
3. Non-zero error causes xchk_should_check_xref() to free curpp (which
points to bs->sc->sa.bnocur).
4. Memory pointed to by bs->cur is freed.
Control returns to xchk_btree_check_block_owner(), which subsequently
accesses bs->cur->bc_ops, triggering the UAF.
P.S. this issue can also be triggered independently by syzkaller using
our generated specs.
To fix this issue, we can cache values of
xfs_btree_is_bno(bs->cur->bc_ops) and
xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function:
```
--- a/fs/xfs/scrub/btree.c
+++ b/fs/xfs/scrub/btree.c
@@ -371,6 +371,8 @@ xchk_btree_check_block_owner(
xfs_agnumber_t agno;
xfs_agblock_t agbno;
bool init_sa;
+ bool is_bno;
+ bool is_rmap;
int error = 0;
if (!bs->cur)
@@ -379,6 +381,9 @@ xchk_btree_check_block_owner(
agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr);
agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr);
+ is_bno = xfs_btree_is_bno(bs->cur->bc_ops);
+ is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops);
+
/*
* If the btree being examined is not itself a per-AG btree, initialize
* sc->sa so that we can check for the presence of an ownership record
@@ -398,11 +403,11 @@ xchk_btree_check_block_owner(
* have to nullify it (to shut down further block owner checks) if
* self-xref encounters problems.
*/
- if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops))
+ if (!bs->sc->sa.bno_cur && is_bno)
bs->cur = NULL;
xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo);
- if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops))
+ if (!bs->sc->sa.rmap_cur && is_rmap)
bs->cur = NULL;
out_free:
```
After applying above changes, reproducer ran for ~35 minutes without
triggering any issues.
If above solutions are acceptable, we are happy to submit patches :)
The kernel console output, kernel config, syzkaller reproducer, and C
reproducer are also attached to help with analysis.
Please let me know if any further information is required.
Best Regards,
Jiaming Zhang
// autogenerated by syzkaller (https://github.com/google/syzkaller)
#define _GNU_SOURCE
#include <arpa/inet.h>
#include <dirent.h>
#include <endian.h>
#include <errno.h>
#include <fcntl.h>
#include <net/if.h>
#include <netinet/in.h>
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/prctl.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
#include <linux/genetlink.h>
#include <linux/if_addr.h>
#include <linux/if_link.h>
#include <linux/in6.h>
#include <linux/loop.h>
#include <linux/neighbour.h>
#include <linux/net.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/veth.h>
#ifndef __NR_memfd_create
#define __NR_memfd_create 319
#endif
static unsigned long long procid;
static __thread int clone_ongoing;
static __thread int skip_segv;
static __thread jmp_buf segv_env;
static void segv_handler(int sig, siginfo_t* info, void* ctx)
{
if (__atomic_load_n(&clone_ongoing, __ATOMIC_RELAXED) != 0) {
exit(sig);
}
uintptr_t addr = (uintptr_t)info->si_addr;
const uintptr_t prog_start = 1 << 20;
const uintptr_t prog_end = 100 << 20;
int skip = __atomic_load_n(&skip_segv, __ATOMIC_RELAXED) != 0;
int valid = addr < prog_start || addr > prog_end;
if (skip && valid) {
_longjmp(segv_env, 1);
}
exit(sig);
}
static void install_segv_handler(void)
{
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_IGN;
syscall(SYS_rt_sigaction, 0x20, &sa, NULL, 8);
syscall(SYS_rt_sigaction, 0x21, &sa, NULL, 8);
memset(&sa, 0, sizeof(sa));
sa.sa_sigaction = segv_handler;
sa.sa_flags = SA_NODEFER | SA_SIGINFO;
sigaction(SIGSEGV, &sa, NULL);
sigaction(SIGBUS, &sa, NULL);
}
#define NONFAILING(...) \
({ \
int ok = 1; \
__atomic_fetch_add(&skip_segv, 1, __ATOMIC_SEQ_CST); \
if (_setjmp(segv_env) == 0) { \
__VA_ARGS__; \
} else \
ok = 0; \
__atomic_fetch_sub(&skip_segv, 1, __ATOMIC_SEQ_CST); \
ok; \
})
static void sleep_ms(uint64_t ms)
{
usleep(ms * 1000);
}
static uint64_t current_time_ms(void)
{
struct timespec ts;
if (clock_gettime(CLOCK_MONOTONIC, &ts))
exit(1);
return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
}
static void use_temporary_dir(void)
{
char tmpdir_template[] = "./syzkaller.XXXXXX";
char* tmpdir = mkdtemp(tmpdir_template);
if (!tmpdir)
exit(1);
if (chmod(tmpdir, 0777))
exit(1);
if (chdir(tmpdir))
exit(1);
}
static bool write_file(const char* file, const char* what, ...)
{
char buf[1024];
va_list args;
va_start(args, what);
vsnprintf(buf, sizeof(buf), what, args);
va_end(args);
buf[sizeof(buf) - 1] = 0;
int len = strlen(buf);
int fd = open(file, O_WRONLY | O_CLOEXEC);
if (fd == -1)
return false;
if (write(fd, buf, len) != len) {
int err = errno;
close(fd);
errno = err;
return false;
}
close(fd);
return true;
}
struct nlmsg {
char* pos;
int nesting;
struct nlattr* nested[8];
char buf[4096];
};
static void netlink_init(struct nlmsg* nlmsg, int typ, int flags,
const void* data, int size)
{
memset(nlmsg, 0, sizeof(*nlmsg));
struct nlmsghdr* hdr = (struct nlmsghdr*)nlmsg->buf;
hdr->nlmsg_type = typ;
hdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | flags;
memcpy(hdr + 1, data, size);
nlmsg->pos = (char*)(hdr + 1) + NLMSG_ALIGN(size);
}
static void netlink_attr(struct nlmsg* nlmsg, int typ, const void* data,
int size)
{
struct nlattr* attr = (struct nlattr*)nlmsg->pos;
attr->nla_len = sizeof(*attr) + size;
attr->nla_type = typ;
if (size > 0)
memcpy(attr + 1, data, size);
nlmsg->pos += NLMSG_ALIGN(attr->nla_len);
}
static void netlink_nest(struct nlmsg* nlmsg, int typ)
{
struct nlattr* attr = (struct nlattr*)nlmsg->pos;
attr->nla_type = typ;
nlmsg->pos += sizeof(*attr);
nlmsg->nested[nlmsg->nesting++] = attr;
}
static void netlink_done(struct nlmsg* nlmsg)
{
struct nlattr* attr = nlmsg->nested[--nlmsg->nesting];
attr->nla_len = nlmsg->pos - (char*)attr;
}
static int netlink_send_ext(struct nlmsg* nlmsg, int sock, uint16_t reply_type,
int* reply_len, bool dofail)
{
if (nlmsg->pos > nlmsg->buf + sizeof(nlmsg->buf) || nlmsg->nesting)
exit(1);
struct nlmsghdr* hdr = (struct nlmsghdr*)nlmsg->buf;
hdr->nlmsg_len = nlmsg->pos - nlmsg->buf;
struct sockaddr_nl addr;
memset(&addr, 0, sizeof(addr));
addr.nl_family = AF_NETLINK;
ssize_t n = sendto(sock, nlmsg->buf, hdr->nlmsg_len, 0,
(struct sockaddr*)&addr, sizeof(addr));
if (n != (ssize_t)hdr->nlmsg_len) {
if (dofail)
exit(1);
return -1;
}
n = recv(sock, nlmsg->buf, sizeof(nlmsg->buf), 0);
if (reply_len)
*reply_len = 0;
if (n < 0) {
if (dofail)
exit(1);
return -1;
}
if (n < (ssize_t)sizeof(struct nlmsghdr)) {
errno = EINVAL;
if (dofail)
exit(1);
return -1;
}
if (hdr->nlmsg_type == NLMSG_DONE)
return 0;
if (reply_len && hdr->nlmsg_type == reply_type) {
*reply_len = n;
return 0;
}
if (n < (ssize_t)(sizeof(struct nlmsghdr) + sizeof(struct nlmsgerr))) {
errno = EINVAL;
if (dofail)
exit(1);
return -1;
}
if (hdr->nlmsg_type != NLMSG_ERROR) {
errno = EINVAL;
if (dofail)
exit(1);
return -1;
}
errno = -((struct nlmsgerr*)(hdr + 1))->error;
return -errno;
}
static int netlink_send(struct nlmsg* nlmsg, int sock)
{
return netlink_send_ext(nlmsg, sock, 0, NULL, true);
}
static int netlink_query_family_id(struct nlmsg* nlmsg, int sock,
const char* family_name, bool dofail)
{
struct genlmsghdr genlhdr;
memset(&genlhdr, 0, sizeof(genlhdr));
genlhdr.cmd = CTRL_CMD_GETFAMILY;
netlink_init(nlmsg, GENL_ID_CTRL, 0, &genlhdr, sizeof(genlhdr));
netlink_attr(nlmsg, CTRL_ATTR_FAMILY_NAME, family_name,
strnlen(family_name, GENL_NAMSIZ - 1) + 1);
int n = 0;
int err = netlink_send_ext(nlmsg, sock, GENL_ID_CTRL, &n, dofail);
if (err < 0) {
return -1;
}
uint16_t id = 0;
struct nlattr* attr = (struct nlattr*)(nlmsg->buf + NLMSG_HDRLEN +
NLMSG_ALIGN(sizeof(genlhdr)));
for (; (char*)attr < nlmsg->buf + n;
attr = (struct nlattr*)((char*)attr + NLMSG_ALIGN(attr->nla_len))) {
if (attr->nla_type == CTRL_ATTR_FAMILY_ID) {
id = *(uint16_t*)(attr + 1);
break;
}
}
if (!id) {
errno = EINVAL;
return -1;
}
recv(sock, nlmsg->buf, sizeof(nlmsg->buf), 0);
return id;
}
static unsigned int queue_count = 2;
static void netlink_add_device_impl(struct nlmsg* nlmsg, const char* type,
const char* name, bool up)
{
struct ifinfomsg hdr;
memset(&hdr, 0, sizeof(hdr));
if (up)
hdr.ifi_flags = hdr.ifi_change = IFF_UP;
netlink_init(nlmsg, RTM_NEWLINK, NLM_F_EXCL | NLM_F_CREATE, &hdr,
sizeof(hdr));
if (name)
netlink_attr(nlmsg, IFLA_IFNAME, name, strlen(name));
netlink_attr(nlmsg, IFLA_NUM_TX_QUEUES, &queue_count, sizeof(queue_count));
netlink_attr(nlmsg, IFLA_NUM_RX_QUEUES, &queue_count, sizeof(queue_count));
netlink_nest(nlmsg, IFLA_LINKINFO);
netlink_attr(nlmsg, IFLA_INFO_KIND, type, strlen(type));
}
static void netlink_device_change(struct nlmsg* nlmsg, int sock,
const char* name, bool up, const char* master,
const void* mac, int macsize,
const char* new_name)
{
struct ifinfomsg hdr;
memset(&hdr, 0, sizeof(hdr));
if (up)
hdr.ifi_flags = hdr.ifi_change = IFF_UP;
hdr.ifi_index = if_nametoindex(name);
netlink_init(nlmsg, RTM_NEWLINK, 0, &hdr, sizeof(hdr));
if (new_name)
netlink_attr(nlmsg, IFLA_IFNAME, new_name, strlen(new_name));
if (master) {
int ifindex = if_nametoindex(master);
netlink_attr(nlmsg, IFLA_MASTER, &ifindex, sizeof(ifindex));
}
if (macsize)
netlink_attr(nlmsg, IFLA_ADDRESS, mac, macsize);
int err = netlink_send(nlmsg, sock);
if (err < 0) {
}
}
static struct nlmsg nlmsg;
//% This code is derived from puff.{c,h}, found in the zlib development. The
//% original files come with the following copyright notice:
//% Copyright (C) 2002-2013 Mark Adler, all rights reserved
//% version 2.3, 21 Jan 2013
//% This software is provided 'as-is', without any express or implied
//% warranty. In no event will the author be held liable for any damages
//% arising from the use of this software.
//% Permission is granted to anyone to use this software for any purpose,
//% including commercial applications, and to alter it and redistribute it
//% freely, subject to the following restrictions:
//% 1. The origin of this software must not be misrepresented; you must not
//% claim that you wrote the original software. If you use this software
//% in a product, an acknowledgment in the product documentation would be
//% appreciated but is not required.
//% 2. Altered source versions must be plainly marked as such, and must not be
//% misrepresented as being the original software.
//% 3. This notice may not be removed or altered from any source distribution.
//% Mark Adler madler@alumni.caltech.edu
//% BEGIN CODE DERIVED FROM puff.{c,h}
#define MAXBITS 15
#define MAXLCODES 286
#define MAXDCODES 30
#define MAXCODES (MAXLCODES + MAXDCODES)
#define FIXLCODES 288
struct puff_state {
unsigned char* out;
unsigned long outlen;
unsigned long outcnt;
const unsigned char* in;
unsigned long inlen;
unsigned long incnt;
int bitbuf;
int bitcnt;
jmp_buf env;
};
static int puff_bits(struct puff_state* s, int need)
{
long val = s->bitbuf;
while (s->bitcnt < need) {
if (s->incnt == s->inlen)
longjmp(s->env, 1);
val |= (long)(s->in[s->incnt++]) << s->bitcnt;
s->bitcnt += 8;
}
s->bitbuf = (int)(val >> need);
s->bitcnt -= need;
return (int)(val & ((1L << need) - 1));
}
static int puff_stored(struct puff_state* s)
{
s->bitbuf = 0;
s->bitcnt = 0;
if (s->incnt + 4 > s->inlen)
return 2;
unsigned len = s->in[s->incnt++];
len |= s->in[s->incnt++] << 8;
if (s->in[s->incnt++] != (~len & 0xff) ||
s->in[s->incnt++] != ((~len >> 8) & 0xff))
return -2;
if (s->incnt + len > s->inlen)
return 2;
if (s->outcnt + len > s->outlen)
return 1;
for (; len--; s->outcnt++, s->incnt++) {
if (s->in[s->incnt])
s->out[s->outcnt] = s->in[s->incnt];
}
return 0;
}
struct puff_huffman {
short* count;
short* symbol;
};
static int puff_decode(struct puff_state* s, const struct puff_huffman* h)
{
int first = 0;
int index = 0;
int bitbuf = s->bitbuf;
int left = s->bitcnt;
int code = first = index = 0;
int len = 1;
short* next = h->count + 1;
while (1) {
while (left--) {
code |= bitbuf & 1;
bitbuf >>= 1;
int count = *next++;
if (code - count < first) {
s->bitbuf = bitbuf;
s->bitcnt = (s->bitcnt - len) & 7;
return h->symbol[index + (code - first)];
}
index += count;
first += count;
first <<= 1;
code <<= 1;
len++;
}
left = (MAXBITS + 1) - len;
if (left == 0)
break;
if (s->incnt == s->inlen)
longjmp(s->env, 1);
bitbuf = s->in[s->incnt++];
if (left > 8)
left = 8;
}
return -10;
}
static int puff_construct(struct puff_huffman* h, const short* length, int n)
{
int len;
for (len = 0; len <= MAXBITS; len++)
h->count[len] = 0;
int symbol;
for (symbol = 0; symbol < n; symbol++)
(h->count[length[symbol]])++;
if (h->count[0] == n)
return 0;
int left = 1;
for (len = 1; len <= MAXBITS; len++) {
left <<= 1;
left -= h->count[len];
if (left < 0)
return left;
}
short offs[MAXBITS + 1];
offs[1] = 0;
for (len = 1; len < MAXBITS; len++)
offs[len + 1] = offs[len] + h->count[len];
for (symbol = 0; symbol < n; symbol++)
if (length[symbol] != 0)
h->symbol[offs[length[symbol]]++] = symbol;
return left;
}
static int puff_codes(struct puff_state* s, const struct puff_huffman* lencode,
const struct puff_huffman* distcode)
{
static const short lens[29] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 13,
15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
67, 83, 99, 115, 131, 163, 195, 227, 258};
static const short lext[29] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0};
static const short dists[30] = {
1, 2, 3, 4, 5, 7, 9, 13, 17, 25,
33, 49, 65, 97, 129, 193, 257, 385, 513, 769,
1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577};
static const short dext[30] = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3,
4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
9, 9, 10, 10, 11, 11, 12, 12, 13, 13};
int symbol;
do {
symbol = puff_decode(s, lencode);
if (symbol < 0)
return symbol;
if (symbol < 256) {
if (s->outcnt == s->outlen)
return 1;
if (symbol)
s->out[s->outcnt] = symbol;
s->outcnt++;
} else if (symbol > 256) {
symbol -= 257;
if (symbol >= 29)
return -10;
int len = lens[symbol] + puff_bits(s, lext[symbol]);
symbol = puff_decode(s, distcode);
if (symbol < 0)
return symbol;
unsigned dist = dists[symbol] + puff_bits(s, dext[symbol]);
if (dist > s->outcnt)
return -11;
if (s->outcnt + len > s->outlen)
return 1;
while (len--) {
if (dist <= s->outcnt && s->out[s->outcnt - dist])
s->out[s->outcnt] = s->out[s->outcnt - dist];
s->outcnt++;
}
}
} while (symbol != 256);
return 0;
}
static int puff_fixed(struct puff_state* s)
{
static int virgin = 1;
static short lencnt[MAXBITS + 1], lensym[FIXLCODES];
static short distcnt[MAXBITS + 1], distsym[MAXDCODES];
static struct puff_huffman lencode, distcode;
if (virgin) {
lencode.count = lencnt;
lencode.symbol = lensym;
distcode.count = distcnt;
distcode.symbol = distsym;
short lengths[FIXLCODES];
int symbol;
for (symbol = 0; symbol < 144; symbol++)
lengths[symbol] = 8;
for (; symbol < 256; symbol++)
lengths[symbol] = 9;
for (; symbol < 280; symbol++)
lengths[symbol] = 7;
for (; symbol < FIXLCODES; symbol++)
lengths[symbol] = 8;
puff_construct(&lencode, lengths, FIXLCODES);
for (symbol = 0; symbol < MAXDCODES; symbol++)
lengths[symbol] = 5;
puff_construct(&distcode, lengths, MAXDCODES);
virgin = 0;
}
return puff_codes(s, &lencode, &distcode);
}
static int puff_dynamic(struct puff_state* s)
{
static const short order[19] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
11, 4, 12, 3, 13, 2, 14, 1, 15};
int nlen = puff_bits(s, 5) + 257;
int ndist = puff_bits(s, 5) + 1;
int ncode = puff_bits(s, 4) + 4;
if (nlen > MAXLCODES || ndist > MAXDCODES)
return -3;
short lengths[MAXCODES];
int index;
for (index = 0; index < ncode; index++)
lengths[order[index]] = puff_bits(s, 3);
for (; index < 19; index++)
lengths[order[index]] = 0;
short lencnt[MAXBITS + 1], lensym[MAXLCODES];
struct puff_huffman lencode = {lencnt, lensym};
int err = puff_construct(&lencode, lengths, 19);
if (err != 0)
return -4;
index = 0;
while (index < nlen + ndist) {
int symbol;
int len;
symbol = puff_decode(s, &lencode);
if (symbol < 0)
return symbol;
if (symbol < 16)
lengths[index++] = symbol;
else {
len = 0;
if (symbol == 16) {
if (index == 0)
return -5;
len = lengths[index - 1];
symbol = 3 + puff_bits(s, 2);
} else if (symbol == 17)
symbol = 3 + puff_bits(s, 3);
else
symbol = 11 + puff_bits(s, 7);
if (index + symbol > nlen + ndist)
return -6;
while (symbol--)
lengths[index++] = len;
}
}
if (lengths[256] == 0)
return -9;
err = puff_construct(&lencode, lengths, nlen);
if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1]))
return -7;
short distcnt[MAXBITS + 1], distsym[MAXDCODES];
struct puff_huffman distcode = {distcnt, distsym};
err = puff_construct(&distcode, lengths + nlen, ndist);
if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1]))
return -8;
return puff_codes(s, &lencode, &distcode);
}
static int puff(unsigned char* dest, unsigned long* destlen,
const unsigned char* source, unsigned long sourcelen)
{
struct puff_state s = {
.out = dest,
.outlen = *destlen,
.outcnt = 0,
.in = source,
.inlen = sourcelen,
.incnt = 0,
.bitbuf = 0,
.bitcnt = 0,
};
int err;
if (setjmp(s.env) != 0)
err = 2;
else {
int last;
do {
last = puff_bits(&s, 1);
int type = puff_bits(&s, 2);
err = type == 0 ? puff_stored(&s)
: (type == 1 ? puff_fixed(&s)
: (type == 2 ? puff_dynamic(&s) : -1));
if (err != 0)
break;
} while (!last);
}
*destlen = s.outcnt;
return err;
}
//% END CODE DERIVED FROM puff.{c,h}
#define ZLIB_HEADER_WIDTH 2
static int puff_zlib_to_file(const unsigned char* source,
unsigned long sourcelen, int dest_fd)
{
if (sourcelen < ZLIB_HEADER_WIDTH)
return 0;
source += ZLIB_HEADER_WIDTH;
sourcelen -= ZLIB_HEADER_WIDTH;
const unsigned long max_destlen = 132 << 20;
void* ret = mmap(0, max_destlen, PROT_WRITE | PROT_READ,
MAP_PRIVATE | MAP_ANON, -1, 0);
if (ret == MAP_FAILED)
return -1;
unsigned char* dest = (unsigned char*)ret;
unsigned long destlen = max_destlen;
int err = puff(dest, &destlen, source, sourcelen);
if (err) {
munmap(dest, max_destlen);
errno = -err;
return -1;
}
if (write(dest_fd, dest, destlen) != (ssize_t)destlen) {
munmap(dest, max_destlen);
return -1;
}
return munmap(dest, max_destlen);
}
static int setup_loop_device(unsigned char* data, unsigned long size,
const char* loopname, int* loopfd_p)
{
int err = 0, loopfd = -1;
int memfd = syscall(__NR_memfd_create, "syzkaller", 0);
if (memfd == -1) {
err = errno;
goto error;
}
if (puff_zlib_to_file(data, size, memfd)) {
err = errno;
goto error_close_memfd;
}
loopfd = open(loopname, O_RDWR);
if (loopfd == -1) {
err = errno;
goto error_close_memfd;
}
if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
if (errno != EBUSY) {
err = errno;
goto error_close_loop;
}
ioctl(loopfd, LOOP_CLR_FD, 0);
usleep(1000);
if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
err = errno;
goto error_close_loop;
}
}
close(memfd);
*loopfd_p = loopfd;
return 0;
error_close_loop:
close(loopfd);
error_close_memfd:
close(memfd);
error:
errno = err;
return -1;
}
static void reset_loop_device(const char* loopname)
{
int loopfd = open(loopname, O_RDWR);
if (loopfd == -1) {
return;
}
if (ioctl(loopfd, LOOP_CLR_FD, 0)) {
}
close(loopfd);
}
static long syz_mount_image(volatile long fsarg, volatile long dir,
volatile long flags, volatile long optsarg,
volatile long change_dir,
volatile unsigned long size, volatile long image)
{
unsigned char* data = (unsigned char*)image;
int res = -1, err = 0, need_loop_device = !!size;
char* mount_opts = (char*)optsarg;
char* target = (char*)dir;
char* fs = (char*)fsarg;
char* source = NULL;
char loopname[64];
if (need_loop_device) {
int loopfd;
memset(loopname, 0, sizeof(loopname));
snprintf(loopname, sizeof(loopname), "/dev/loop%llu", procid);
if (setup_loop_device(data, size, loopname, &loopfd) == -1)
return -1;
close(loopfd);
source = loopname;
}
mkdir(target, 0777);
char opts[256];
memset(opts, 0, sizeof(opts));
if (strlen(mount_opts) > (sizeof(opts) - 32)) {
}
strncpy(opts, mount_opts, sizeof(opts) - 32);
if (strcmp(fs, "iso9660") == 0) {
flags |= MS_RDONLY;
} else if (strncmp(fs, "ext", 3) == 0) {
bool has_remount_ro = false;
char* remount_ro_start = strstr(opts, "errors=remount-ro");
if (remount_ro_start != NULL) {
char after = *(remount_ro_start + strlen("errors=remount-ro"));
char before = remount_ro_start == opts ? '\0' : *(remount_ro_start - 1);
has_remount_ro = ((before == '\0' || before == ',') &&
(after == '\0' || after == ','));
}
if (strstr(opts, "errors=panic") || !has_remount_ro)
strcat(opts, ",errors=continue");
} else if (strcmp(fs, "xfs") == 0) {
strcat(opts, ",nouuid");
} else if (strncmp(fs, "gfs2", 4) == 0 &&
(strstr(opts, "errors=panic") || strstr(opts, "debug"))) {
strcat(opts, ",errors=withdraw");
}
res = mount(source, target, fs, flags, opts);
if (res == -1) {
err = errno;
goto error_clear_loop;
}
res = open(target, O_RDONLY | O_DIRECTORY);
if (res == -1) {
err = errno;
goto error_clear_loop;
}
if (change_dir) {
res = chdir(target);
if (res == -1) {
err = errno;
}
}
error_clear_loop:
if (need_loop_device)
reset_loop_device(loopname);
errno = err;
return res;
}
#define FS_IOC_SETFLAGS _IOW('f', 2, long)
static void remove_dir(const char* dir)
{
int iter = 0;
DIR* dp = 0;
const int umount_flags = MNT_FORCE | UMOUNT_NOFOLLOW;
retry:
while (umount2(dir, umount_flags) == 0) {
}
dp = opendir(dir);
if (dp == NULL) {
if (errno == EMFILE) {
exit(1);
}
exit(1);
}
struct dirent* ep = 0;
while ((ep = readdir(dp))) {
if (strcmp(ep->d_name, ".") == 0 || strcmp(ep->d_name, "..") == 0)
continue;
char filename[FILENAME_MAX];
snprintf(filename, sizeof(filename), "%s/%s", dir, ep->d_name);
while (umount2(filename, umount_flags) == 0) {
}
struct stat st;
if (lstat(filename, &st))
exit(1);
if (S_ISDIR(st.st_mode)) {
remove_dir(filename);
continue;
}
int i;
for (i = 0;; i++) {
if (unlink(filename) == 0)
break;
if (errno == EPERM) {
int fd = open(filename, O_RDONLY);
if (fd != -1) {
long flags = 0;
if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) {
}
close(fd);
continue;
}
}
if (errno == EROFS) {
break;
}
if (errno != EBUSY || i > 100)
exit(1);
if (umount2(filename, umount_flags))
exit(1);
}
}
closedir(dp);
for (int i = 0;; i++) {
if (rmdir(dir) == 0)
break;
if (i < 100) {
if (errno == EPERM) {
int fd = open(dir, O_RDONLY);
if (fd != -1) {
long flags = 0;
if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) {
}
close(fd);
continue;
}
}
if (errno == EROFS) {
break;
}
if (errno == EBUSY) {
if (umount2(dir, umount_flags))
exit(1);
continue;
}
if (errno == ENOTEMPTY) {
if (iter < 100) {
iter++;
goto retry;
}
}
}
exit(1);
}
}
static void kill_and_wait(int pid, int* status)
{
kill(-pid, SIGKILL);
kill(pid, SIGKILL);
for (int i = 0; i < 100; i++) {
if (waitpid(-1, status, WNOHANG | __WALL) == pid)
return;
usleep(1000);
}
DIR* dir = opendir("/sys/fs/fuse/connections");
if (dir) {
for (;;) {
struct dirent* ent = readdir(dir);
if (!ent)
break;
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
continue;
char abort[300];
snprintf(abort, sizeof(abort), "/sys/fs/fuse/connections/%s/abort",
ent->d_name);
int fd = open(abort, O_WRONLY);
if (fd == -1) {
continue;
}
if (write(fd, abort, 1) < 0) {
}
close(fd);
}
closedir(dir);
} else {
}
while (waitpid(-1, status, __WALL) != pid) {
}
}
static void reset_loop()
{
char buf[64];
snprintf(buf, sizeof(buf), "/dev/loop%llu", procid);
int loopfd = open(buf, O_RDWR);
if (loopfd != -1) {
ioctl(loopfd, LOOP_CLR_FD, 0);
close(loopfd);
}
}
static void setup_test()
{
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
write_file("/proc/self/oom_score_adj", "1000");
if (symlink("/dev/binderfs", "./binderfs")) {
}
}
static void setup_sysctl()
{
int cad_pid = fork();
if (cad_pid < 0)
exit(1);
if (cad_pid == 0) {
for (;;)
sleep(100);
}
char tmppid[32];
snprintf(tmppid, sizeof(tmppid), "%d", cad_pid);
struct {
const char* name;
const char* data;
} files[] = {
{"/sys/kernel/debug/x86/nmi_longest_ns", "10000000000"},
{"/proc/sys/kernel/hung_task_check_interval_secs", "20"},
{"/proc/sys/net/core/bpf_jit_kallsyms", "1"},
{"/proc/sys/net/core/bpf_jit_harden", "0"},
{"/proc/sys/kernel/kptr_restrict", "0"},
{"/proc/sys/kernel/softlockup_all_cpu_backtrace", "1"},
{"/proc/sys/fs/mount-max", "100"},
{"/proc/sys/vm/oom_dump_tasks", "0"},
{"/proc/sys/debug/exception-trace", "0"},
{"/proc/sys/kernel/printk", "7 4 1 3"},
{"/proc/sys/kernel/keys/gc_delay", "1"},
{"/proc/sys/vm/oom_kill_allocating_task", "1"},
{"/proc/sys/kernel/ctrl-alt-del", "0"},
{"/proc/sys/kernel/cad_pid", tmppid},
};
for (size_t i = 0; i < sizeof(files) / sizeof(files[0]); i++) {
if (!write_file(files[i].name, files[i].data)) {
}
}
kill(cad_pid, SIGKILL);
while (waitpid(cad_pid, NULL, 0) != cad_pid)
;
}
#define NL802154_CMD_SET_SHORT_ADDR 11
#define NL802154_ATTR_IFINDEX 3
#define NL802154_ATTR_SHORT_ADDR 10
static const char* setup_802154()
{
const char* error = NULL;
int sock_generic = -1;
int sock_route = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
if (sock_route == -1) {
error = "socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE) failed";
goto fail;
}
sock_generic = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
if (sock_generic == -1) {
error = "socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC) failed";
goto fail;
}
{
int nl802154_family_id =
netlink_query_family_id(&nlmsg, sock_generic, "nl802154", true);
if (nl802154_family_id < 0) {
error = "netlink_query_family_id failed";
goto fail;
}
for (int i = 0; i < 2; i++) {
char devname[] = "wpan0";
devname[strlen(devname) - 1] += i;
uint64_t hwaddr = 0xaaaaaaaaaaaa0002 + (i << 8);
uint16_t shortaddr = 0xaaa0 + i;
int ifindex = if_nametoindex(devname);
struct genlmsghdr genlhdr;
memset(&genlhdr, 0, sizeof(genlhdr));
genlhdr.cmd = NL802154_CMD_SET_SHORT_ADDR;
netlink_init(&nlmsg, nl802154_family_id, 0, &genlhdr, sizeof(genlhdr));
netlink_attr(&nlmsg, NL802154_ATTR_IFINDEX, &ifindex, sizeof(ifindex));
netlink_attr(&nlmsg, NL802154_ATTR_SHORT_ADDR, &shortaddr,
sizeof(shortaddr));
if (netlink_send(&nlmsg, sock_generic) < 0) {
error = "NL802154_CMD_SET_SHORT_ADDR failed";
goto fail;
}
netlink_device_change(&nlmsg, sock_route, devname, true, 0, &hwaddr,
sizeof(hwaddr), 0);
if (i == 0) {
netlink_add_device_impl(&nlmsg, "lowpan", "lowpan0", false);
netlink_done(&nlmsg);
netlink_attr(&nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
if (netlink_send(&nlmsg, sock_route) < 0) {
error = "netlink: adding device lowpan0 type lowpan link wpan0";
goto fail;
}
}
}
}
fail:
close(sock_route);
close(sock_generic);
return error;
}
static void execute_one(void);
#define WAIT_FLAGS __WALL
static void loop(void)
{
int iter = 0;
for (;; iter++) {
char cwdbuf[32];
sprintf(cwdbuf, "./%d", iter);
if (mkdir(cwdbuf, 0777))
exit(1);
reset_loop();
int pid = fork();
if (pid < 0)
exit(1);
if (pid == 0) {
if (chdir(cwdbuf))
exit(1);
setup_test();
execute_one();
exit(0);
}
int status = 0;
uint64_t start = current_time_ms();
for (;;) {
sleep_ms(10);
if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid)
break;
if (current_time_ms() - start < 5000)
continue;
kill_and_wait(pid, &status);
break;
}
remove_dir(cwdbuf);
}
}
uint64_t r[2] = {0xffffffffffffffff, 0xffffffffffffffff};
void execute_one(void)
{
intptr_t res = 0;
if (write(1, "executing program\n", sizeof("executing program\n") - 1)) {
}
// syz_mount_image$xfs arguments: [
// fs: ptr[in, buffer] {
// buffer: {78 66 73 00} (length 0x4)
// }
// dir: ptr[in, buffer] {
// buffer: {2e 2f 66 69 6c 65 30 00} (length 0x8)
// }
// flags: mount_flags = 0x0 (8 bytes)
// opts: ptr[in, fs_options[xfs_options]] {
// fs_options[xfs_options] {
// elems: array[fs_opt_elem[xfs_options]] {
// }
// common: array[fs_opt_elem[fs_options_common]] {
// }
// null: const = 0x0 (1 bytes)
// }
// }
// chdir: int8 = 0x1 (1 bytes)
// size: len = 0x965c (8 bytes)
// img: ptr[in, buffer] {
// buffer: (compressed buffer with length 0x965c)
// }
// ]
// returns fd_dir
NONFAILING(memcpy((void*)0x200000009680, "xfs\000", 4));
NONFAILING(memcpy((void*)0x2000000096c0, "./file0\000", 8));
NONFAILING(*(uint8_t*)0x200000009700 = 0);
NONFAILING(memcpy(
(void*)0x200000009740,
"\x78\x9c\xec\xfd\x07\xb8\x1d\x75\xa1\x78\x7f\x9f\x90\x42\x0f\x5d\x01\x89"
"\x20\x45\x7a\xef\x45\xa5\xf7\xde\xbb\xf4\x26\x4d\x40\xa5\x57\x51\x04\x94"
"\x66\xc1\x42\x55\xa4\xa9\x20\x02\x0a\x22\x22\xa8\x08\x82\x14\xb1\xa2\x82"
"\x08\x4a\xef\xbd\xbe\x4f\x48\x22\x31\x2e\xb8\x7a\xff\xf7\xf7\x72\xbd\x6b"
"\xad\xe7\x39\xd9\x67\xcf\x9e\x99\xfd\x3d\xdf\xcf\xec\x99\x93\xe8\xc3\x6c"
"\xba\xf2\x06\xcb\x0f\x0c\x4c\x30\x30\xaa\x99\x06\xc6\xed\x8c\x93\x8e\x9a"
"\x6b\xe9\x03\x56\xba\xee\xb4\x3d\x1e\x99\xf8\xfa\x45\x0f\xbb\x77\xf4\xe2"
"\xc9\x47\x3d\x8c\x18\xfd\x74\xc4\xa0\xd1\x8f\xe3\x0d\x0c\x0c\x8c\x37\x7a"
"\x3f\xa3\x97\x0d\xdf\xfb\xd2\xcb\xc6\x1b\x18\xf2\xfa\xf2\x37\x9a\x78\xc2"
"\x89\x06\x4d\x3a\x30\xb0\xd0\xe8\xa7\xcb\x8e\x7e\x5c\x7c\xd4\xc3\x14\xdb"
"\x8e\x59\xef\xb5\x71\x1a\x77\xa0\xa3\xde\xe4\xf0\x91\xdf\x1d\x3b\xea\xeb"
"\xf5\x26\x1b\xf9\x16\x23\xbf\xd9\x76\xb7\x6b\x46\x2e\x9b\x7c\xac\xed\x47"
"\x6e\x72\xcd\x3f\xfd\xa0\xd2\x36\x5d\x6e\x95\x95\xdf\xb0\xfa\xbb\xdb\x48"
"\xab\xa1\xa3\xbf\x1f\xfb\x6b\xd8\xa8\xaf\x29\xb6\x18\x18\x98\x62\xd3\x01"
"\x3e\x3e\xc6\x5e\x77\xd0\xdb\xf0\x23\x8d\x7c\xcf\x65\xf7\x3f\xfd\x9a\xab"
"\xde\x86\xf7\xfe\x8f\x6b\xd3\xe5\x56\x59\x6d\x1c\xff\x91\x9f\xc5\xc1\xa3"
"\x97\x2d\x3e\xf2\x33\x3e\xee\x67\xd0\xd8\xb8\xc7\xf9\x73\x27\x5f\x75\xd2"
"\xe8\x29\x1c\x34\x7a\xce\x86\x8c\xf3\x59\xf9\x8f\x68\xd3\xe5\x56\x5e\x73"
"\xe0\xcd\xcf\xf3\x03\x93\x1e\xbf\xf5\xe0\xd7\x46\x9d\x37\xc7\x1f\x18\x75"
"\xa1\x98\x70\x60\x60\x60\xa2\xd1\xe7\xd7\x49\xde\x6e\x97\xfa\xff\xd6\x72"
"\xcb\x2f\xbc\xfc\xc8\xf3\xfd\x98\xe7\xa3\xd9\xc7\x1c\xcb\xcb\xd2\x71\x31"
"\xdb\x2a\x37\x1d\x31\xf2\xd0\x18\x75\x9e\x18\x7e\xde\x98\x6b\x41\x55\x55"
"\x55\xfd\x67\xb4\xdc\xf2\x0b\xaf\x00\xd7\xff\x09\xde\xea\xfa\xbf\xe4\xf9"
"\x07\x5c\xdf\xf5\xbf\xaa\xaa\xea\x3f\xb7\xd5\x96\x5b\x7e\xe1\x91\xd7\xfa"
"\x71\xae\xff\x93\xbc\xd5\xf5\xff\x80\xdb\xd7\xd8\x7a\xd4\xbf\xfd\x2f\xbb"
"\xf8\xa8\xad\x5e\x7d\x7b\x7f\x88\xaa\xaa\xaa\xfa\xb7\x5a\x79\x35\xbc\xfe"
"\x4f\xfe\x56\xd7\xff\x65\x8e\x5b\xeb\xc4\xae\xff\x55\x55\x55\xff\xb9\xad"
"\xbf\xd6\xeb\xd7\xff\x49\xc6\xb9\xfe\x4f\xfd\x56\xd7\xff\x59\x1e\xda\xf3"
"\xb2\xd1\xeb\x8d\xf9\xbd\xe1\x95\xb1\x76\x39\x68\xac\xff\x3d\xe1\xa5\xb1"
"\x96\x0f\x1e\x6b\xf9\x8b\x63\x2d\x1f\x3a\xd6\x7e\xc6\x5e\x7f\xd8\x58\xcb"
"\x9f\x1f\x6b\xf9\xf8\x23\x5f\x83\xf5\x27\x1f\x18\x18\xbe\xf7\xe8\xe5\x2f"
"\xbf\xb1\x78\xf8\xe1\x03\x03\x03\x33\x8d\x5e\xfe\xc2\x58\xcb\xcf\x7c\xe3"
"\xff\xa7\x33\x62\xc8\x58\xcb\xcf\x1a\x6b\xf9\xb0\xb1\x96\x9f\x3d\x7a\xac"
"\x23\x97\x8f\x3f\xd6\xf2\x73\xc7\x5a\x7f\x82\xb7\x98\xea\xaa\xaa\xaa\xff"
"\x35\xad\xbf\xf0\xca\x2b\x0c\x8c\xf5\xff\xb3\x1f\xbd\x78\xda\x31\xaf\xd3"
"\xf5\xff\xe0\x2b\x6e\x9e\xfe\xed\x1a\x6f\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\xd5\x7f\x62\xaf\x3e\x72"
"\xe5\xd5\x6f\xdc\xf3\xfd\xd0\x81\xb1\xee\x5d\xfd\xf7\x7b\x58\x8f\xfe\xef"
"\x02\x0e\xba\xf8\x9a\x5b\x6f\x7d\xdb\x06\xfa\xbf\xa3\x41\xff\xfc\xdf\x43"
"\x3c\xfc\xed\x1e\xd3\xff\xd7\x46\x3a\x4f\x70\xc1\x4c\x03\x03\x7b\x6e\xf4"
"\x76\x0f\xa5\xde\x86\xfe\x63\xee\x55\x5f\xff\x4f\xca\xdf\x5d\xfe\xee\xf2"
"\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee"
"\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe"
"\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d"
"\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf"
"\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb"
"\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb"
"\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9"
"\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xc5\xbd\xc9\xfd\xff\x97"
"\x1d\xf3\xb8\xd5\xdd\xbb\x6e\x35\x7a\xd5\x25\x97\xbf\x76\xe8\x3d\x6f\x6c"
"\x39\x62\x60\xd7\xd1\xdf\x9d\x71\xd2\x51\x73\xed\xfa\x36\x8c\xfd\x6d\xe8"
"\xff\xea\xfd\xff\x07\x76\x1d\x34\x30\x30\xda\x77\xf2\x91\x96\x6b\x2f\xb7"
"\xfe\x86\x73\x0c\x0c\x0c\xdc\x33\xf4\xda\xe5\x17\x1b\xf8\xfb\x6b\x4b\x8c"
"\x7c\x6d\xe9\x29\x07\x0f\x0c\x7e\x7d\xd3\x39\x5e\xff\x73\xe8\x88\x37\xd9"
"\xf3\x52\xa3\x1e\x46\x1e\x4c\x03\x53\xff\x7d\x1f\x17\xbf\xbe\xff\xd5\x5e"
"\x3b\x6b\xf0\xa0\x71\x06\x31\x56\x53\x5c\x7e\xce\x39\xbb\x6c\xfa\xdc\x22"
"\xe3\x3e\xce\xfe\xe6\x3f\xc7\x78\x63\xbe\x79\xf1\xce\x83\x1e\x79\xed\xb5"
"\xd7\x5e\xfb\x87\x85\xa3\x9b\xe0\x4d\x36\x1e\xb3\xff\x31\x3f\xcb\xb8\xce"
"\xa3\xc7\x3e\xc7\xc8\xb1\xcf\xbf\xdf\x1e\x7b\xcf\xbf\xef\x01\x07\xce\xbb"
"\xeb\x1e\xdb\xee\xbc\xe3\xce\x3b\xee\xb9\xd0\x22\x8b\x2d\xbe\xd8\x42\x4b"
"\x2c\xb9\xf0\xa2\xf3\xef\xb4\xeb\xee\x3b\x2e\x30\xea\xcf\x37\x99\xb3\x99"
"\x5e\xff\x73\xf0\xbf\x32\x67\x93\x8c\x3b\x67\x8f\x2c\x37\xf6\x9c\x8d\xfb"
"\xb3\xbd\xd9\x9c\xcd\xf4\xd6\x73\xf6\xfa\x1e\x27\xb8\x71\xfe\x79\xc7\xcc"
"\xd9\x90\x7f\x73\xce\x06\xbf\xf5\x9c\xcd\xb4\xeb\xe8\x37\x1a\x31\x30\x74"
"\x60\x9b\xd7\xa7\x66\xd0\xc0\xc0\x88\x21\x43\x07\xf6\x1f\xf9\x64\xc1\xf1"
"\x07\x06\x46\x0c\x1d\xbd\xee\xb4\x23\xd7\x5d\x66\xca\xf1\x06\x06\x4e\x7c"
"\xe3\x07\x1d\xf9\xdd\xf8\x7f\x3f\x06\x07\x1d\x3e\x72\x9d\x4d\x57\xde\x60"
"\xf9\x37\x46\xf6\xcf\x3f\xe1\x3f\x7f\x4e\x5f\x6f\xf2\x51\x0f\x63\x26\x7f"
"\xc4\xe8\x37\x19\x31\xde\xa8\x21\xce\x34\xf0\xc6\xa1\x38\x7c\xef\x4b\x2f"
"\x1b\x6f\xe4\x5c\xfc\xc3\x34\x4f\x3c\xe1\x44\x83\x26\x1d\x18\x58\x68\xf4"
"\xd3\x65\x47\x3f\x2e\x39\xea\x61\xb2\x49\xc7\xac\xf7\xda\x38\x8d\x3b\xd0"
"\x51\x6f\x32\xf2\xdc\x31\xe8\xd8\x51\x5f\xa3\x76\x30\xf2\x2d\x46\x7e\xf3"
"\xec\x54\xf7\xcf\x3a\x72\xbc\xe3\x6c\xff\xff\xa2\xff\xd6\xf5\xff\x9f\xbc"
"\x96\x18\xf4\xf7\x89\x1a\x34\xfa\x6b\xf4\x3a\xa3\xbc\x96\x5b\x65\xb5\x37"
"\xde\xeb\xf5\x69\x18\x39\x77\x83\x47\x2f\x5b\x7c\xa4\xc9\xb8\x73\xf6\x3f"
"\xd9\x3f\x8d\x77\xa6\x21\x63\x0e\x06\x1c\xef\xca\xab\x2d\xbf\xf0\xc8\xc5"
"\xe3\xcc\xff\x98\x4d\xf0\xf8\x3a\xf6\xa0\x39\x6f\x18\x75\x6c\x2d\xbb\xf8"
"\xa8\xad\x5e\xfd\x6f\xa3\xd0\x78\x27\x79\x8b\xf1\xae\xb6\x1c\x8e\x77\x92"
"\xb7\x1a\xef\x2d\x33\xcf\x3f\xfe\xa8\x5d\xfd\x8f\x8d\x77\x9c\x73\xdd\x9a"
"\xa3\x5e\xfc\x57\xce\x75\x03\x6f\x7d\xae\x1b\x4c\xdb\xef\x78\xf3\x88\x71"
"\xcf\x75\x6b\xbc\xf9\x10\xff\xe1\x73\x3c\x66\x8e\xc6\x1f\x67\xa5\x37\x3b"
"\xd7\x4d\x3e\xe3\xd5\x87\x8d\xdc\xff\xc0\x5b\x9f\xeb\xd6\x1c\x39\xf6\xa1"
"\xff\x70\xae\x1b\x6f\x60\x60\xc4\xe0\x31\xe7\xba\x91\x27\xbe\x61\x43\x07"
"\x4e\x1c\xf9\x64\xa1\x91\x4f\xc6\x1f\x3a\x70\xde\xc8\x27\x0b\xbf\xfe\x64"
"\xc2\x81\x6b\x46\x3e\x99\x6f\xfb\xbd\x76\xdf\x61\xe4\x82\x09\xc6\xcc\xc9"
"\x02\x23\xf7\xbb\xec\x94\x83\x5e\x77\x9f\x63\xde\x13\xce\x7d\xed\x94\xd7"
"\x5e\x1b\x32\x7a\x2c\x67\x0e\xff\xc7\xb1\x8e\x3e\x3e\x66\x1a\xfb\x7a\xbe"
"\xdc\x94\xa3\x26\x73\xcc\xb6\x63\xf6\x3b\x72\xd5\x31\xfb\x5d\x76\x9a\x51"
"\xaf\x0d\x1b\xbd\xdf\xb3\xfe\x8d\xfd\x8e\xd9\x96\xc6\xbb\xea\xa4\xa3\x5e"
"\x1b\x7f\xf4\x7e\xcf\x1e\x67\xbf\x43\xdf\x62\xbf\x63\xb6\xfd\xa7\xcf\xc3"
"\x1c\x83\xfe\x7e\xe2\x7a\x93\xf3\xcd\xca\xe3\x9c\x6f\x46\xff\x8e\x3b\xe6"
"\xed\xfe\xe1\x6b\xd8\xa8\xaf\x29\xb6\x18\x18\x98\x62\x53\xf2\x1d\x67\xdd"
"\xff\xf2\x9c\x49\x9f\xdf\x09\xde\x62\xbc\xcb\x2d\xbf\xf0\x0a\x23\xc7\x37"
"\xce\xe7\xf7\xef\x87\x23\x7d\x7e\x87\x6e\xb7\xc8\x21\x03\x03\x03\x93\x8e"
"\xfa\x78\x0c\x3f\x6f\xcc\xd8\xff\xcd\x06\xbd\xd9\x78\x87\xbc\xf5\x78\x97"
"\x87\xf1\x0e\x79\xab\xf1\x4e\x77\xfc\x11\x4b\xff\x0f\x8c\x77\x60\xac\xf1"
"\xfe\xc3\x71\xb6\xc4\x88\x51\xc7\xca\x04\xa3\x8f\xb3\x73\xff\x8d\xe3\x77"
"\xcc\xb6\xe3\x9e\xc7\x86\xbe\xfe\xea\xa8\xd3\xfe\x04\xff\xca\x79\x6c\xa6"
"\x7f\x3a\x8f\x1d\x31\x78\xbc\x71\x26\x7b\xac\xde\xec\x77\xb6\x1d\x60\xfd"
"\x51\xdf\x4f\xfb\xf7\xbd\x3d\x3a\x7c\xad\x07\xc7\xcc\xfd\xd0\x71\xf6\xfb"
"\x5f\xfd\xce\x36\xd6\xcf\x32\x08\xce\x63\x93\x8f\xf3\xf7\xb9\x41\x77\xdc"
"\x3d\x30\x88\xe6\x7c\x81\x73\x06\x6d\xf7\xea\x7f\x31\xe7\x43\x07\xfe\xf1"
"\xef\x16\x63\xe6\x7c\xcc\xb6\x6f\x35\xe7\xe3\xff\x2b\x73\x3e\xc3\x5b\xcf"
"\xf9\xbf\xfa\x7b\xf2\x1c\xb3\x8c\x7a\x7d\xe8\x38\xe3\x1f\x7b\xce\xb7\x59"
"\x74\xef\xb9\xc7\xcc\xf9\xb0\x71\xf6\xfb\x5f\xcd\xf9\xf8\x6f\x7d\xed\xf8"
"\xe7\x39\x5f\x76\x60\x28\xcd\xf9\xba\x47\x8f\x9a\xb7\xb7\x3a\x9f\xbe\xd9"
"\x9c\x8f\xd9\x76\xcc\x9c\xbf\xee\x3f\xe5\x90\x81\x95\x06\x06\x06\x66\x1d"
"\x3d\xe7\xc3\xfe\x95\x39\x9f\xf6\x7f\xe6\x38\x9f\x08\xd6\x1f\xf5\xfd\x8e"
"\x7f\x5f\x74\xcc\x06\x8f\xcd\x33\x66\xce\xc7\x9d\xe3\xff\x6a\xce\x87\xfd"
"\xbb\x73\x3e\xd3\xdf\x8f\xf3\x59\x5f\x7f\x6d\xe6\xf1\x06\x86\x0d\x1b\xd8"
"\x7f\xdb\xfd\xf6\xdb\x67\xc1\x51\x7f\x8e\x79\xba\xd0\xa8\x3f\xf9\x5c\x74"
"\xde\x91\xa3\xe6\xf9\xad\xae\xa5\x6f\x66\x34\x66\xdb\xb7\xfa\x5c\x0c\xf9"
"\x57\x8c\x26\xff\x97\x8c\x06\xfd\x57\x46\xd3\x0f\x79\x33\xa3\x37\x3e\x5a"
"\x5b\xdf\xf5\xf4\x81\xff\xdd\x73\xd1\x90\x7f\xd7\x68\x80\xcf\x45\xb7\x5e"
"\x34\x6a\xde\xde\xea\xf7\xa2\x37\x9b\xf3\x31\xdb\xd2\x75\x70\xea\xb1\xb6"
"\x1f\xf7\xef\xa1\xeb\xaf\xf5\xfa\xef\xdd\x93\x8c\x73\x1d\x1c\xb3\x09\x5e"
"\x07\x6f\x5f\x6b\xb6\xed\xc7\xec\x72\xf4\x66\xaf\x8c\x33\xcc\x31\xd7\xd5"
"\x97\xc6\x5a\x3e\x78\xac\xe5\x2f\x8e\xb5\x7c\xe8\x58\xfb\x19\x7b\xfd\x61"
"\x63\x2d\x7f\x7e\xac\xe5\x23\x7f\x84\x61\x63\xad\x3f\x86\x75\xf2\x91\x7f"
"\xe7\x1d\xbd\xfc\xe5\x37\x56\x1f\x3e\xf2\x2f\xa9\x33\x8d\x5e\xfe\xc2\x58"
"\xcb\xcf\x7c\x63\xdb\x11\x63\xfd\x93\xc1\xf0\xb3\xc6\x5a\x3e\xd6\x29\x72"
"\xf8\xd9\x6f\x1c\x1a\x23\xc6\xfa\xb5\x7b\xf8\xb9\x63\xad\xff\x66\x87\xca"
"\x9b\x36\xe6\xdf\x24\x77\x1d\xf7\x24\x5f\xff\x6a\xfd\xfb\xbf\xbb\xfc\xdd"
"\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc"
"\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb"
"\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf"
"\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97"
"\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77"
"\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2"
"\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\x8b\x7b\x93\xfb\xff\x1f"
"\x3e\xfa\x71\xd9\xf3\xb7\xdd\x7a\xfb\xd1\xb7\x93\x1b\x7a\xdf\xf1\xc3\x4f"
"\x7d\xbb\xc7\xfb\x36\xf7\x7f\xfa\xfe\xff\xa3\x7d\xff\xe1\xfe\xff\xa7\x0e"
"\x3f\xfe\xbe\xf1\x06\xfe\xfe\xda\x5b\xde\x9f\x7d\xd4\x3a\xff\x2b\xef\xcf"
"\xbe\xf8\xa8\x87\x29\xb6\x1d\xb3\xde\xb8\xf7\x07\x1f\x77\xa0\xa3\xde\xe4"
"\xcd\xef\xcf\xbe\xf3\x2d\x57\xef\xf1\xff\xa7\xfb\xb3\xff\xb7\x1a\xf3\x59"
"\xfd\x17\xee\x8b\xd7\xf9\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5"
"\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xdd"
"\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb\xfc"
"\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb"
"\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf"
"\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97"
"\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77"
"\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2"
"\x77\x97\xbf\xbb\xfc\xdd\xe5\x2f\xee\x4d\xee\xff\x7f\xcd\xe8\xc7\xc3\x4f"
"\x9c\xf2\xd2\x61\xa3\x6f\x84\x3e\x74\xda\x5b\xa7\x78\xf1\xed\x1e\xef\xdb"
"\xdc\xff\xe9\xfb\xff\x8f\xf6\xfd\x87\xfb\xff\xbf\x38\xc5\xad\xd3\x8e\x37"
"\xf0\xf7\xd7\xde\xf2\xfe\xff\xa3\xd6\x71\xdc\xff\xff\xd8\x33\xa6\x1f\xfe"
"\xbf\xf9\xfe\xff\x63\x3e\xab\xdd\xff\xbf\xfe\x8b\xf2\x77\x97\xbf\xbb\xfc"
"\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb"
"\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf"
"\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97"
"\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77"
"\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2"
"\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee"
"\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe"
"\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x71\x7c\xff\xff\x41\xa3"
"\x1f\x07\xae\x59\x65\xd8\x25\xb7\x8d\x7c\x1c\xf9\xfc\xc2\x7d\x5e\x3e\xe7"
"\xed\x1e\xef\xdb\xdc\xff\xd5\xfb\xff\x4f\x70\xc1\x4c\x03\x03\x7b\x6e\xf4"
"\x76\x0f\xa5\xde\x86\x3a\xff\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf\xbb"
"\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97\xbf"
"\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77\x97"
"\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2\x77"
"\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee\xf2"
"\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe\xee"
"\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d\xfe"
"\xee\xf2\x77\x97\xbf\xbb\xfc\xdd\xe5\xef\x2e\x7f\x77\xf9\xbb\xcb\xdf\x5d"
"\xfe\xee\xf2\x77\x97\xbf\xbb\xfc\xc5\x8d\xbe\xff\xff\xc0\xa8\xfb\xff\x8f"
"\x69\xd0\xb2\x1d\x17\x18\xdc\xff\xff\x3f\xbb\x37\xf1\x5f\x2e\x7f\xcc\xe2"
"\xbf\x7c\xfe\x98\xc5\x7f\x85\xfc\x31\x8b\xff\x8a\xf9\x63\x16\xff\x95\xf2"
"\xc7\x2c\xfe\x2b\xe7\x8f\x59\xfc\x57\xc9\x1f\xb3\xf8\xaf\x9a\x3f\x66\xf1"
"\x5f\x2d\x7f\xcc\xe2\xbf\x7a\xfe\x98\xc5\x7f\x8d\xfc\x31\x8b\xff\x9a\xf9"
"\x63\x16\xff\xb5\xf2\xc7\x2c\xfe\x6b\xe7\x8f\x59\xfc\xd7\xc9\x1f\xb3\xf8"
"\xaf\x9b\x3f\x66\xf1\x5f\x2f\x7f\xcc\xe2\xbf\x7e\xfe\x98\xc5\x7f\x83\xfc"
"\x31\x8b\xff\x86\xf9\x63\x16\xff\x8d\xf2\xc7\x2c\xfe\x1b\xe7\x8f\x59\xfc"
"\x37\xc9\x1f\xb3\xf8\x6f\x9a\x3f\x66\xf1\xdf\x2c\x7f\xcc\xe2\xbf\x79\xfe"
"\x98\xc5\x7f\x8b\xfc\x31\x8b\xff\x96\xf9\x63\x16\xff\xad\xf2\xc7\x2c\xfe"
"\x5b\xe7\x8f\x59\xfc\x3f\x98\x3f\x66\xf1\xdf\x26\x7f\xcc\xe2\xbf\x6d\xfe"
"\x98\xc5\x7f\xbb\xfc\x31\x8b\xff\xf6\xf9\x63\x16\xff\x1d\xf2\xc7\x2c\xfe"
"\x3b\xe6\x8f\x59\xfc\x77\xca\x1f\xb3\xf8\xef\x9c\x3f\x66\xf1\xdf\x25\x7f"
"\xcc\xe2\xbf\x6b\xfe\x98\xc5\x7f\xb7\xfc\x31\x8b\xff\x87\xf2\xc7\x2c\xfe"
"\xbb\xe7\x8f\x59\xfc\xf7\xc8\x1f\xb3\xf8\xef\x99\x3f\x66\xf1\xdf\x2b\x7f"
"\xcc\xe2\xbf\x77\xfe\x98\xc5\xff\xc3\xf9\x63\x16\xff\x7d\xf2\xc7\x2c\xfe"
"\xfb\xe6\x8f\x59\xfc\xf7\xcb\x1f\xb3\xf8\x7f\x24\x7f\xcc\xe2\xff\xd1\xfc"
"\x31\x8b\xff\xc7\xf2\xc7\x2c\xfe\xfb\xe7\x8f\x59\xfc\x0f\xc8\x1f\xb3\xf8"
"\x1f\x98\x3f\x66\xf1\x3f\x28\x7f\xcc\xe2\x7f\x70\xfe\x98\xc5\xff\x90\xfc"
"\x31\x8b\xff\xa1\xf9\x63\x16\xff\xc3\xf2\xc7\x2c\xfe\x87\xe7\x8f\x59\xfc"
"\x8f\xc8\x1f\xb3\xf8\x1f\x99\x3f\x66\xf1\x3f\x2a\x7f\xcc\xe2\xff\xf1\xfc"
"\x31\x8b\xff\xd1\xf9\x63\x16\xff\x4f\xe4\x8f\x59\xfc\x3f\x99\x3f\x66\xf1"
"\x3f\x26\x7f\xcc\xe2\xff\xa9\xfc\x31\x8b\xff\xb1\xf9\x63\x16\xff\xe3\xf2"
"\xc7\x2c\xfe\xc7\xe7\x8f\x59\xfc\x3f\x9d\x3f\x66\xf1\xff\x4c\xfe\x98\xc5"
"\xff\x84\xfc\x31\x8b\xff\x89\xf9\x63\x16\xff\x93\xf2\xc7\x2c\xfe\x27\xe7"
"\x8f\x59\xfc\x4f\xc9\x1f\xb3\xf8\x7f\x36\x7f\xcc\xe2\xff\xb9\xfc\x31\x8b"
"\xff\xe7\xf3\xc7\x2c\xfe\x5f\xc8\x1f\xb3\xf8\x9f\x9a\x3f\x66\xf1\xff\x62"
"\xfe\x98\xc5\xff\x4b\xf9\x63\x16\xff\x2f\xe7\x8f\x59\xfc\xbf\x92\x3f\x66"
"\xf1\x3f\x2d\x7f\xcc\xe2\x7f\x7a\xfe\x98\xc5\xff\x8c\xfc\x31\x8b\xff\x99"
"\xf9\x63\x16\xff\xb3\xf2\xc7\x2c\xfe\x67\xe7\x8f\x59\xfc\xbf\x9a\x3f\x66"
"\xf1\xff\x5a\xfe\x98\xc5\xff\x9c\xfc\x31\x8b\xff\xd7\xf3\xc7\x2c\xfe\xe7"
"\xe6\x8f\x59\xfc\xcf\xcb\x1f\xb3\xf8\x9f\x9f\x3f\x66\xf1\xbf\x20\x7f\xcc"
"\xe2\x7f\x61\xfe\x98\xc5\xff\x1b\xf9\x63\x16\xff\x6f\xe6\x8f\x59\xfc\xbf"
"\x95\x3f\x66\xf1\xbf\x28\x7f\xcc\xe2\x7f\x71\xfe\x98\xc5\xff\xdb\xf9\x63"
"\x16\xff\x4b\xf2\xc7\x2c\xfe\xdf\xc9\x1f\xb3\xf8\x5f\x9a\x3f\x66\xf1\xbf"
"\x2c\x7f\xcc\xe2\x7f\x79\xfe\x98\xc5\xff\xbb\xf9\x63\x16\xff\xef\xe5\x8f"
"\x59\xfc\xaf\xc8\x1f\xb3\xf8\x5f\x99\x3f\x66\xf1\xff\x7e\xfe\x98\xc5\xff"
"\xaa\xfc\x31\x8b\xff\x0f\xf2\xc7\x2c\xfe\x57\xe7\x8f\x59\xfc\x7f\x98\x3f"
"\x66\xf1\xbf\x26\x7f\xcc\xe2\xff\xa3\xfc\x31\x8b\xff\xb5\xf9\x63\x16\xff"
"\xeb\xf2\xc7\x2c\xfe\x3f\xce\x1f\xb3\xf8\xff\x24\x7f\xcc\xe2\xff\xd3\xfc"
"\x31\x8b\xff\xf5\xf9\x63\x16\xff\x9f\xe5\x8f\x59\xfc\x6f\xc8\x1f\xb3\xf8"
"\xdf\x98\x3f\x66\xf1\xff\x79\xfe\x98\xc5\xff\xa6\xfc\x31\x8b\xff\xcd\xf9"
"\x63\x16\xff\x5f\xe4\x8f\x59\xfc\x6f\xc9\x1f\xb3\xf8\xdf\x9a\x3f\x66\xf1"
"\xbf\x2d\x7f\xcc\xe2\x7f\x7b\xfe\x98\xc5\xff\x97\xf9\x63\x16\xff\x3b\xf2"
"\xc7\x2c\xfe\xbf\xca\x1f\xb3\xf8\xff\x3a\x7f\xcc\xe2\xff\x9b\xfc\x31\x8b"
"\xff\x6f\xf3\xc7\x2c\xfe\xbf\xcb\x1f\xb3\xf8\xff\x3e\x7f\xcc\xe2\x7f\x67"
"\xfe\x98\xc5\xff\x0f\xf9\x63\x16\xff\x3f\xe6\x8f\x59\xfc\xff\x94\x3f\x66"
"\xf1\xbf\x2b\x7f\xcc\xe2\x7f\x77\xfe\x98\xc5\xff\xcf\xf9\x63\x16\xff\x7b"
"\xf2\xc7\x2c\xfe\x7f\xc9\x1f\xb3\xf8\xdf\x9b\x3f\x66\xf1\xbf\x2f\x7f\xcc"
"\xe2\xff\xd7\xfc\x31\x8b\xff\xdf\xf2\xc7\x2c\xfe\xf7\xe7\x8f\x59\xfc\x1f"
"\xc8\x1f\xb3\xf8\x3f\x98\x3f\x66\xf1\x7f\x28\x7f\xcc\xe2\xff\x70\xfe\x98"
"\xc5\xff\x91\xfc\x31\x8b\xff\xa3\xf9\x63\x16\xff\xc7\xf2\xc7\x2c\xfe\x8f"
"\xe7\x8f\x59\xfc\x9f\xc8\x1f\xb3\xf8\x3f\x99\x3f\x66\xf1\x7f\x2a\x7f\xcc"
"\xe2\xff\x74\xfe\x98\xc5\xff\x99\xfc\x31\x8b\xff\xb3\xf9\x63\x16\xff\xe7"
"\xf2\xc7\x2c\xfe\xcf\xe7\x8f\x59\xfc\x5f\xc8\x1f\xb3\xf8\xbf\x98\x3f\x66"
"\xf1\x7f\x29\x7f\xcc\xe2\xff\x72\xfe\x98\xc5\xff\x95\xfc\x31\x8b\xff\xab"
"\xf9\x63\x16\xff\xd7\xf2\xc7\x24\xfe\xaf\x7f\x9b\xff\x3f\x67\xf1\x1f\x94"
"\x3f\x66\xf1\x1f\x2f\x7f\xcc\xe2\x3f\x38\x7f\xcc\xe2\x3f\x24\x7f\xcc\xe2"
"\x3f\x34\x7f\xcc\xe2\x3f\x2c\x7f\xcc\xe2\x3f\x7e\xfe\x98\xc5\x7f\x82\xfc"
"\x31\x8b\xff\x84\xf9\x63\x16\xff\x89\xf2\xc7\x2c\xfe\x13\xe7\x8f\x59\xfc"
"\x27\xc9\x1f\xb3\xf8\x4f\x9a\x3f\x66\xf1\x1f\x9e\x3f\x66\xf1\x9f\x2c\x7f"
"\xcc\xe2\x3f\x79\xfe\x98\xc5\x7f\x8a\xfc\x31\x8b\xff\x94\xf9\x63\x16\xff"
"\xa9\xf2\xc7\x2c\xfe\x53\xe7\x8f\x59\xfc\xa7\xc9\x1f\xb3\xf8\xbf\x23\x7f"
"\xcc\xe2\xff\xce\xfc\x31\x8b\xff\xb4\xf9\x63\x16\xff\xe9\xf2\xc7\x2c\xfe"
"\xd3\xe7\x8f\x59\xfc\xdf\x95\x3f\x66\xf1\x9f\x21\x7f\xcc\xe2\x3f\x22\x7f"
"\xcc\xe2\xff\xee\xfc\x31\x8b\xff\x8c\xf9\x63\x16\xff\x99\xf2\xc7\x2c\xfe"
"\xef\xc9\x1f\xb3\xf8\xcf\x9c\x3f\x66\xf1\x9f\x25\x7f\xcc\xe2\x3f\x6b\xfe"
"\x98\xc5\x7f\xb6\xfc\x31\x8b\xff\x7b\xf3\xc7\x2c\xfe\xb3\xe7\x8f\x59\xfc"
"\xe7\xc8\x1f\xb3\xf8\xcf\x99\x3f\x66\xf1\x9f\x2b\x7f\xcc\xe2\x3f\x77\xfe"
"\x98\xc5\x7f\x9e\xfc\x31\x8b\xff\xbc\xf9\x63\x16\xff\xf9\xf2\xc7\x2c\xfe"
"\xf3\xe7\x8f\x59\xfc\x17\xc8\x1f\xb3\xf8\x2f\x98\x3f\x66\xf1\x5f\x28\x7f"
"\xcc\xe2\xbf\x70\xfe\x98\xc5\x7f\x91\xfc\x31\x8b\xff\xa2\xf9\x63\x16\xff"
"\xc5\xf2\xc7\x2c\xfe\x8b\xe7\x8f\x59\xfc\x97\xc8\x1f\xb3\xf8\x2f\x99\x3f"
"\x66\xf1\x5f\x2a\x7f\xcc\xe2\xbf\x74\xfe\x98\xc5\x7f\x99\xfc\x31\x8b\xff"
"\xfb\xf2\xc7\x2c\xfe\xef\xcf\x1f\xb3\xf8\x7f\x20\x7f\xcc\xe2\xbf\x6c\xfe"
"\x98\xc5\x7f\xb9\xfc\x31\x8b\xff\xf2\xf9\x63\x16\xff\x15\xf2\xc7\x2c\xfe"
"\x2b\xe6\x8f\x59\xfc\x57\xca\x1f\xb3\xf8\xaf\x9c\x3f\x66\xf1\x5f\x25\x7f"
"\xcc\xe2\xbf\x6a\xfe\x98\xc5\x7f\xb5\xfc\x31\x8b\xff\xea\xf9\x63\x16\xff"
"\x35\xf2\xc7\x2c\xfe\x6b\xe6\x8f\x59\xfc\xd7\xca\x1f\xb3\xf8\xaf\x9d\x3f"
"\x66\xf1\x5f\x27\x7f\xcc\xe2\xbf\x6e\xfe\x98\xc5\x7f\xbd\xfc\x31\x8b\xff"
"\xfa\xf9\x63\x16\xff\x0d\xf2\xc7\x2c\xfe\x1b\xe6\x8f\x59\xfc\x37\xca\x1f"
"\xb3\xf8\x6f\x9c\x3f\x66\xf1\xdf\x24\x7f\xcc\xe2\xbf\x69\xfe\x98\xc5\x7f"
"\xb3\xfc\x31\x8b\xff\xe6\xf9\x63\x16\xff\x2d\xf2\xc7\x2c\xfe\x5b\xe6\x8f"
"\x59\xfc\xb7\xca\x1f\xb3\xf8\x6f\x9d\x3f\x66\xf1\xff\x60\xfe\x98\xc5\x7f"
"\x9b\xfc\x31\x8b\xff\xb6\xf9\x63\x16\xff\xed\xf2\xc7\x2c\xfe\xdb\xe7\x8f"
"\x59\xfc\x77\xc8\x1f\xb3\xf8\xef\x98\x3f\x66\xf1\xdf\x29\x7f\xcc\xe2\xbf"
"\x73\xfe\x98\xc5\x7f\x97\xfc\x31\x8b\xff\xae\xf9\x63\x16\xff\xdd\xf2\xc7"
"\x2c\xfe\x1f\xca\x1f\xb3\xf8\xef\x9e\x3f\x66\xf1\xdf\x23\x7f\xcc\xe2\xbf"
"\x67\xfe\x98\xc5\x7f\xaf\xfc\x31\x8b\xff\xde\xf9\x63\x16\xff\x0f\xe7\x8f"
"\x59\xfc\xf7\xc9\x1f\xb3\xf8\xef\x9b\x3f\x66\xf1\xdf\x2f\x7f\xcc\xe2\xff"
"\x91\xfc\x31\x8b\xff\x47\xf3\xc7\x2c\xfe\x1f\xcb\x1f\xb3\xf8\xef\x9f\x3f"
"\x66\xf1\x3f\x20\x7f\xcc\xe2\x7f\x60\xfe\x98\xc5\xff\xa0\xfc\x31\x8b\xff"
"\xc1\xf9\x63\x16\xff\x43\xf2\xc7\x2c\xfe\x87\xe6\x8f\x59\xfc\x0f\xcb\x1f"
"\xb3\xf8\x1f\x9e\x3f\x66\xf1\x3f\x22\x7f\xcc\xe2\x7f\x64\xfe\x98\xc5\xff"
"\xa8\xfc\x31\x8b\xff\xc7\xf3\xc7\x2c\xfe\x47\xe7\x8f\x59\xfc\x3f\x91\x3f"
"\x66\xf1\xff\x64\xfe\x98\xc5\xff\x98\xfc\x31\x8b\xff\xa7\xf2\xc7\x2c\xfe"
"\xc7\xe6\x8f\x59\xfc\x8f\xcb\x1f\xb3\xf8\x1f\x9f\x3f\x66\xf1\xff\x74\xfe"
"\x98\xc5\xff\x33\xf9\x63\x16\xff\x13\xf2\xc7\x2c\xfe\x27\xe6\x8f\x59\xfc"
"\x4f\xca\x1f\xb3\xf8\x9f\x9c\x3f\x66\xf1\x3f\x25\x7f\xcc\xe2\xff\xd9\xfc"
"\x31\x8b\xff\xe7\xf2\xc7\x2c\xfe\x9f\xcf\x1f\xb3\xf8\x7f\x21\x7f\xcc\xe2"
"\x7f\x6a\xfe\x98\xc5\xff\x8b\xf9\x63\x16\xff\x2f\xe5\x8f\x59\xfc\xbf\x9c"
"\x3f\x66\xf1\xff\x4a\xfe\x98\xc5\xff\xb4\xfc\x31\x8b\xff\xe9\xf9\x63\x16"
"\xff\x33\xf2\xc7\x2c\xfe\x67\xe6\x8f\x59\xfc\xcf\xca\x1f\xb3\xf8\x9f\x9d"
"\x3f\x66\xf1\xff\x6a\xfe\x98\xc5\xff\x6b\xf9\x63\x16\xff\x73\xf2\xc7\x2c"
"\xfe\x5f\xcf\x1f\xb3\xf8\x9f\x9b\x3f\x66\xf1\x3f\x2f\x7f\xcc\xe2\x7f\x7e"
"\xfe\x98\xc5\xff\x82\xfc\x31\x8b\xff\x85\xf9\x63\x16\xff\x6f\xe4\x8f\x59"
"\xfc\xbf\x99\x3f\x66\xf1\xff\x56\xfe\x98\xc5\xff\xa2\xfc\x31\x8b\xff\xc5"
"\xf9\x63\x16\xff\x6f\xe7\x8f\x59\xfc\x2f\xc9\x1f\xb3\xf8\x7f\x27\x7f\xcc"
"\xe2\x7f\x69\xfe\x98\xc5\xff\xb2\xfc\x31\x8b\xff\xe5\xf9\x63\x16\xff\xef"
"\xe6\x8f\x59\xfc\xbf\x97\x3f\x66\xf1\xbf\x22\x7f\xcc\xe2\x7f\x65\xfe\x98"
"\xc5\xff\xfb\xf9\x63\x16\xff\xab\xf2\xc7\x2c\xfe\x3f\xc8\x1f\xb3\xf8\x5f"
"\x9d\x3f\x66\xf1\xff\x61\xfe\x98\xc5\xff\x9a\xfc\x31\x8b\xff\x8f\xf2\xc7"
"\x2c\xfe\xd7\xe6\x8f\x59\xfc\xaf\xcb\x1f\xb3\xf8\xff\x38\x7f\xcc\xe2\xff"
"\x93\xfc\x31\x8b\xff\x4f\xf3\xc7\x2c\xfe\xd7\xe7\x8f\x59\xfc\x7f\x96\x3f"
"\x66\xf1\xbf\x21\x7f\xcc\xe2\x7f\x63\xfe\x98\xc5\xff\xe7\xf9\x63\x16\xff"
"\x9b\xf2\xc7\x2c\xfe\x37\xe7\x8f\x59\xfc\x7f\x91\x3f\x66\xf1\xbf\x25\x7f"
"\xcc\xe2\x7f\x6b\xfe\x98\xc5\xff\xb6\xfc\x31\x8b\xff\xed\xf9\x63\x16\xff"
"\x5f\xe6\x8f\x59\xfc\xef\xc8\x1f\xb3\xf8\xff\x2a\x7f\xcc\xe2\xff\xeb\xfc"
"\x31\x8b\xff\x6f\xf2\xc7\x2c\xfe\xbf\xcd\x1f\xb3\xf8\xff\x2e\x7f\xcc\xe2"
"\xff\xfb\xfc\x31\x8b\xff\x9d\xf9\x63\x16\xff\x3f\xe4\x8f\x59\xfc\xff\x98"
"\x3f\x66\xf1\xff\x53\xfe\x98\xc5\xff\xae\xfc\x31\x8b\xff\xdd\xf9\x63\x16"
"\xff\x3f\xe7\x8f\x59\xfc\xef\xc9\x1f\xb3\xf8\xff\x25\x7f\xcc\xe2\x7f\x6f"
"\xfe\x98\xc5\xff\xbe\xfc\x31\x8b\xff\x5f\xf3\xc7\x2c\xfe\x7f\xcb\x1f\xb3"
"\xf8\xdf\x9f\x3f\x66\xf1\x7f\x20\x7f\xcc\xe2\xff\x60\xfe\x98\xc5\xff\xa1"
"\xfc\x31\x8b\xff\xc3\xf9\x63\x16\xff\x47\xf2\xc7\x2c\xfe\x8f\xe6\x8f\x59"
"\xfc\x1f\xcb\x1f\xb3\xf8\x3f\x9e\x3f\x66\xf1\x7f\x22\x7f\xcc\xe2\xff\x64"
"\xfe\x98\xc5\xff\xa9\xfc\x31\x8b\xff\xd3\xf9\x63\x16\xff\x67\xf2\xc7\x2c"
"\xfe\xcf\xe6\x8f\x59\xfc\x9f\xcb\x1f\xb3\xf8\x3f\x9f\x3f\x66\xf1\x7f\x21"
"\x7f\xcc\xe2\xff\x62\xfe\x98\xc5\xff\xa5\xfc\x31\x8b\xff\xcb\xf9\x63\x16"
"\xff\x57\xf2\xc7\x2c\xfe\xaf\xe6\x8f\x59\xfc\x5f\xcb\x1f\x93\xf8\x0f\x1e"
"\xc8\x1f\xb3\xf8\x0f\xca\x1f\xb3\xf8\x8f\x97\x3f\x66\xf1\x1f\x9c\x3f\x66"
"\xf1\x1f\x92\x3f\x66\xf1\x1f\x9a\x3f\x66\xf1\x1f\x96\x3f\x66\xf1\x1f\x3f"
"\x7f\xcc\xe2\x3f\x41\xfe\x98\xc5\x7f\xc2\xfc\x31\x8b\xff\x44\xf9\x63\x16"
"\xff\x89\xf3\xc7\x2c\xfe\x93\xe4\x8f\x59\xfc\x27\xcd\x1f\xb3\xf8\x0f\xcf"
"\x1f\xb3\xf8\x4f\x96\x3f\x66\xf1\x9f\x3c\x7f\xcc\xe2\x3f\x45\xfe\x98\xc5"
"\x7f\xca\xfc\x31\x8b\xff\x54\xf9\x63\x16\xff\xa9\xf3\xc7\x2c\xfe\xd3\xe4"
"\x8f\x59\xfc\xdf\x91\x3f\x66\xf1\x7f\x67\xfe\x98\xc5\x7f\xda\xfc\x31\x8b"
"\xff\x74\xf9\x63\x16\xff\xe9\xf3\xc7\x2c\xfe\xef\xca\x1f\xb3\xf8\xcf\x90"
"\x3f\x66\xf1\x1f\x91\x3f\x66\xf1\x7f\x77\xfe\x98\xc5\x7f\xc6\xfc\x31\x8b"
"\xff\x4c\xf9\x63\x16\xff\xf7\xe4\x8f\x59\xfc\x67\xce\x1f\xb3\xf8\xcf\x92"
"\x3f\x66\xf1\x9f\x35\x7f\xcc\xe2\x3f\x5b\xfe\x98\xc5\xff\xbd\xf9\x63\x16"
"\xff\xd9\xf3\xc7\x2c\xfe\x73\xe4\x8f\x59\xfc\xe7\xcc\x1f\xb3\xf8\xcf\x95"
"\x3f\x66\xf1\x9f\x3b\x7f\xcc\xe2\x3f\x4f\xfe\x98\xc5\x7f\xde\xfc\x31\x8b"
"\xff\x7c\xf9\x63\x16\xff\xf9\xf3\xc7\x2c\xfe\x0b\xe4\x8f\x59\xfc\x17\xcc"
"\x1f\xb3\xf8\x2f\x94\x3f\x66\xf1\x5f\x38\x7f\xcc\xe2\xbf\x48\xfe\x98\xc5"
"\x7f\xd1\xfc\x31\x8b\xff\x62\xf9\x63\x16\xff\xc5\xf3\xc7\x2c\xfe\x4b\xe4"
"\x8f\x59\xfc\x97\xcc\x1f\xb3\xf8\x2f\x95\x3f\x66\xf1\x5f\x3a\x7f\xcc\xe2"
"\xbf\x4c\xfe\x98\xc5\xff\x7d\xf9\x63\x16\xff\xf7\xe7\x8f\x59\xfc\x3f\x90"
"\x3f\x66\xf1\x5f\x36\x7f\xcc\xe2\xbf\x5c\xfe\x98\xc5\x7f\xf9\xfc\x31\x8b"
"\xff\x0a\xf9\x63\x16\xff\x15\xf3\xc7\x2c\xfe\x2b\xe5\x8f\x59\xfc\x57\xce"
"\x1f\xb3\xf8\xaf\x92\x3f\x66\xf1\x5f\x35\x7f\xcc\xe2\xbf\x5a\xfe\x98\xc5"
"\x7f\xf5\xfc\x31\x8b\xff\x1a\xf9\x63\x16\xff\x35\xf3\xc7\x2c\xfe\x6b\xe5"
"\x8f\x59\xfc\xd7\xce\x1f\xb3\xf8\xaf\x93\x3f\x66\xf1\x5f\x37\x7f\xcc\xe2"
"\xbf\x5e\xfe\x98\xc5\x7f\xfd\xfc\x31\x8b\xff\x06\xf9\x63\x16\xff\x0d\xf3"
"\xc7\x2c\xfe\x1b\xe5\x8f\x59\xfc\x37\xce\x1f\xb3\xf8\x6f\x92\x3f\x66\xf1"
"\xdf\x34\x7f\xcc\xe2\xbf\x59\xfe\x98\xc5\x7f\xf3\xfc\x31\x8b\xff\x16\xf9"
"\x63\x16\xff\x2d\xf3\xc7\x2c\xfe\x5b\xe5\x8f\x59\xfc\xb7\xce\x1f\xb3\xf8"
"\x7f\x30\x7f\xcc\xe2\xbf\x4d\xfe\x98\xc5\x7f\xdb\xfc\x31\x8b\xff\x76\xf9"
"\x63\x16\xff\xed\xf3\xc7\x2c\xfe\x3b\xe4\x8f\x59\xfc\x77\xcc\x1f\xb3\xf8"
"\xef\x94\x3f\x66\xf1\xdf\x39\x7f\xcc\xe2\xbf\x4b\xfe\x98\xc5\x7f\xd7\xfc"
"\x31\x8b\xff\x6e\xf9\x63\x16\xff\x0f\xe5\x8f\x59\xfc\x77\xcf\x1f\xb3\xf8"
"\xef\x91\x3f\x66\xf1\xdf\x33\x7f\xcc\xe2\xbf\x57\xfe\x98\xc5\x7f\xef\xfc"
"\x31\x8b\xff\x87\xf3\xc7\x2c\xfe\xfb\xe4\x8f\x59\xfc\xf7\xcd\x1f\xb3\xf8"
"\xef\x97\x3f\x66\xf1\xff\x48\xfe\x98\xc5\xff\xa3\xf9\x63\x16\xff\x8f\xe5"
"\x8f\x59\xfc\xf7\xcf\x1f\xb3\xf8\x1f\x90\x3f\x66\xf1\x3f\x30\x7f\xcc\xe2"
"\x7f\x50\xfe\x98\xc5\xff\xe0\xfc\x31\x8b\xff\x21\xf9\x63\x16\xff\x43\xf3"
"\xc7\x2c\xfe\x87\xe5\x8f\x59\xfc\x0f\xcf\x1f\xb3\xf8\x1f\x91\x3f\x66\xf1"
"\x3f\x32\x7f\xcc\xe2\x7f\x54\xfe\x98\xc5\xff\xe3\xf9\x63\x16\xff\xa3\xf3"
"\xc7\x2c\xfe\x9f\xc8\x1f\xb3\xf8\x7f\x32\x7f\xcc\xe2\x7f\x4c\xfe\x98\xc5"
"\xff\x53\xf9\x63\x16\xff\x63\xf3\xc7\x2c\xfe\xc7\xe5\x8f\x59\xfc\x8f\xcf"
"\x1f\xb3\xf8\x7f\x3a\x7f\xcc\xe2\xff\x99\xfc\x31\x8b\xff\x09\xf9\x63\x16"
"\xff\x13\xf3\xc7\x2c\xfe\x27\xe5\x8f\x59\xfc\x4f\xce\x1f\xb3\xf8\x9f\x92"
"\x3f\x66\xf1\xff\x6c\xfe\x98\xc5\xff\x73\xf9\x63\x16\xff\xcf\xe7\x8f\x59"
"\xfc\xbf\x90\x3f\x66\xf1\x3f\x35\x7f\xcc\xe2\xff\xc5\xfc\x31\x8b\xff\x97"
"\xf2\xc7\x2c\xfe\x5f\xce\x1f\xb3\xf8\x7f\x25\x7f\xcc\xe2\x7f\x5a\xfe\x98"
"\xc5\xff\xf4\xfc\x31\x8b\xff\x19\xf9\x63\x16\xff\x33\xf3\xc7\x2c\xfe\x67"
"\xe5\x8f\x59\xfc\xcf\xce\x1f\xb3\xf8\x7f\x35\x7f\xcc\xe2\xff\xb5\xfc\x31"
"\x8b\xff\x39\xf9\x63\x16\xff\xaf\xe7\x8f\x59\xfc\xcf\xcd\x1f\xb3\xf8\x9f"
"\x97\x3f\x66\xf1\x3f\x3f\x7f\xcc\xe2\x7f\x41\xfe\x98\xc5\xff\xc2\xfc\x31"
"\x8b\xff\x37\xf2\xc7\x2c\xfe\xdf\xcc\x1f\xb3\xf8\x7f\x2b\x7f\xcc\xe2\x7f"
"\x51\xfe\x98\xc5\xff\xe2\xfc\x31\x8b\xff\xb7\xf3\xc7\x2c\xfe\x97\xe4\x8f"
"\x59\xfc\xbf\x93\x3f\x66\xf1\xbf\x34\x7f\xcc\xe2\x7f\x59\xfe\x98\xc5\xff"
"\xf2\xfc\x31\x8b\xff\x77\xf3\xc7\x2c\xfe\xdf\xcb\x1f\xb3\xf8\x5f\x91\x3f"
"\x66\xf1\xbf\x32\x7f\xcc\xe2\xff\xfd\xfc\x31\x8b\xff\x55\xf9\x63\x16\xff"
"\x1f\xe4\x8f\x59\xfc\xaf\xce\x1f\xb3\xf8\xff\x30\x7f\xcc\xe2\x7f\x4d\xfe"
"\x98\xc5\xff\x47\xf9\x63\x16\xff\x6b\xf3\xc7\x2c\xfe\xd7\xe5\x8f\x59\xfc"
"\x7f\x9c\x3f\x66\xf1\xff\x49\xfe\x98\xc5\xff\xa7\xf9\x63\x16\xff\xeb\xf3"
"\xc7\x2c\xfe\x3f\xcb\x1f\xb3\xf8\xdf\x90\x3f\x66\xf1\xbf\x31\x7f\xcc\xe2"
"\xff\xf3\xfc\x31\x8b\xff\x4d\xf9\x63\x16\xff\x9b\xf3\xc7\x2c\xfe\xbf\xc8"
"\x1f\xb3\xf8\xdf\x92\x3f\x66\xf1\xbf\x35\x7f\xcc\xe2\x7f\x5b\xfe\x98\xc5"
"\xff\xf6\xfc\x31\x8b\xff\x2f\xf3\xc7\x2c\xfe\x77\xe4\x8f\x59\xfc\x7f\x95"
"\x3f\x66\xf1\xff\x75\xfe\x98\xc5\xff\x37\xf9\x63\x16\xff\xdf\xe6\x8f\x59"
"\xfc\x7f\x97\x3f\x66\xf1\xff\x7d\xfe\x98\xc5\xff\xce\xfc\x31\x8b\xff\x1f"
"\xf2\xc7\x2c\xfe\x7f\xcc\x1f\xb3\xf8\xff\x29\x7f\xcc\xe2\x7f\x57\xfe\x98"
"\xc5\xff\xee\xfc\x31\x8b\xff\x9f\xf3\xc7\x2c\xfe\xf7\xe4\x8f\x59\xfc\xff"
"\x92\x3f\x66\xf1\xbf\x37\x7f\xcc\xe2\x7f\x5f\xfe\x98\xc5\xff\xaf\xf9\x63"
"\x16\xff\xbf\xe5\x8f\x59\xfc\xef\xcf\x1f\xb3\xf8\x3f\x90\x3f\x66\xf1\x7f"
"\x30\x7f\xcc\xe2\xff\x50\xfe\x98\xc5\xff\xe1\xfc\x31\x8b\xff\x23\xf9\x63"
"\x16\xff\x47\xf3\xc7\x2c\xfe\x8f\xe5\x8f\x59\xfc\x1f\xcf\x1f\xb3\xf8\x3f"
"\x91\x3f\x66\xf1\x7f\x32\x7f\xcc\xe2\xff\x54\xfe\x98\xc5\xff\xe9\xfc\x31"
"\x8b\xff\x33\xf9\x63\x16\xff\x67\xf3\xc7\x2c\xfe\xcf\xe5\x8f\x59\xfc\x9f"
"\xcf\x1f\xb3\xf8\xbf\x90\x3f\x66\xf1\x7f\x31\x7f\xcc\xe2\xff\x52\xfe\x98"
"\xc5\xff\xe5\xfc\x31\x8b\xff\x2b\xf9\x63\x16\xff\x57\xf3\xc7\x2c\xfe\xaf"
"\xe5\x8f\x49\xfc\x87\x0c\xe4\x8f\x59\xfc\x07\xe5\x8f\x59\xfc\xc7\xcb\x1f"
"\xb3\xf8\x0f\xce\x1f\xb3\xf8\x0f\xc9\x1f\xb3\xf8\x0f\xcd\x1f\xb3\xf8\x0f"
"\xcb\x1f\xb3\xf8\x8f\x9f\x3f\x66\xf1\x9f\x20\x7f\xcc\xe2\x3f\x61\xfe\x98"
"\xc5\x7f\xa2\xfc\x31\x8b\xff\xc4\xf9\x63\x16\xff\x49\xf2\xc7\x2c\xfe\x93"
"\xe6\x8f\x59\xfc\x87\xe7\x8f\x59\xfc\x27\xcb\x1f\xb3\xf8\x4f\x9e\x3f\x66"
"\xf1\x9f\x22\x7f\xcc\xe2\x3f\x65\xfe\x98\xc5\x7f\xaa\xfc\x31\x8b\xff\xd4"
"\xf9\x63\x16\xff\x69\xf2\xc7\x2c\xfe\xef\xc8\x1f\xb3\xf8\xbf\x33\x7f\xcc"
"\xe2\x3f\x6d\xfe\x98\xc5\x7f\xba\xfc\x31\x8b\xff\xf4\xf9\x63\x16\xff\x77"
"\xe5\x8f\x59\xfc\x67\xc8\x1f\xb3\xf8\x8f\xc8\x1f\xb3\xf8\xbf\x3b\x7f\xcc"
"\xe2\x3f\x63\xfe\x98\xc5\x7f\xa6\xfc\x31\x8b\xff\x7b\xf2\xc7\x2c\xfe\x33"
"\xe7\x8f\x59\xfc\x67\xc9\x1f\xb3\xf8\xcf\x9a\x3f\x66\xf1\x9f\x2d\x7f\xcc"
"\xe2\xff\xde\xfc\x31\x8b\xff\xec\xf9\x63\x16\xff\x39\xf2\xc7\x2c\xfe\x73"
"\xe6\x8f\x59\xfc\xe7\xca\x1f\xb3\xf8\xcf\x9d\x3f\x66\xf1\x9f\x27\x7f\xcc"
"\xe2\x3f\x6f\xfe\x98\xc5\x7f\xbe\xfc\x31\x8b\xff\xfc\xf9\x63\x16\xff\x05"
"\xf2\xc7\x2c\xfe\x0b\xe6\x8f\x59\xfc\x17\xca\x1f\xb3\xf8\x2f\x9c\x3f\x66"
"\xf1\x5f\x24\x7f\xcc\xe2\xbf\x68\xfe\x98\xc5\x7f\xb1\xfc\x31\x8b\xff\xe2"
"\xf9\x63\x16\xff\x25\xf2\xc7\x2c\xfe\x4b\xe6\x8f\x59\xfc\x97\xca\x1f\xb3"
"\xf8\x2f\x9d\x3f\x66\xf1\x5f\x26\x7f\xcc\xe2\xff\xbe\xfc\x31\x8b\xff\xfb"
"\xf3\xc7\x2c\xfe\x1f\xc8\x1f\xb3\xf8\x2f\x9b\x3f\x66\xf1\x5f\x2e\x7f\xcc"
"\xe2\xbf\x7c\xfe\x98\xc5\x7f\x85\xfc\x31\x8b\xff\x8a\xf9\x63\x16\xff\x95"
"\xf2\xc7\x2c\xfe\x2b\xe7\x8f\x59\xfc\x57\xc9\x1f\xb3\xf8\xaf\x9a\x3f\x66"
"\xf1\x5f\x2d\x7f\xcc\xe2\xbf\x7a\xfe\x98\xc5\x7f\x8d\xfc\x31\x8b\xff\x9a"
"\xf9\x63\x16\xff\xb5\xf2\xc7\x2c\xfe\x6b\xe7\x8f\x59\xfc\xd7\xc9\x1f\xb3"
"\xf8\xaf\x9b\x3f\x66\xf1\x5f\x2f\x7f\xcc\xe2\xbf\x7e\xfe\x98\xc5\x7f\x83"
"\xfc\x31\x8b\xff\x86\xf9\x63\x16\xff\x8d\xf2\xc7\x2c\xfe\x1b\xe7\x8f\x59"
"\xfc\x37\xc9\x1f\xb3\xf8\x6f\x9a\x3f\x66\xf1\xdf\x2c\x7f\xcc\xe2\xbf\x79"
"\xfe\x98\xc5\x7f\x8b\xfc\x31\x8b\xff\x96\xf9\x63\x16\xff\xad\xf2\xc7\x2c"
"\xfe\x5b\xe7\x8f\x59\xfc\x3f\x98\x3f\x66\xf1\xdf\x26\x7f\xcc\xe2\xbf\x6d"
"\xfe\x98\xc5\x7f\xbb\xfc\x31\x8b\xff\xf6\xf9\x63\x16\xff\x1d\xf2\xc7\x2c"
"\xfe\x3b\xe6\x8f\x59\xfc\x77\xca\x1f\xb3\xf8\xef\x9c\x3f\x66\xf1\xdf\x25"
"\x7f\xcc\xe2\xbf\x6b\xfe\x98\xc5\x7f\xb7\xfc\x31\x8b\xff\x87\xf2\xc7\x2c"
"\xfe\xbb\xe7\x8f\x59\xfc\xf7\xc8\x1f\xb3\xf8\xef\x99\x3f\x66\xf1\xdf\x2b"
"\x7f\xcc\xe2\xbf\x77\xfe\x98\xc5\xff\xc3\xf9\x63\x16\xff\x7d\xf2\xc7\x2c"
"\xfe\xfb\xe6\x8f\x59\xfc\xf7\xcb\x1f\xb3\xf8\x7f\x24\x7f\xcc\xe2\xff\xd1"
"\xfc\x31\x8b\xff\xc7\xf2\xc7\x2c\xfe\xfb\xe7\x8f\x59\xfc\x0f\xc8\x1f\xb3"
"\xf8\x1f\x98\x3f\x66\xf1\x3f\x28\x7f\xcc\xe2\x7f\x70\xfe\x98\xc5\xff\x90"
"\xfc\x31\x8b\xff\xa1\xf9\x63\x16\xff\xc3\xf2\xc7\x2c\xfe\x87\xe7\x8f\x59"
"\xfc\x8f\xc8\x1f\xb3\xf8\x1f\x99\x3f\x66\xf1\x3f\x2a\x7f\xcc\xe2\xff\xf1"
"\xfc\x31\x8b\xff\xd1\xf9\x63\x16\xff\x4f\xe4\x8f\x59\xfc\x3f\x99\x3f\x66"
"\xf1\x3f\x26\x7f\xcc\xe2\xff\xa9\xfc\x31\x8b\xff\xb1\xf9\x63\x16\xff\xe3"
"\xf2\xc7\x2c\xfe\xc7\xe7\x8f\x59\xfc\x3f\x9d\x3f\x66\xf1\xff\x4c\xfe\x98"
"\xc5\xff\x84\xfc\x31\x8b\xff\x89\xf9\x63\x16\xff\x93\xf2\xc7\x2c\xfe\x27"
"\xe7\x8f\x59\xfc\x4f\xc9\x1f\xb3\xf8\x7f\x36\x7f\xcc\xe2\xff\xb9\xfc\x31"
"\x8b\xff\xe7\xf3\xc7\x2c\xfe\x5f\xc8\x1f\xb3\xf8\x9f\x9a\x3f\x66\xf1\xff"
"\x62\xfe\x98\xc5\xff\x4b\xf9\x63\x16\xff\x2f\xe7\x8f\x59\xfc\xbf\x92\x3f"
"\x66\xf1\x3f\x2d\x7f\xcc\xe2\x7f\x7a\xfe\x98\xc5\xff\x8c\xfc\x31\x8b\xff"
"\x99\xf9\x63\x16\xff\xb3\xf2\xc7\x2c\xfe\x67\xe7\x8f\x59\xfc\xbf\x9a\x3f"
"\x66\xf1\xff\x5a\xfe\x98\xc5\xff\x9c\xfc\x31\x8b\xff\xd7\xf3\xc7\x2c\xfe"
"\xe7\xe6\x8f\x59\xfc\xcf\xcb\x1f\xb3\xf8\x9f\x9f\x3f\x66\xf1\xbf\x20\x7f"
"\xcc\xe2\x7f\x61\xfe\x98\xc5\xff\x1b\xf9\x63\x16\xff\x6f\xe6\x8f\x59\xfc"
"\xbf\x95\x3f\x66\xf1\xbf\x28\x7f\xcc\xe2\x7f\x71\xfe\x98\xc5\xff\xdb\xf9"
"\x63\x16\xff\x4b\xf2\xc7\x2c\xfe\xdf\xc9\x1f\xb3\xf8\x5f\x9a\x3f\x66\xf1"
"\xbf\x2c\x7f\xcc\xe2\x7f\x79\xfe\x98\xc5\xff\xbb\xf9\x63\x16\xff\xef\xe5"
"\x8f\x59\xfc\xaf\xc8\x1f\xb3\xf8\x5f\x99\x3f\x66\xf1\xff\x7e\xfe\x98\xc5"
"\xff\xaa\xfc\x31\x8b\xff\x0f\xf2\xc7\x2c\xfe\x57\xe7\x8f\x59\xfc\x7f\x98"
"\x3f\x66\xf1\xbf\x26\x7f\xcc\xe2\xff\xa3\xfc\x31\x8b\xff\xb5\xf9\x63\x16"
"\xff\xeb\xf2\xc7\x2c\xfe\x3f\xce\x1f\xb3\xf8\xff\x24\x7f\xcc\xe2\xff\xd3"
"\xfc\x31\x8b\xff\xf5\xf9\x63\x16\xff\x9f\xe5\x8f\x59\xfc\x6f\xc8\x1f\xb3"
"\xf8\xdf\x98\x3f\x66\xf1\xff\x79\xfe\x98\xc5\xff\xa6\xfc\x31\x8b\xff\xcd"
"\xf9\x63\x16\xff\x5f\xe4\x8f\x59\xfc\x6f\xc9\x1f\xb3\xf8\xdf\x9a\x3f\x66"
"\xf1\xbf\x2d\x7f\xcc\xe2\x7f\x7b\xfe\x98\xc5\xff\x97\xf9\x63\x16\xff\x3b"
"\xf2\xc7\x2c\xfe\xbf\xca\x1f\xb3\xf8\xff\x3a\x7f\xcc\xe2\xff\x9b\xfc\x31"
"\x8b\xff\x6f\xf3\xc7\x2c\xfe\xbf\xcb\x1f\xb3\xf8\xff\x3e\x7f\xcc\xe2\x7f"
"\x67\xfe\x98\xc5\xff\x0f\xf9\x63\x16\xff\x3f\xe6\x8f\x59\xfc\xff\x94\x3f"
"\x66\xf1\xbf\x2b\x7f\xcc\xe2\x7f\x77\xfe\x98\xc5\xff\xcf\xf9\x63\x16\xff"
"\x7b\xf2\xc7\x2c\xfe\x7f\xc9\x1f\xb3\xf8\xdf\x9b\x3f\x66\xf1\xbf\x2f\x7f"
"\xcc\xe2\xff\xd7\xfc\x31\x8b\xff\xdf\xf2\xc7\x2c\xfe\xf7\xe7\x8f\x59\xfc"
"\x1f\xc8\x1f\xb3\xf8\x3f\x98\x3f\x66\xf1\x7f\x28\x7f\xcc\xe2\xff\x70\xfe"
"\x98\xc5\xff\x91\xfc\x31\x8b\xff\xa3\xf9\x63\x16\xff\xc7\xf2\xc7\x2c\xfe"
"\x8f\xe7\x8f\x59\xfc\x9f\xc8\x1f\xb3\xf8\x3f\x99\x3f\x66\xf1\x7f\x2a\x7f"
"\xcc\xe2\xff\x74\xfe\x98\xc5\xff\x99\xfc\x31\x8b\xff\xb3\xf9\x63\x16\xff"
"\xe7\xf2\xc7\x2c\xfe\xcf\xe7\x8f\x59\xfc\x5f\xc8\x1f\xb3\xf8\xbf\x98\x3f"
"\x66\xf1\x7f\x29\x7f\xcc\xe2\xff\x72\xfe\x98\xc5\xff\x95\xfc\x31\x8b\xff"
"\xab\xf9\x63\x16\xff\xd7\xf2\xc7\x24\xfe\x43\x07\xf2\xc7\x2c\xfe\x83\xf2"
"\xc7\x2c\xfe\xe3\xe5\x8f\x59\xfc\x07\xe7\x8f\x59\xfc\x87\xe4\x8f\x59\xfc"
"\x87\xe6\x8f\x59\xfc\x87\xe5\x8f\x59\xfc\xc7\xcf\x1f\xb3\xf8\x4f\x90\x3f"
"\x66\xf1\x9f\x30\x7f\xcc\xe2\x3f\x51\xfe\x98\xc5\x7f\xe2\xfc\x31\x8b\xff"
"\x24\xf9\x63\x16\xff\x49\xf3\xc7\x2c\xfe\xc3\xf3\xc7\x2c\xfe\x93\xe5\x8f"
"\x59\xfc\x27\xcf\x1f\xb3\xf8\x4f\x91\x3f\x66\xf1\x9f\x32\x7f\xcc\xe2\x3f"
"\x55\xfe\x98\xc5\x7f\xea\xfc\x31\x8b\xff\x34\xf9\x63\x16\xff\x77\xe4\x8f"
"\x59\xfc\xdf\x99\x3f\x66\xf1\x9f\x36\x7f\xcc\xe2\x3f\x5d\xfe\x98\xc5\x7f"
"\xfa\xfc\x31\x8b\xff\xbb\xf2\xc7\x2c\xfe\x33\xe4\x8f\x59\xfc\x47\xe4\x8f"
"\x59\xfc\xdf\x9d\x3f\x66\xf1\x9f\x31\x7f\xcc\xe2\x3f\x53\xfe\x98\xc5\xff"
"\x3d\xf9\x63\x16\xff\x99\xf3\xc7\x2c\xfe\xb3\xe4\x8f\x59\xfc\x67\xcd\x1f"
"\xb3\xf8\xcf\x96\x3f\x66\xf1\x7f\x6f\xfe\x98\xc5\x7f\xf6\xfc\x31\x8b\xff"
"\x1c\xf9\x63\x16\xff\x39\xf3\xc7\x2c\xfe\x73\xe5\x8f\x59\xfc\xe7\xce\x1f"
"\xb3\xf8\xcf\x93\x3f\x66\xf1\x9f\x37\x7f\xcc\xe2\x3f\x5f\xfe\x98\xc5\x7f"
"\xfe\xfc\x31\x8b\xff\x02\xf9\x63\x16\xff\x05\xf3\xc7\x2c\xfe\x0b\xe5\x8f"
"\x59\xfc\x17\xce\x1f\xb3\xf8\x2f\x92\x3f\x66\xf1\x5f\x34\x7f\xcc\xe2\xbf"
"\x58\xfe\x98\xc5\x7f\xf1\xfc\x31\x8b\xff\x12\xf9\x63\x16\xff\x25\xf3\xc7"
"\x2c\xfe\x4b\xe5\x8f\x59\xfc\x97\xce\x1f\xb3\xf8\x2f\x93\x3f\x66\xf1\x7f"
"\x5f\xfe\x98\xc5\xff\xfd\xf9\x63\x16\xff\x0f\xe4\x8f\x59\xfc\x97\xcd\x1f"
"\xb3\xf8\x2f\x97\x3f\x66\xf1\x5f\x3e\x7f\xcc\xe2\xbf\x42\xfe\x98\xc5\x7f"
"\xc5\xfc\x31\x8b\xff\x4a\xf9\x63\x16\xff\x95\xf3\xc7\x2c\xfe\xab\xe4\x8f"
"\x59\xfc\x57\xcd\x1f\xb3\xf8\xaf\x96\x3f\x66\xf1\x5f\x3d\x7f\xcc\xe2\xbf"
"\x46\xfe\x98\xc5\x7f\xcd\xfc\x31\x8b\xff\x5a\xf9\x63\x16\xff\xb5\xf3\xc7"
"\x2c\xfe\xeb\xe4\x8f\x59\xfc\xd7\xcd\x1f\xb3\xf8\xaf\x97\x3f\x66\xf1\x5f"
"\x3f\x7f\xcc\xe2\xbf\x41\xfe\x98\xc5\x7f\xc3\xfc\x31\x8b\xff\x46\xf9\x63"
"\x16\xff\x8d\xf3\xc7\x2c\xfe\x9b\xe4\x8f\x59\xfc\x37\xcd\x1f\xb3\xf8\x6f"
"\x96\x3f\x66\xf1\xdf\x3c\x7f\xcc\xe2\xbf\x45\xfe\x98\xc5\x7f\xcb\xfc\x31"
"\x8b\xff\x56\xf9\x63\x16\xff\xad\xf3\xc7\x2c\xfe\x1f\xcc\x1f\xb3\xf8\x6f"
"\x93\x3f\x66\xf1\xdf\x36\x7f\xcc\xe2\xbf\x5d\xfe\x98\xc5\x7f\xfb\xfc\x31"
"\x8b\xff\x0e\xf9\x63\x16\xff\x1d\xf3\xc7\x2c\xfe\x3b\xe5\x8f\x59\xfc\x77"
"\xce\x1f\xb3\xf8\xef\x92\x3f\x66\xf1\xdf\x35\x7f\xcc\xe2\xbf\x5b\xfe\x98"
"\xc5\xff\x43\xf9\x63\x16\xff\xdd\xf3\xc7\x2c\xfe\x7b\xe4\x8f\x59\xfc\xf7"
"\xcc\x1f\xb3\xf8\xef\x95\x3f\x66\xf1\xdf\x3b\x7f\xcc\xe2\xff\xe1\xfc\x31"
"\x8b\xff\x3e\xf9\x63\x16\xff\x7d\xf3\xc7\x2c\xfe\xfb\xe5\x8f\x59\xfc\x3f"
"\x92\x3f\x66\xf1\xff\x68\xfe\x98\xc5\xff\x63\xf9\x63\x16\xff\xfd\xf3\xc7"
"\x2c\xfe\x07\xe4\x8f\x59\xfc\x0f\xcc\x1f\xb3\xf8\x1f\x94\x3f\x66\xf1\x3f"
"\x38\x7f\xcc\xe2\x7f\x48\xfe\x98\xc5\xff\xd0\xfc\x31\x8b\xff\x61\xf9\x63"
"\x16\xff\xc3\xf3\xc7\x2c\xfe\x47\xe4\x8f\x59\xfc\x8f\xcc\x1f\xb3\xf8\x1f"
"\x95\x3f\x66\xf1\xff\x78\xfe\x98\xc5\xff\xe8\xfc\x31\x8b\xff\x27\xf2\xc7"
"\x2c\xfe\x9f\xcc\x1f\xb3\xf8\x1f\x93\x3f\x66\xf1\xff\x54\xfe\x98\xc5\xff"
"\xd8\xfc\x31\x8b\xff\x71\xf9\x63\x16\xff\xe3\xf3\xc7\x2c\xfe\x9f\xce\x1f"
"\xb3\xf8\x7f\x26\x7f\xcc\xe2\x7f\x42\xfe\x98\xc5\xff\xc4\xfc\x31\x8b\xff"
"\x49\xf9\x63\x16\xff\x93\xf3\xc7\x2c\xfe\xa7\xe4\x8f\x59\xfc\x3f\x9b\x3f"
"\x66\xf1\xff\x5c\xfe\x98\xc5\xff\xf3\xf9\x63\x16\xff\x2f\xe4\x8f\x59\xfc"
"\x4f\xcd\x1f\xb3\xf8\x7f\x31\x7f\xcc\xe2\xff\xa5\xfc\x31\x8b\xff\x97\xf3"
"\xc7\x2c\xfe\x5f\xc9\x1f\xb3\xf8\x9f\x96\x3f\x66\xf1\x3f\x3d\x7f\xcc\xe2"
"\x7f\x46\xfe\x98\xc5\xff\xcc\xfc\x31\x8b\xff\x59\xf9\x63\x16\xff\xb3\xf3"
"\xc7\x2c\xfe\x5f\xcd\x1f\xb3\xf8\x7f\x2d\x7f\xcc\xe2\x7f\x4e\xfe\x98\xc5"
"\xff\xeb\xf9\x63\x16\xff\x73\xf3\xc7\x2c\xfe\xe7\xe5\x8f\x59\xfc\xcf\xcf"
"\x1f\xb3\xf8\x5f\x90\x3f\x66\xf1\xbf\x30\x7f\xcc\xe2\xff\x8d\xfc\x31\x8b"
"\xff\x37\xf3\xc7\x2c\xfe\xdf\xca\x1f\xb3\xf8\x5f\x94\x3f\x66\xf1\xbf\x38"
"\x7f\xcc\xe2\xff\xed\xfc\x31\x8b\xff\x25\xf9\x63\x16\xff\xef\xe4\x8f\x59"
"\xfc\x2f\xcd\x1f\xb3\xf8\x5f\x96\x3f\x66\xf1\xbf\x3c\x7f\xcc\xe2\xff\xdd"
"\xfc\x31\x8b\xff\xf7\xf2\xc7\x2c\xfe\x57\xe4\x8f\x59\xfc\xaf\xcc\x1f\xb3"
"\xf8\x7f\x3f\x7f\xcc\xe2\x7f\x55\xfe\x98\xc5\xff\x07\xf9\x63\x16\xff\xab"
"\xf3\xc7\x2c\xfe\x3f\xcc\x1f\xb3\xf8\x5f\x93\x3f\x66\xf1\xff\x51\xfe\x98"
"\xc5\xff\xda\xfc\x31\x8b\xff\x75\xf9\x63\x16\xff\x1f\xe7\x8f\x59\xfc\x7f"
"\x92\x3f\x66\xf1\xff\x69\xfe\x98\xc5\xff\xfa\xfc\x31\x8b\xff\xcf\xf2\xc7"
"\x2c\xfe\x37\xe4\x8f\x59\xfc\x6f\xcc\x1f\xb3\xf8\xff\x3c\x7f\xcc\xe2\x7f"
"\x53\xfe\x98\xc5\xff\xe6\xfc\x31\x8b\xff\x2f\xf2\xc7\x2c\xfe\xb7\xe4\x8f"
"\x59\xfc\x6f\xcd\x1f\xb3\xf8\xdf\x96\x3f\x66\xf1\xbf\x3d\x7f\xcc\xe2\xff"
"\xcb\xfc\x31\x8b\xff\x1d\xf9\x63\x16\xff\x5f\xe5\x8f\x59\xfc\x7f\x9d\x3f"
"\x66\xf1\xff\x4d\xfe\x98\xc5\xff\xb7\xf9\x63\x16\xff\xdf\xe5\x8f\x59\xfc"
"\x7f\x9f\x3f\x66\xf1\xbf\x33\x7f\xcc\xe2\xff\x87\xfc\x31\x8b\xff\x1f\xf3"
"\xc7\x2c\xfe\x7f\xca\x1f\xb3\xf8\xdf\x95\x3f\x66\xf1\xbf\x3b\x7f\xcc\xe2"
"\xff\xe7\xfc\x31\x8b\xff\x3d\xf9\x63\x16\xff\xbf\xe4\x8f\x59\xfc\xef\xcd"
"\x1f\xb3\xf8\xdf\x97\x3f\x66\xf1\xff\x6b\xfe\x98\xc5\xff\x6f\xf9\x63\x16"
"\xff\xfb\xf3\xc7\x2c\xfe\x0f\xe4\x8f\x59\xfc\x1f\xcc\x1f\xb3\xf8\x3f\x94"
"\x3f\x66\xf1\x7f\x38\x7f\xcc\xe2\xff\x48\xfe\x98\xc5\xff\xd1\xfc\x31\x8b"
"\xff\x63\xf9\x63\x16\xff\xc7\xf3\xc7\x2c\xfe\x4f\xe4\x8f\x59\xfc\x9f\xcc"
"\x1f\xb3\xf8\x3f\x95\x3f\x66\xf1\x7f\x3a\x7f\xcc\xe2\xff\x4c\xfe\x98\xc5"
"\xff\xd9\xfc\x31\x8b\xff\x73\xf9\x63\x16\xff\xe7\xf3\xc7\x2c\xfe\x2f\xe4"
"\x8f\x59\xfc\x5f\xcc\x1f\xb3\xf8\xbf\x94\x3f\x66\xf1\x7f\x39\x7f\xcc\xe2"
"\xff\x4a\xfe\x98\xc5\xff\xd5\xfc\x31\x8b\xff\x6b\xf9\x63\x12\xff\x61\x03"
"\xf9\x63\x16\xff\x41\xf9\x63\x16\xff\xf1\xf2\xc7\x2c\xfe\x83\xf3\xc7\x2c"
"\xfe\x43\xf2\xc7\x2c\xfe\x43\xf3\xc7\x2c\xfe\xc3\xf2\xc7\x2c\xfe\xe3\xe7"
"\x8f\x59\xfc\x27\xc8\x1f\xb3\xf8\x4f\x98\x3f\x66\xf1\x9f\x28\x7f\xcc\xe2"
"\x3f\x71\xfe\x98\xc5\x7f\x92\xfc\x31\x8b\xff\xa4\xf9\x63\x16\xff\xe1\xf9"
"\x63\x16\xff\xc9\xf2\xc7\x2c\xfe\x93\xe7\x8f\x59\xfc\xa7\xc8\x1f\xb3\xf8"
"\x4f\x99\x3f\x66\xf1\x9f\x2a\x7f\xcc\xe2\x3f\x75\xfe\x98\xc5\x7f\x9a\xfc"
"\x31\x8b\xff\x3b\xf2\xc7\x2c\xfe\xef\xcc\x1f\xb3\xf8\x4f\x9b\x3f\x66\xf1"
"\x9f\x2e\x7f\xcc\xe2\x3f\x7d\xfe\x98\xc5\xff\x5d\xf9\x63\x16\xff\x19\xf2"
"\xc7\x2c\xfe\x23\xf2\xc7\x2c\xfe\xef\xce\x1f\xb3\xf8\xcf\x98\x3f\x66\xf1"
"\x9f\x29\x7f\xcc\xe2\xff\x9e\xfc\x31\x8b\xff\xcc\xf9\x63\x16\xff\x59\xf2"
"\xc7\x2c\xfe\xb3\xe6\x8f\x59\xfc\x67\xcb\x1f\xb3\xf8\xbf\x37\x7f\xcc\xe2"
"\x3f\x7b\xfe\x98\xc5\x7f\x8e\xfc\x31\x8b\xff\x9c\xf9\x63\x16\xff\xb9\xf2"
"\xc7\x2c\xfe\x73\xe7\x8f\x59\xfc\xe7\xc9\x1f\xb3\xf8\xcf\x9b\x3f\x66\xf1"
"\x9f\x2f\x7f\xcc\xe2\x3f\x7f\xfe\x98\xc5\x7f\x81\xfc\x31\x8b\xff\x82\xf9"
"\x63\x16\xff\x85\xf2\xc7\x2c\xfe\x0b\xe7\x8f\x59\xfc\x17\xc9\x1f\xb3\xf8"
"\x2f\x9a\x3f\x66\xf1\x5f\x2c\x7f\xcc\xe2\xbf\x78\xfe\x98\xc5\x7f\x89\xfc"
"\x31\x8b\xff\x92\xf9\x63\x16\xff\xa5\xf2\xc7\x2c\xfe\x4b\xe7\x8f\x59\xfc"
"\x97\xc9\x1f\xb3\xf8\xbf\x2f\x7f\xcc\xe2\xff\xfe\xfc\x31\x8b\xff\x07\xf2"
"\xc7\x2c\xfe\xcb\xe6\x8f\x59\xfc\x97\xcb\x1f\xb3\xf8\x2f\x9f\x3f\x66\xf1"
"\x5f\x21\x7f\xcc\xe2\xbf\x62\xfe\x98\xc5\x7f\xa5\xfc\x31\x8b\xff\xca\xf9"
"\x63\x16\xff\x55\xf2\xc7\x2c\xfe\xab\xe6\x8f\x59\xfc\x57\xcb\x1f\xb3\xf8"
"\xaf\x9e\x3f\x66\xf1\x5f\x23\x7f\xcc\xe2\xbf\x66\xfe\x98\xc5\x7f\xad\xfc"
"\x31\x8b\xff\xda\xf9\x63\x16\xff\x75\xf2\xc7\x2c\xfe\xeb\xe6\x8f\x59\xfc"
"\xd7\xcb\x1f\xb3\xf8\xaf\x9f\x3f\x66\xf1\xdf\x20\x7f\xcc\xe2\xbf\x61\xfe"
"\x98\xc5\x7f\xa3\xfc\x31\x8b\xff\xc6\xf9\x63\x16\xff\x4d\xf2\xc7\x2c\xfe"
"\x9b\xe6\x8f\x59\xfc\x37\xcb\x1f\xb3\xf8\x6f\x9e\x3f\x66\xf1\xdf\x22\x7f"
"\xcc\xe2\xbf\x65\xfe\x98\xc5\x7f\xab\xfc\x31\x8b\xff\xd6\xf9\x63\x16\xff"
"\x0f\xe6\x8f\x59\xfc\xb7\xc9\x1f\xb3\xf8\x6f\x9b\x3f\x66\xf1\xdf\x2e\x7f"
"\xcc\xe2\xbf\x7d\xfe\x98\xc5\x7f\x87\xfc\x31\x8b\xff\x8e\xf9\x63\x16\xff"
"\x9d\xf2\xc7\x2c\xfe\x3b\xe7\x8f\x59\xfc\x77\xc9\x1f\xb3\xf8\xef\x9a\x3f"
"\x66\xf1\xdf\x2d\x7f\xcc\xe2\xff\xa1\xfc\x31\x8b\xff\xee\xf9\x63\x16\xff"
"\x3d\xf2\xc7\x2c\xfe\x7b\xe6\x8f\x59\xfc\xf7\xca\x1f\xb3\xf8\xef\x9d\x3f"
"\x66\xf1\xff\x70\xfe\x98\xc5\x7f\x9f\xfc\x31\x8b\xff\xbe\xf9\x63\x16\xff"
"\xfd\xf2\xc7\x2c\xfe\x1f\xc9\x1f\xb3\xf8\x7f\x34\x7f\xcc\xe2\xff\xb1\xfc"
"\x31\x8b\xff\xfe\xf9\x63\x16\xff\x03\xf2\xc7\x2c\xfe\x07\xe6\x8f\x59\xfc"
"\x0f\xca\x1f\xb3\xf8\x1f\x9c\x3f\x66\xf1\x3f\x24\x7f\xcc\xe2\x7f\x68\xfe"
"\x98\xc5\xff\xb0\xfc\x31\x8b\xff\xe1\xf9\x63\x16\xff\x23\xf2\xc7\x2c\xfe"
"\x47\xe6\x8f\x59\xfc\x8f\xca\x1f\xb3\xf8\x7f\x3c\x7f\xcc\xe2\x7f\x74\xfe"
"\x98\xc5\xff\x13\xf9\x63\x16\xff\x4f\xe6\x8f\x59\xfc\x8f\xc9\x1f\xb3\xf8"
"\x7f\x2a\x7f\xcc\xe2\x7f\x6c\xfe\x98\xc5\xff\xb8\xfc\x31\x8b\xff\xf1\xf9"
"\x63\x16\xff\x4f\xe7\x8f\x59\xfc\x3f\x93\x3f\x66\xf1\x3f\x21\x7f\xcc\xe2"
"\x7f\x62\xfe\x98\xc5\xff\xa4\xfc\x31\x8b\xff\xc9\xf9\x63\x16\xff\x53\xf2"
"\xc7\x2c\xfe\x9f\xcd\x1f\xb3\xf8\x7f\x2e\x7f\xcc\xe2\xff\xf9\xfc\x31\x8b"
"\xff\x17\xf2\xc7\x2c\xfe\xa7\xe6\x8f\x59\xfc\xbf\x98\x3f\x66\xf1\xff\x52"
"\xfe\x98\xc5\xff\xcb\xf9\x63\x16\xff\xaf\xe4\x8f\x59\xfc\x4f\xcb\x1f\xb3"
"\xf8\x9f\x9e\x3f\x66\xf1\x3f\x23\x7f\xcc\xe2\x7f\x66\xfe\x98\xc5\xff\xac"
"\xfc\x31\x8b\xff\xd9\xf9\x63\x16\xff\xaf\xe6\x8f\x59\xfc\xbf\x96\x3f\x66"
"\xf1\x3f\x27\x7f\xcc\xe2\xff\xf5\xfc\x31\x8b\xff\xb9\xf9\x63\x16\xff\xf3"
"\xf2\xc7\x2c\xfe\xe7\xe7\x8f\x59\xfc\x2f\xc8\x1f\xb3\xf8\x5f\x98\x3f\x66"
"\xf1\xff\x46\xfe\x98\xc5\xff\x9b\xf9\x63\x16\xff\x6f\xe5\x8f\x59\xfc\x2f"
"\xca\x1f\xb3\xf8\x5f\x9c\x3f\x66\xf1\xff\x76\xfe\x98\xc5\xff\x92\xfc\x31"
"\x8b\xff\x77\xf2\xc7\x2c\xfe\x97\xe6\x8f\x59\xfc\x2f\xcb\x1f\xb3\xf8\x5f"
"\x9e\x3f\x66\xf1\xff\x6e\xfe\x98\xc5\xff\x7b\xf9\x63\x16\xff\x2b\xf2\xc7"
"\x2c\xfe\x57\xe6\x8f\x59\xfc\xbf\x9f\x3f\x66\xf1\xbf\x2a\x7f\xcc\xe2\xff"
"\x83\xfc\x31\x8b\xff\xd5\xf9\x63\x16\xff\x1f\xe6\x8f\x59\xfc\xaf\xc9\x1f"
"\xb3\xf8\xff\x28\x7f\xcc\xe2\x7f\x6d\xfe\x98\xc5\xff\xba\xfc\x31\x8b\xff"
"\x8f\xf3\xc7\x2c\xfe\x3f\xc9\x1f\xb3\xf8\xff\x34\x7f\xcc\xe2\x7f\x7d\xfe"
"\x98\xc5\xff\x67\xf9\x63\x16\xff\x1b\xf2\xc7\x2c\xfe\x37\xe6\x8f\x59\xfc"
"\x7f\x9e\x3f\x66\xf1\xbf\x29\x7f\xcc\xe2\x7f\x73\xfe\x98\xc5\xff\x17\xf9"
"\x63\x16\xff\x5b\xf2\xc7\x2c\xfe\xb7\xe6\x8f\x59\xfc\x6f\xcb\x1f\xb3\xf8"
"\xdf\x9e\x3f\x66\xf1\xff\x65\xfe\x98\xc5\xff\x8e\xfc\x31\x8b\xff\xaf\xf2"
"\xc7\x2c\xfe\xbf\xce\x1f\xb3\xf8\xff\x26\x7f\xcc\xe2\xff\xdb\xfc\x31\x8b"
"\xff\xef\xf2\xc7\x2c\xfe\xbf\xcf\x1f\xb3\xf8\xdf\x99\x3f\x66\xf1\xff\x43"
"\xfe\x98\xc5\xff\x8f\xf9\x63\x16\xff\x3f\xe5\x8f\x59\xfc\xef\xca\x1f\xb3"
"\xf8\xdf\x9d\x3f\x66\xf1\xff\x73\xfe\x98\xc5\xff\x9e\xfc\x31\x8b\xff\x5f"
"\xf2\xc7\x2c\xfe\xf7\xe6\x8f\x59\xfc\xef\xcb\x1f\xb3\xf8\xff\x35\x7f\xcc"
"\xe2\xff\xb7\xfc\x31\x8b\xff\xfd\xf9\x63\x16\xff\x07\xf2\xc7\x2c\xfe\x0f"
"\xe6\x8f\x59\xfc\x1f\xca\x1f\xb3\xf8\x3f\x9c\x3f\x66\xf1\x7f\x24\x7f\xcc"
"\xe2\xff\x68\xfe\x98\xc5\xff\xb1\xfc\x31\x8b\xff\xe3\xf9\x63\x16\xff\x27"
"\xf2\xc7\x2c\xfe\x4f\xe6\x8f\x59\xfc\x9f\xca\x1f\xb3\xf8\x3f\x9d\x3f\x66"
"\xf1\x7f\x26\x7f\xcc\xe2\xff\x6c\xfe\x98\xc5\xff\xb9\xfc\x31\x8b\xff\xf3"
"\xf9\x63\x16\xff\x17\xf2\xc7\x2c\xfe\x2f\xe6\x8f\x59\xfc\x5f\xca\x1f\xb3"
"\xf8\xbf\x9c\x3f\x66\xf1\x7f\x25\x7f\xcc\xe2\xff\x6a\xfe\x98\xc5\xff\xb5"
"\xfc\x31\x89\xff\xf8\x03\xf9\x63\x16\xff\x41\xf9\x63\x16\xff\xf1\xf2\xc7"
"\x2c\xfe\x83\xf3\xc7\x2c\xfe\x43\xf2\xc7\x2c\xfe\x43\xf3\xc7\x2c\xfe\xc3"
"\xf2\xc7\x2c\xfe\xe3\xe7\x8f\x59\xfc\x27\xc8\x1f\xb3\xf8\x4f\x98\x3f\x66"
"\xf1\x9f\x28\x7f\xcc\xe2\x3f\x71\xfe\x98\xc5\x7f\x92\xfc\x31\x8b\xff\xa4"
"\xf9\x63\x16\xff\xe1\xf9\x63\x16\xff\xc9\xf2\xc7\x2c\xfe\x93\xe7\x8f\x59"
"\xfc\xa7\xc8\x1f\xb3\xf8\x4f\x99\x3f\x66\xf1\x9f\x2a\x7f\xcc\xe2\x3f\x75"
"\xfe\x98\xc5\x7f\x9a\xfc\x31\x8b\xff\x3b\xf2\xc7\x2c\xfe\xef\xcc\x1f\xb3"
"\xf8\x4f\x9b\x3f\x66\xf1\x9f\x2e\x7f\xcc\xe2\x3f\x7d\xfe\x98\xc5\xff\x5d"
"\xf9\x63\x16\xff\x19\xf2\xc7\x2c\xfe\x23\xf2\xc7\x2c\xfe\xef\xce\x1f\xb3"
"\xf8\xcf\x98\x3f\x66\xf1\x9f\x29\x7f\xcc\xe2\xff\x9e\xfc\x31\x8b\xff\xcc"
"\xf9\x63\x16\xff\x59\xf2\xc7\x2c\xfe\xb3\xe6\x8f\x59\xfc\x67\xcb\x1f\xb3"
"\xf8\xbf\x37\x7f\xcc\xe2\x3f\x7b\xfe\x98\xc5\x7f\x8e\xfc\x31\x8b\xff\x9c"
"\xf9\x63\x16\xff\xb9\xf2\xc7\x2c\xfe\x73\xe7\x8f\x59\xfc\xe7\xc9\x1f\xb3"
"\xf8\xcf\x9b\x3f\x66\xf1\x9f\x2f\x7f\xcc\xe2\x3f\x7f\xfe\x98\xc5\x7f\x81"
"\xfc\x31\x8b\xff\x82\xf9\x63\x16\xff\x85\xf2\xc7\x2c\xfe\x0b\xe7\x8f\x59"
"\xfc\x17\xc9\x1f\xb3\xf8\x2f\x9a\x3f\x66\xf1\x5f\x2c\x7f\xcc\xe2\xbf\x78"
"\xfe\x98\xc5\x7f\x89\xfc\x31\x8b\xff\x92\xf9\x63\x16\xff\xa5\xf2\xc7\x2c"
"\xfe\x4b\xe7\x8f\x59\xfc\x97\xc9\x1f\xb3\xf8\xbf\x2f\x7f\xcc\xe2\xff\xfe"
"\xfc\x31\x8b\xff\x07\xf2\xc7\x2c\xfe\xcb\xe6\x8f\x59\xfc\x97\xcb\x1f\xb3"
"\xf8\x2f\x9f\x3f\x66\xf1\x5f\x21\x7f\xcc\xe2\xbf\x62\xfe\x98\xc5\x7f\xa5"
"\xfc\x31\x8b\xff\xca\xf9\x63\x16\xff\x55\xf2\xc7\x2c\xfe\xab\xe6\x8f\x59"
"\xfc\x57\xcb\x1f\xb3\xf8\xaf\x9e\x3f\x66\xf1\x5f\x23\x7f\xcc\xe2\xbf\x66"
"\xfe\x98\xc5\x7f\xad\xfc\x31\x8b\xff\xda\xf9\x63\x16\xff\x75\xf2\xc7\x2c"
"\xfe\xeb\xe6\x8f\x59\xfc\xd7\xcb\x1f\xb3\xf8\xaf\x9f\x3f\x66\xf1\xdf\x20"
"\x7f\xcc\xe2\xbf\x61\xfe\x98\xc5\x7f\xa3\xfc\x31\x8b\xff\xc6\xf9\x63\x16"
"\xff\x4d\xf2\xc7\x2c\xfe\x9b\xe6\x8f\x59\xfc\x37\xcb\x1f\xb3\xf8\x6f\x9e"
"\x3f\x66\xf1\xdf\x22\x7f\xcc\xe2\xbf\x65\xfe\x98\xc5\x7f\xab\xfc\x31\x8b"
"\xff\xd6\xf9\x63\x16\xff\x0f\xe6\x8f\x59\xfc\xb7\xc9\x1f\xb3\xf8\x6f\x9b"
"\x3f\x66\xf1\xdf\x2e\x7f\xcc\xe2\xbf\x7d\xfe\x98\xc5\x7f\x87\xfc\x31\x8b"
"\xff\x8e\xf9\x63\x16\xff\x9d\xf2\xc7\x2c\xfe\x3b\xe7\x8f\x59\xfc\x77\xc9"
"\x1f\xb3\xf8\xef\x9a\x3f\x66\xf1\xdf\x2d\x7f\xcc\xe2\xff\xa1\xfc\x31\x8b"
"\xff\xee\xf9\x63\x16\xff\x3d\xf2\xc7\x2c\xfe\x7b\xe6\x8f\x59\xfc\xf7\xca"
"\x1f\xb3\xf8\xef\x9d\x3f\x66\xf1\xff\x70\xfe\x98\xc5\x7f\x9f\xfc\x31\x8b"
"\xff\xbe\xf9\x63\x16\xff\xfd\xf2\xc7\x2c\xfe\x1f\xc9\x1f\xb3\xf8\x7f\x34"
"\x7f\xcc\xe2\xff\xb1\xfc\x31\x8b\xff\xfe\xf9\x63\x16\xff\x03\xf2\xc7\x2c"
"\xfe\x07\xe6\x8f\x59\xfc\x0f\xca\x1f\xb3\xf8\x1f\x9c\x3f\x66\xf1\x3f\x24"
"\x7f\xcc\xe2\x7f\x68\xfe\x98\xc5\xff\xb0\xfc\x31\x8b\xff\xe1\xf9\x63\x16"
"\xff\x23\xf2\xc7\x2c\xfe\x47\xe6\x8f\x59\xfc\x8f\xca\x1f\xb3\xf8\x7f\x3c"
"\x7f\xcc\xe2\x7f\x74\xfe\x98\xc5\xff\x13\xf9\x63\x16\xff\x4f\xe6\x8f\x59"
"\xfc\x8f\xc9\x1f\xb3\xf8\x7f\x2a\x7f\xcc\xe2\x7f\x6c\xfe\x98\xc5\xff\xb8"
"\xfc\x31\x8b\xff\xf1\xf9\x63\x16\xff\x4f\xe7\x8f\x59\xfc\x3f\x93\x3f\x66"
"\xf1\x3f\x21\x7f\xcc\xe2\x7f\x62\xfe\x98\xc5\xff\xa4\xfc\x31\x8b\xff\xc9"
"\xf9\x63\x16\xff\x53\xf2\xc7\x2c\xfe\x9f\xcd\x1f\xb3\xf8\x7f\x2e\x7f\xcc"
"\xe2\xff\xf9\xfc\x31\x8b\xff\x17\xf2\xc7\x2c\xfe\xa7\xe6\x8f\x59\xfc\xbf"
"\x98\x3f\x66\xf1\xff\x52\xfe\x98\xc5\xff\xcb\xf9\x63\x16\xff\xaf\xe4\x8f"
"\x59\xfc\x4f\xcb\x1f\xb3\xf8\x9f\x9e\x3f\x66\xf1\x3f\x23\x7f\xcc\xe2\x7f"
"\x66\xfe\x98\xc5\xff\xac\xfc\x31\x8b\xff\xd9\xf9\x63\x16\xff\xaf\xe6\x8f"
"\x59\xfc\xbf\x96\x3f\x66\xf1\x3f\x27\x7f\xcc\xe2\xff\xf5\xfc\x31\x8b\xff"
"\xb9\xf9\x63\x16\xff\xf3\xf2\xc7\x2c\xfe\xe7\xe7\x8f\x59\xfc\x2f\xc8\x1f"
"\xb3\xf8\x5f\x98\x3f\x66\xf1\xff\x46\xfe\x98\xc5\xff\x9b\xf9\x63\x16\xff"
"\x6f\xe5\x8f\x59\xfc\x2f\xca\x1f\xb3\xf8\x5f\x9c\x3f\x66\xf1\xff\x76\xfe"
"\x98\xc5\xff\x92\xfc\x31\x8b\xff\x77\xf2\xc7\x2c\xfe\x97\xe6\x8f\x59\xfc"
"\x2f\xcb\x1f\xb3\xf8\x5f\x9e\x3f\x66\xf1\xff\x6e\xfe\x98\xc5\xff\x7b\xf9"
"\x63\x16\xff\x2b\xf2\xc7\x2c\xfe\x57\xe6\x8f\x59\xfc\xbf\x9f\x3f\x66\xf1"
"\xbf\x2a\x7f\xcc\xe2\xff\x83\xfc\x31\x8b\xff\xd5\xf9\x63\x16\xff\x1f\xe6"
"\x8f\x59\xfc\xaf\xc9\x1f\xb3\xf8\xff\x28\x7f\xcc\xe2\x7f\x6d\xfe\x98\xc5"
"\xff\xba\xfc\x31\x8b\xff\x8f\xf3\xc7\x2c\xfe\x3f\xc9\x1f\xb3\xf8\xff\x34"
"\x7f\xcc\xe2\x7f\x7d\xfe\x98\xc5\xff\x67\xf9\x63\x16\xff\x1b\xf2\xc7\x2c"
"\xfe\x37\xe6\x8f\x59\xfc\x7f\x9e\x3f\x66\xf1\xbf\x29\x7f\xcc\xe2\x7f\x73"
"\xfe\x98\xc5\xff\x17\xf9\x63\x16\xff\x5b\xf2\xc7\x2c\xfe\xb7\xe6\x8f\x59"
"\xfc\x6f\xcb\x1f\xb3\xf8\xdf\x9e\x3f\x66\xf1\xff\x65\xfe\x98\xc5\xff\x8e"
"\xfc\x31\x8b\xff\xaf\xf2\xc7\x2c\xfe\xbf\xce\x1f\xb3\xf8\xff\x26\x7f\xcc"
"\xe2\xff\xdb\xfc\x31\x8b\xff\xef\xf2\xc7\x2c\xfe\xbf\xcf\x1f\xb3\xf8\xdf"
"\x99\x3f\x66\xf1\xff\x43\xfe\x98\xc5\xff\x8f\xf9\x63\x16\xff\x3f\xe5\x8f"
"\x59\xfc\xef\xca\x1f\xb3\xf8\xdf\x9d\x3f\x66\xf1\xff\x73\xfe\x98\xc5\xff"
"\x9e\xfc\x31\x8b\xff\x5f\xf2\xc7\x2c\xfe\xf7\xe6\x8f\x59\xfc\xef\xcb\x1f"
"\xb3\xf8\xff\x35\x7f\xcc\xe2\xff\xb7\xfc\x31\x8b\xff\xfd\xf9\x63\x16\xff"
"\x07\xf2\xc7\x2c\xfe\x0f\xe6\x8f\x59\xfc\x1f\xca\x1f\xb3\xf8\x3f\x9c\x3f"
"\x66\xf1\x7f\x24\x7f\xcc\xe2\xff\x68\xfe\x98\xc5\xff\xb1\xfc\x31\x8b\xff"
"\xe3\xf9\x63\x16\xff\x27\xf2\xc7\x2c\xfe\x4f\xe6\x8f\x59\xfc\x9f\xca\x1f"
"\xb3\xf8\x3f\x9d\x3f\x66\xf1\x7f\x26\x7f\xcc\xe2\xff\x6c\xfe\x98\xc5\xff"
"\xb9\xfc\x31\x8b\xff\xf3\xf9\x63\x16\xff\x17\xf2\xc7\x2c\xfe\x2f\xe6\x8f"
"\x59\xfc\x5f\xca\x1f\xb3\xf8\xbf\x9c\x3f\x66\xf1\x7f\x25\x7f\xcc\xe2\xff"
"\x6a\xfe\x98\xc5\xff\xb5\xfc\x31\x89\xff\x04\x03\xf9\x63\x16\xff\x41\xf9"
"\x63\x16\xff\xf1\xf2\xc7\x2c\xfe\x83\xf3\xc7\x2c\xfe\x43\xf2\xc7\x2c\xfe"
"\x43\xf3\xc7\x2c\xfe\xc3\xf2\xc7\x2c\xfe\xe3\xe7\x8f\x59\xfc\x27\xc8\x1f"
"\xb3\xf8\x4f\x98\x3f\x66\xf1\x9f\x28\x7f\xcc\xe2\x3f\x71\xfe\x98\xc5\x7f"
"\x92\xfc\x31\x8b\xff\xa4\xf9\x63\x16\xff\xe1\xf9\x63\x16\xff\xc9\xf2\xc7"
"\x2c\xfe\x93\xe7\x8f\x59\xfc\xa7\xc8\x1f\xb3\xf8\x4f\x99\x3f\x66\xf1\x9f"
"\x2a\x7f\xcc\xe2\x3f\x75\xfe\x98\xc5\x7f\x9a\xfc\x31\x8b\xff\x3b\xf2\xc7"
"\x2c\xfe\xef\xcc\x1f\xb3\xf8\x4f\x9b\x3f\x66\xf1\x9f\x2e\x7f\xcc\xe2\x3f"
"\x7d\xfe\x98\xc5\xff\x5d\xf9\x63\x16\xff\x19\xf2\xc7\x2c\xfe\x23\xf2\xc7"
"\x2c\xfe\xef\xce\x1f\xb3\xf8\xcf\x98\x3f\x66\xf1\x9f\x29\x7f\xcc\xe2\xff"
"\x9e\xfc\x31\x8b\xff\xcc\xf9\x63\x16\xff\x59\xf2\xc7\x2c\xfe\xb3\xe6\x8f"
"\x59\xfc\x67\xcb\x1f\xb3\xf8\xbf\x37\x7f\xcc\xe2\x3f\x7b\xfe\x98\xc5\x7f"
"\x8e\xfc\x31\x8b\xff\x9c\xf9\x63\x16\xff\xb9\xf2\xc7\x2c\xfe\x73\xe7\x8f"
"\x59\xfc\xe7\xc9\x1f\xb3\xf8\xcf\x9b\x3f\x66\xf1\x9f\x2f\x7f\xcc\xe2\x3f"
"\x7f\xfe\x98\xc5\x7f\x81\xfc\x31\x8b\xff\x82\xf9\x63\x16\xff\x85\xf2\xc7"
"\x2c\xfe\x0b\xe7\x8f\x59\xfc\x17\xc9\x1f\xb3\xf8\x2f\x9a\x3f\x66\xf1\x5f"
"\x2c\x7f\xcc\xe2\xbf\x78\xfe\x98\xc5\x7f\x89\xfc\x31\x8b\xff\x92\xf9\x63"
"\x16\xff\xa5\xf2\xc7\x2c\xfe\x4b\xe7\x8f\x59\xfc\x97\xc9\x1f\xb3\xf8\xbf"
"\x2f\x7f\xcc\xe2\xff\xfe\xfc\x31\x8b\xff\x07\xf2\xc7\x2c\xfe\xcb\xe6\x8f"
"\x59\xfc\x97\xcb\x1f\xb3\xf8\x2f\x9f\x3f\x66\xf1\x5f\x21\x7f\xcc\xe2\xbf"
"\x62\xfe\x98\xc5\x7f\xa5\xfc\x31\x8b\xff\xca\xf9\x63\x16\xff\x55\xf2\xc7"
"\x2c\xfe\xab\xe6\x8f\x59\xfc\x57\xcb\x1f\xb3\xf8\xaf\x9e\x3f\x66\xf1\x5f"
"\x23\x7f\xcc\xe2\xbf\x66\xfe\x98\xc5\x7f\xad\xfc\x31\x8b\xff\xda\xf9\x63"
"\x16\xff\x75\xf2\xc7\x2c\xfe\xeb\xe6\x8f\x59\xfc\xd7\xcb\x1f\xb3\xf8\xaf"
"\x9f\x3f\x66\xf1\xdf\x20\x7f\xcc\xe2\xbf\x61\xfe\x98\xc5\x7f\xa3\xfc\x31"
"\x8b\xff\xc6\xf9\x63\x16\xff\x4d\xf2\xc7\x2c\xfe\x9b\xe6\x8f\x59\xfc\x37"
"\xcb\x1f\xb3\xf8\x6f\x9e\x3f\x66\xf1\xdf\x22\x7f\xcc\xe2\xbf\x65\xfe\x98"
"\xc5\x7f\xab\xfc\x31\x8b\xff\xd6\xf9\x63\x16\xff\x0f\xe6\x8f\x59\xfc\xb7"
"\xc9\x1f\xb3\xf8\x6f\x9b\x3f\x66\xf1\xdf\x2e\x7f\xcc\xe2\xbf\x7d\xfe\x98"
"\xc5\x7f\x87\xfc\x31\x8b\xff\x8e\xf9\x63\x16\xff\x9d\xf2\xc7\x2c\xfe\x3b"
"\xe7\x8f\x59\xfc\x77\xc9\x1f\xb3\xf8\xef\x9a\x3f\x66\xf1\xdf\x2d\x7f\xcc"
"\xe2\xff\xa1\xfc\x31\x8b\xff\xee\xf9\x63\x16\xff\x3d\xf2\xc7\x2c\xfe\x7b"
"\xe6\x8f\x59\xfc\xf7\xca\x1f\xb3\xf8\xef\x9d\x3f\x66\xf1\xff\x70\xfe\x98"
"\xc5\x7f\x9f\xfc\x31\x8b\xff\xbe\xf9\x63\x16\xff\xfd\xf2\xc7\x2c\xfe\x1f"
"\xc9\x1f\xb3\xf8\x7f\x34\x7f\xcc\xe2\xff\xb1\xfc\x31\x8b\xff\xfe\xf9\x63"
"\x16\xff\x03\xf2\xc7\x2c\xfe\x07\xe6\x8f\x59\xfc\x0f\xca\x1f\xb3\xf8\x1f"
"\x9c\x3f\x66\xf1\x3f\x24\x7f\xcc\xe2\x7f\x68\xfe\x98\xc5\xff\xb0\xfc\x31"
"\x8b\xff\xe1\xf9\x63\x16\xff\x23\xf2\xc7\x2c\xfe\x47\xe6\x8f\x59\xfc\x8f"
"\xca\x1f\xb3\xf8\x7f\x3c\x7f\xcc\xe2\x7f\x74\xfe\x98\xc5\xff\x13\xf9\x63"
"\x16\xff\x4f\xe6\x8f\x59\xfc\x8f\xc9\x1f\xb3\xf8\x7f\x2a\x7f\xcc\xe2\x7f"
"\x6c\xfe\x98\xc5\xff\xb8\xfc\x31\x8b\xff\xf1\xf9\x63\x16\xff\x4f\xe7\x8f"
"\x59\xfc\x3f\x93\x3f\x66\xf1\x3f\x21\x7f\xcc\xe2\x7f\x62\xfe\x98\xc5\xff"
"\xa4\xfc\x31\x8b\xff\xc9\xf9\x63\x16\xff\x53\xf2\xc7\x2c\xfe\x9f\xcd\x1f"
"\xb3\xf8\x7f\x2e\x7f\xcc\xe2\xff\xf9\xfc\x31\x8b\xff\x17\xf2\xc7\x2c\xfe"
"\xa7\xe6\x8f\x59\xfc\xbf\x98\x3f\x66\xf1\xff\x52\xfe\x98\xc5\xff\xcb\xf9"
"\x63\x16\xff\xaf\xe4\x8f\x59\xfc\x4f\xcb\x1f\xb3\xf8\x9f\x9e\x3f\x66\xf1"
"\x3f\x23\x7f\xcc\xe2\x7f\x66\xfe\x98\xc5\xff\xac\xfc\x31\x8b\xff\xd9\xf9"
"\x63\x16\xff\xaf\xe6\x8f\x59\xfc\xbf\x96\x3f\x66\xf1\x3f\x27\x7f\xcc\xe2"
"\xff\xf5\xfc\x31\x8b\xff\xb9\xf9\x63\x16\xff\xf3\xf2\xc7\x2c\xfe\xe7\xe7"
"\x8f\x59\xfc\x2f\xc8\x1f\xb3\xf8\x5f\x98\x3f\x66\xf1\xff\x46\xfe\x98\xc5"
"\xff\x9b\xf9\x63\x16\xff\x6f\xe5\x8f\x59\xfc\x2f\xca\x1f\xb3\xf8\x5f\x9c"
"\x3f\x66\xf1\xff\x76\xfe\x98\xc5\xff\x92\xfc\x31\x8b\xff\x77\xf2\xc7\x2c"
"\xfe\x97\xe6\x8f\x59\xfc\x2f\xcb\x1f\xb3\xf8\x5f\x9e\x3f\x66\xf1\xff\x6e"
"\xfe\x98\xc5\xff\x7b\xf9\x63\x16\xff\x2b\xf2\xc7\x2c\xfe\x57\xe6\x8f\x59"
"\xfc\xbf\x9f\x3f\x66\xf1\xbf\x2a\x7f\xcc\xe2\xff\x83\xfc\x31\x8b\xff\xd5"
"\xf9\x63\x16\xff\x1f\xe6\x8f\x59\xfc\xaf\xc9\x1f\xb3\xf8\xff\x28\x7f\xcc"
"\xe2\x7f\x6d\xfe\x98\xc5\xff\xba\xfc\x31\x8b\xff\x8f\xf3\xc7\x2c\xfe\x3f"
"\xc9\x1f\xb3\xf8\xff\x34\x7f\xcc\xe2\x7f\x7d\xfe\x98\xc5\xff\x67\xf9\x63"
"\x16\xff\x1b\xf2\xc7\x2c\xfe\x37\xe6\x8f\x59\xfc\x7f\x9e\x3f\x66\xf1\xbf"
"\x29\x7f\xcc\xe2\x7f\x73\xfe\x98\xc5\xff\x17\xf9\x63\x16\xff\x5b\xf2\xc7"
"\x2c\xfe\xb7\xe6\x8f\x59\xfc\x6f\xcb\x1f\xb3\xf8\xdf\x9e\x3f\x66\xf1\xff"
"\x65\xfe\x98\xc5\xff\x8e\xfc\x31\x8b\xff\xaf\xf2\xc7\x2c\xfe\xbf\xce\x1f"
"\xb3\xf8\xff\x26\x7f\xcc\xe2\xff\xdb\xfc\x31\x8b\xff\xef\xf2\xc7\x2c\xfe"
"\xbf\xcf\x1f\xb3\xf8\xdf\x99\x3f\x66\xf1\xff\x43\xfe\x98\xc5\xff\x8f\xf9"
"\x63\x16\xff\x3f\xe5\x8f\x59\xfc\xef\xca\x1f\xb3\xf8\xdf\x9d\x3f\x66\xf1"
"\xff\x73\xfe\x98\xc5\xff\x9e\xfc\x31\x8b\xff\x5f\xf2\xc7\x2c\xfe\xf7\xe6"
"\x8f\x59\xfc\xef\xcb\x1f\xb3\xf8\xff\x35\x7f\xcc\xe2\xff\xb7\xfc\x31\x8b"
"\xff\xfd\xf9\x63\x16\xff\x07\xf2\xc7\x2c\xfe\x0f\xe6\x8f\x59\xfc\x1f\xca"
"\x1f\xb3\xf8\x3f\x9c\x3f\x66\xf1\x7f\x24\x7f\xcc\xe2\xff\x68\xfe\x98\xc5"
"\xff\xb1\xfc\x31\x8b\xff\xe3\xf9\x63\x16\xff\x27\xf2\xc7\x2c\xfe\x4f\xe6"
"\x8f\x59\xfc\x9f\xca\x1f\xb3\xf8\x3f\x9d\x3f\x66\xf1\x7f\x26\x7f\xcc\xe2"
"\xff\x6c\xfe\x98\xc5\xff\xb9\xfc\x31\x8b\xff\xf3\xf9\x63\x16\xff\x17\xf2"
"\xc7\x2c\xfe\x2f\xe6\x8f\x59\xfc\x5f\xca\x1f\xb3\xf8\xbf\x9c\x3f\x66\xf1"
"\x7f\x25\x7f\xcc\xe2\xff\x6a\xfe\x98\xc5\xff\xb5\xfc\x31\x89\xff\x84\x03"
"\xf9\x63\x16\xff\x41\xf9\x63\x16\xff\xf1\xf2\xc7\x2c\xfe\x83\xf3\xc7\x2c"
"\xfe\x43\xf2\xc7\x2c\xfe\x43\xf3\xc7\x2c\xfe\xc3\xf2\xc7\x2c\xfe\xe3\xe7"
"\x8f\x59\xfc\x27\xc8\x1f\xb3\xf8\x4f\x98\x3f\x66\xf1\x9f\x28\x7f\xcc\xe2"
"\x3f\x71\xfe\x98\xc5\x7f\x92\xfc\x31\x8b\xff\xa4\xf9\x63\x16\xff\xe1\xf9"
"\x63\x16\xff\xc9\xf2\xc7\x2c\xfe\x93\xe7\x8f\x59\xfc\xa7\xc8\x1f\xb3\xf8"
"\x4f\x99\x3f\x66\xf1\x9f\x2a\x7f\xcc\xe2\x3f\x75\xfe\x98\xc5\x7f\x9a\xfc"
"\x31\x8b\xff\x3b\xf2\xc7\x2c\xfe\xef\xcc\x1f\xb3\xf8\x4f\x9b\x3f\x66\xf1"
"\x9f\x2e\x7f\xcc\xe2\x3f\x7d\xfe\x98\xc5\xff\x5d\xf9\x63\x16\xff\x19\xf2"
"\xc7\x2c\xfe\x23\xf2\xc7\x2c\xfe\xef\xce\x1f\xb3\xf8\xcf\x98\x3f\x66\xf1"
"\x9f\x29\x7f\xcc\xe2\xff\x9e\xfc\x31\x8b\xff\xcc\xf9\x63\x16\xff\x59\xf2"
"\xc7\x2c\xfe\xb3\xe6\x8f\x59\xfc\x67\xcb\x1f\xb3\xf8\xbf\x37\x7f\xcc\xe2"
"\x3f\x7b\xfe\x98\xc5\x7f\x8e\xfc\x31\x8b\xff\x9c\xf9\x63\x16\xff\xb9\xf2"
"\xc7\x2c\xfe\x73\xe7\x8f\x59\xfc\xe7\xc9\x1f\xb3\xf8\xcf\x9b\x3f\x66\xf1"
"\x9f\x2f\x7f\xcc\xe2\x3f\x7f\xfe\x98\xc5\x7f\x81\xfc\x31\x8b\xff\x82\xf9"
"\x63\x16\xff\x85\xf2\xc7\x2c\xfe\x0b\xe7\x8f\x59\xfc\x17\xc9\x1f\xb3\xf8"
"\x2f\x9a\x3f\x66\xf1\x5f\x2c\x7f\xcc\xe2\xbf\x78\xfe\x98\xc5\x7f\x89\xfc"
"\x31\x8b\xff\x92\xf9\x63\x16\xff\xa5\xf2\xc7\x2c\xfe\x4b\xe7\x8f\x59\xfc"
"\x97\xc9\x1f\xb3\xf8\xbf\x2f\x7f\xcc\xe2\xff\xfe\xfc\x31\x8b\xff\x07\xf2"
"\xc7\x2c\xfe\xcb\xe6\x8f\x59\xfc\x97\xcb\x1f\xb3\xf8\x2f\x9f\x3f\x66\xf1"
"\x5f\x21\x7f\xcc\xe2\xbf\x62\xfe\x98\xc5\x7f\xa5\xfc\x31\x8b\xff\xca\xf9"
"\x63\x16\xff\x55\xf2\xc7\x2c\xfe\xab\xe6\x8f\x59\xfc\x57\xcb\x1f\xb3\xf8"
"\xaf\x9e\x3f\x66\xf1\x5f\x23\x7f\xcc\xe2\xbf\x66\xfe\x98\xc5\x7f\xad\xfc"
"\x31\x8b\xff\xda\xf9\x63\x16\xff\x75\xf2\xc7\x2c\xfe\xeb\xe6\x8f\x59\xfc"
"\xd7\xcb\x1f\xb3\xf8\xaf\x9f\x3f\x66\xf1\xdf\x20\x7f\xcc\xe2\xbf\x61\xfe"
"\x98\xc5\x7f\xa3\xfc\x31\x8b\xff\xc6\xf9\x63\x16\xff\x4d\xf2\xc7\x2c\xfe"
"\x9b\xe6\x8f\x59\xfc\x37\xcb\x1f\xb3\xf8\x6f\x9e\x3f\x66\xf1\xdf\x22\x7f"
"\xcc\xe2\xbf\x65\xfe\x98\xc5\x7f\xab\xfc\x31\x8b\xff\xd6\xf9\x63\x16\xff"
"\x0f\xe6\x8f\x59\xfc\xb7\xc9\x1f\xb3\xf8\x6f\x9b\x3f\x66\xf1\xdf\x2e\x7f"
"\xcc\xe2\xbf\x7d\xfe\x98\xc5\x7f\x87\xfc\x31\x8b\xff\x8e\xf9\x63\x16\xff"
"\x9d\xf2\xc7\x2c\xfe\x3b\xe7\x8f\x59\xfc\x77\xc9\x1f\xb3\xf8\xef\x9a\x3f"
"\x66\xf1\xdf\x2d\x7f\xcc\xe2\xff\xa1\xfc\x31\x8b\xff\xee\xf9\x63\x16\xff"
"\x3d\xf2\xc7\x2c\xfe\x7b\xe6\x8f\x59\xfc\xf7\xca\x1f\xb3\xf8\xef\x9d\x3f"
"\x66\xf1\xff\x70\xfe\x98\xc5\x7f\x9f\xfc\x31\x8b\xff\xbe\xf9\x63\x16\xff"
"\xfd\xf2\xc7\x2c\xfe\x1f\xc9\x1f\xb3\xf8\x7f\x34\x7f\xcc\xe2\xff\xb1\xfc"
"\x31\x8b\xff\xfe\xf9\x63\x16\xff\x03\xf2\xc7\x2c\xfe\x07\xe6\x8f\x59\xfc"
"\x0f\xca\x1f\xb3\xf8\x1f\x9c\x3f\x66\xf1\x3f\x24\x7f\xcc\xe2\x7f\x68\xfe"
"\x98\xc5\xff\xb0\xfc\x31\x8b\xff\xe1\xf9\x63\x16\xff\x23\xf2\xc7\x2c\xfe"
"\x47\xe6\x8f\x59\xfc\x8f\xca\x1f\xb3\xf8\x7f\x3c\x7f\xcc\xe2\x7f\x74\xfe"
"\x98\xc5\xff\x13\xf9\x63\x16\xff\x4f\xe6\x8f\x59\xfc\x8f\xc9\x1f\xb3\xf8"
"\x7f\x2a\x7f\xcc\xe2\x7f\x6c\xfe\x98\xc5\xff\xb8\xfc\x31\x8b\xff\xf1\xf9"
"\x63\x16\xff\x4f\xe7\x8f\x59\xfc\x3f\x93\x3f\x66\xf1\x3f\x21\x7f\xcc\xe2"
"\x7f\x62\xfe\x98\xc5\xff\xa4\xfc\x31\x8b\xff\xc9\xf9\x63\x16\xff\x53\xf2"
"\xc7\x2c\xfe\x9f\xcd\x1f\xb3\xf8\x7f\x2e\x7f\xcc\xe2\xff\xf9\xfc\x31\x8b"
"\xff\x17\xf2\xc7\x2c\xfe\xa7\xe6\x8f\x59\xfc\xbf\x98\x3f\x66\xf1\xff\x52"
"\xfe\x98\xc5\xff\xcb\xf9\x63\x16\xff\xaf\xe4\x8f\x59\xfc\x4f\xcb\x1f\xb3"
"\xf8\x9f\x9e\x3f\x66\xf1\x3f\x23\x7f\xcc\xe2\x7f\x66\xfe\x98\xc5\xff\xac"
"\xfc\x31\x8b\xff\xd9\xf9\x63\x16\xff\xaf\xe6\x8f\x59\xfc\xbf\x96\x3f\x66"
"\xf1\x3f\x27\x7f\xcc\xe2\xff\xf5\xfc\x31\x8b\xff\xb9\xf9\x63\x16\xff\xf3"
"\xf2\xc7\x2c\xfe\xe7\xe7\x8f\x59\xfc\x2f\xc8\x1f\xb3\xf8\x5f\x98\x3f\x66"
"\xf1\xff\x46\xfe\x98\xc5\xff\x9b\xf9\x63\x16\xff\x6f\xe5\x8f\x59\xfc\x2f"
"\xca\x1f\xb3\xf8\x5f\x9c\x3f\x66\xf1\xff\x76\xfe\x98\xc5\xff\x92\xfc\x31"
"\x8b\xff\x77\xf2\xc7\x2c\xfe\x97\xe6\x8f\x59\xfc\x2f\xcb\x1f\xb3\xf8\x5f"
"\x9e\x3f\x66\xf1\xff\x6e\xfe\x98\xc5\xff\x7b\xf9\x63\x16\xff\x2b\xf2\xc7"
"\x2c\xfe\x57\xe6\x8f\x59\xfc\xbf\x9f\x3f\x66\xf1\xbf\x2a\x7f\xcc\xe2\xff"
"\x83\xfc\x31\x8b\xff\xd5\xf9\x63\x16\xff\x1f\xe6\x8f\x59\xfc\xaf\xc9\x1f"
"\xb3\xf8\xff\x28\x7f\xcc\xe2\x7f\x6d\xfe\x98\xc5\xff\xba\xfc\x31\x8b\xff"
"\x8f\xf3\xc7\x2c\xfe\x3f\xc9\x1f\xb3\xf8\xff\x34\x7f\xcc\xe2\x7f\x7d\xfe"
"\x98\xc5\xff\x67\xf9\x63\x16\xff\x1b\xf2\xc7\x2c\xfe\x37\xe6\x8f\x59\xfc"
"\x7f\x9e\x3f\x66\xf1\xbf\x29\x7f\xcc\xe2\x7f\x73\xfe\x98\xc5\xff\x17\xf9"
"\x63\x16\xff\x5b\xf2\xc7\x2c\xfe\xb7\xe6\x8f\x59\xfc\x6f\xcb\x1f\xb3\xf8"
"\xdf\x9e\x3f\x66\xf1\xff\x65\xfe\x98\xc5\xff\x8e\xfc\x31\x8b\xff\xaf\xf2"
"\xc7\x2c\xfe\xbf\xce\x1f\xb3\xf8\xff\x26\x7f\xcc\xe2\xff\xdb\xfc\x31\x8b"
"\xff\xef\xf2\xc7\x2c\xfe\xbf\xcf\x1f\xb3\xf8\xdf\x99\x3f\x66\xf1\xff\x43"
"\xfe\x98\xc5\xff\x8f\xf9\x63\x16\xff\x3f\xe5\x8f\x59\xfc\xef\xca\x1f\xb3"
"\xf8\xdf\x9d\x3f\x66\xf1\xff\x73\xfe\x98\xc5\xff\x9e\xfc\x31\x8b\xff\x5f"
"\xf2\xc7\x2c\xfe\xf7\xe6\x8f\x59\xfc\xef\xcb\x1f\xb3\xf8\xff\x35\x7f\xcc"
"\xe2\xff\xb7\xfc\x31\x8b\xff\xfd\xf9\x63\x16\xff\x07\xf2\xc7\x2c\xfe\x0f"
"\xe6\x8f\x59\xfc\x1f\xca\x1f\xb3\xf8\x3f\x9c\x3f\x66\xf1\x7f\x24\x7f\xcc"
"\xe2\xff\x68\xfe\x98\xc5\xff\xb1\xfc\x31\x8b\xff\xe3\xf9\x63\x16\xff\x27"
"\xf2\xc7\x2c\xfe\x4f\xe6\x8f\x59\xfc\x9f\xca\x1f\xb3\xf8\x3f\x9d\x3f\x66"
"\xf1\x7f\x26\x7f\xcc\xe2\xff\x6c\xfe\x98\xc5\xff\xb9\xfc\x31\x8b\xff\xf3"
"\xf9\x63\x16\xff\x17\xf2\xc7\x2c\xfe\x2f\xe6\x8f\x59\xfc\x5f\xca\x1f\xb3"
"\xf8\xbf\x9c\x3f\x66\xf1\x7f\x25\x7f\xcc\xe2\xff\x6a\xfe\x98\xc5\xff\xb5"
"\xfc\x31\x89\xff\x44\x03\xf9\x63\x16\xff\x41\xf9\x63\x16\xff\xf1\xf2\xc7"
"\x2c\xfe\x83\xf3\xc7\x2c\xfe\x43\xf2\xc7\x2c\xfe\x43\xf3\xc7\x2c\xfe\xc3"
"\xf2\xc7\x2c\xfe\xe3\xe7\x8f\x59\xfc\x27\xc8\x1f\xb3\xf8\x4f\x98\x3f\x66"
"\xf1\x9f\x28\x7f\xcc\xe2\x3f\x71\xfe\x98\xc5\x7f\x92\xfc\x31\x8b\xff\xa4"
"\xf9\x63\x16\xff\xe1\xf9\x63\x16\xff\xc9\xf2\xc7\x2c\xfe\x93\xe7\x8f\x59"
"\xfc\xa7\xc8\x1f\xb3\xf8\x4f\x99\x3f\x66\xf1\x9f\x2a\x7f\xcc\xe2\x3f\x75"
"\xfe\x98\xc5\x7f\x9a\xfc\x31\x8b\xff\x3b\xf2\xc7\x2c\xfe\xef\xcc\x1f\xb3"
"\xf8\x4f\x9b\x3f\x66\xf1\x9f\x2e\x7f\xcc\xe2\x3f\x7d\xfe\x98\xc5\xff\x5d"
"\xf9\x63\x16\xff\x19\xf2\xc7\x2c\xfe\x23\xf2\xc7\x2c\xfe\xef\xce\x1f\xb3"
"\xf8\xcf\x98\x3f\x66\xf1\x9f\x29\x7f\xcc\xe2\xff\x9e\xfc\x31\x8b\xff\xcc"
"\xf9\x63\x16\xff\x59\xf2\xc7\x2c\xfe\xb3\xe6\x8f\x59\xfc\x67\xcb\x1f\xb3"
"\xf8\xbf\x37\x7f\xcc\xe2\x3f\x7b\xfe\x98\xc5\x7f\x8e\xfc\x31\x8b\xff\x9c"
"\xf9\x63\x16\xff\xb9\xf2\xc7\x2c\xfe\x73\xe7\x8f\x59\xfc\xe7\xc9\x1f\xb3"
"\xf8\xcf\x9b\x3f\x66\xf1\x9f\x2f\x7f\xcc\xe2\x3f\x7f\xfe\x98\xc5\x7f\x81"
"\xfc\x31\x8b\xff\x82\xf9\x63\x16\xff\x85\xf2\xc7\x2c\xfe\x0b\xe7\x8f\x59"
"\xfc\x17\xc9\x1f\xb3\xf8\x2f\x9a\x3f\x66\xf1\x5f\x2c\x7f\xcc\xe2\xbf\x78"
"\xfe\x98\xc5\x7f\x89\xfc\x31\x8b\xff\x92\xf9\x63\x16\xff\xa5\xf2\xc7\x2c"
"\xfe\x4b\xe7\x8f\x59\xfc\x97\xc9\x1f\xb3\xf8\xbf\x2f\x7f\xcc\xe2\xff\xfe"
"\xfc\x31\x8b\xff\x07\xf2\xc7\x2c\xfe\xcb\xe6\x8f\x59\xfc\x97\xcb\x1f\xb3"
"\xf8\x2f\x9f\x3f\x66\xf1\x5f\x21\x7f\xcc\xe2\xbf\x62\xfe\x98\xc5\x7f\xa5"
"\xfc\x31\x8b\xff\xca\xf9\x63\x16\xff\x55\xf2\xc7\x2c\xfe\xab\xe6\x8f\x59"
"\xfc\x57\xcb\x1f\xb3\xf8\xaf\x9e\x3f\x66\xf1\x5f\x23\x7f\xcc\xe2\xbf\x66"
"\xfe\x98\xc5\x7f\xad\xfc\x31\x8b\xff\xda\xf9\x63\x16\xff\x75\xf2\xc7\x2c"
"\xfe\xeb\xe6\x8f\x59\xfc\xd7\xcb\x1f\xb3\xf8\xaf\x9f\x3f\x66\xf1\xdf\x20"
"\x7f\xcc\xe2\xbf\x61\xfe\x98\xc5\x7f\xa3\xfc\x31\x8b\xff\xc6\xf9\x63\x16"
"\xff\x4d\xf2\xc7\x2c\xfe\x9b\xe6\x8f\x59\xfc\x37\xcb\x1f\xb3\xf8\x6f\x9e"
"\x3f\x66\xf1\xdf\x22\x7f\xcc\xe2\xbf\x65\xfe\x98\xc5\x7f\xab\xfc\x31\x8b"
"\xff\xd6\xf9\x63\x16\xff\x0f\xe6\x8f\x59\xfc\xb7\xc9\x1f\xb3\xf8\x6f\x9b"
"\x3f\x66\xf1\xdf\x2e\x7f\xcc\xe2\xbf\x7d\xfe\x98\xc5\x7f\x87\xfc\x31\x8b"
"\xff\x8e\xf9\x63\x16\xff\x9d\xf2\xc7\x2c\xfe\x3b\xe7\x8f\x59\xfc\x77\xc9"
"\x1f\xb3\xf8\xef\x9a\x3f\x66\xf1\xdf\x2d\x7f\xcc\xe2\xff\xa1\xfc\x31\x8b"
"\xff\xee\xf9\x63\x16\xff\x3d\xf2\xc7\x2c\xfe\x7b\xe6\x8f\x59\xfc\xf7\xca"
"\x1f\xb3\xf8\xef\x9d\x3f\x66\xf1\xff\x70\xfe\x98\xc5\x7f\x9f\xfc\x31\x8b"
"\xff\xbe\xf9\x63\x16\xff\xfd\xf2\xc7\x2c\xfe\x1f\xc9\x1f\xb3\xf8\x7f\x34"
"\x7f\xcc\xe2\xff\xb1\xfc\x31\x8b\xff\xfe\xf9\x63\x16\xff\x03\xf2\xc7\x2c"
"\xfe\x07\xe6\x8f\x59\xfc\x0f\xca\x1f\xb3\xf8\x1f\x9c\x3f\x66\xf1\x3f\x24"
"\x7f\xcc\xe2\x7f\x68\xfe\x98\xc5\xff\xb0\xfc\x31\x8b\xff\xe1\xf9\x63\x16"
"\xff\x23\xf2\xc7\x2c\xfe\x47\xe6\x8f\x59\xfc\x8f\xca\x1f\xb3\xf8\x7f\x3c"
"\x7f\xcc\xe2\x7f\x74\xfe\x98\xc5\xff\x13\xf9\x63\x16\xff\x4f\xe6\x8f\x59"
"\xfc\x8f\xc9\x1f\xb3\xf8\x7f\x2a\x7f\xcc\xe2\x7f\x6c\xfe\x98\xc5\xff\xb8"
"\xfc\x31\x8b\xff\xf1\xf9\x63\x16\xff\x4f\xe7\x8f\x59\xfc\x3f\x93\x3f\x66"
"\xf1\x3f\x21\x7f\xcc\xe2\x7f\x62\xfe\x98\xc5\xff\xa4\xfc\x31\x8b\xff\xc9"
"\xf9\x63\x16\xff\x53\xf2\xc7\x2c\xfe\x9f\xcd\x1f\xb3\xf8\x7f\x2e\x7f\xcc"
"\xe2\xff\xf9\xfc\x31\x8b\xff\x17\xf2\xc7\x2c\xfe\xa7\xe6\x8f\x59\xfc\xbf"
"\x98\x3f\x66\xf1\xff\x52\xfe\x98\xc5\xff\xcb\xf9\x63\x16\xff\xaf\xe4\x8f"
"\x59\xfc\x4f\xcb\x1f\xb3\xf8\x9f\x9e\x3f\x66\xf1\x3f\x23\x7f\xcc\xe2\x7f"
"\x66\xfe\x98\xc5\xff\xac\xfc\x31\x8b\xff\xd9\xf9\x63\x16\xff\xaf\xe6\x8f"
"\x59\xfc\xbf\x96\x3f\x66\xf1\x3f\x27\x7f\xcc\xe2\xff\xf5\xfc\x31\x8b\xff"
"\xb9\xf9\x63\x16\xff\xf3\xf2\xc7\x2c\xfe\xe7\xe7\x8f\x59\xfc\x2f\xc8\x1f"
"\xb3\xf8\x5f\x98\x3f\x66\xf1\xff\x46\xfe\x98\xc5\xff\x9b\xf9\x63\x16\xff"
"\x6f\xe5\x8f\x59\xfc\x2f\xca\x1f\xb3\xf8\x5f\x9c\x3f\x66\xf1\xff\x76\xfe"
"\x98\xc5\xff\x92\xfc\x31\x8b\xff\x77\xf2\xc7\x2c\xfe\x97\xe6\x8f\x59\xfc"
"\x2f\xcb\x1f\xb3\xf8\x5f\x9e\x3f\x66\xf1\xff\x6e\xfe\x98\xc5\xff\x7b\xf9"
"\x63\x16\xff\x2b\xf2\xc7\x2c\xfe\x57\xe6\x8f\x59\xfc\xbf\x9f\x3f\x66\xf1"
"\xbf\x2a\x7f\xcc\xe2\xff\x83\xfc\x31\x8b\xff\xd5\xf9\x63\x16\xff\x1f\xe6"
"\x8f\x59\xfc\xaf\xc9\x1f\xb3\xf8\xff\x28\x7f\xcc\xe2\x7f\x6d\xfe\x98\xc5"
"\xff\xba\xfc\x31\x8b\xff\x8f\xf3\xc7\x2c\xfe\x3f\xc9\x1f\xb3\xf8\xff\x34"
"\x7f\xcc\xe2\x7f\x7d\xfe\x98\xc5\xff\x67\xf9\x63\x16\xff\x1b\xf2\xc7\x2c"
"\xfe\x37\xe6\x8f\x59\xfc\x7f\x9e\x3f\x66\xf1\xbf\x29\x7f\xcc\xe2\x7f\x73"
"\xfe\x98\xc5\xff\x17\xf9\x63\x16\xff\x5b\xf2\xc7\x2c\xfe\xb7\xe6\x8f\x59"
"\xfc\x6f\xcb\x1f\xb3\xf8\xdf\x9e\x3f\x66\xf1\xff\x65\xfe\x98\xc5\xff\x8e"
"\xfc\x31\x8b\xff\xaf\xf2\xc7\x2c\xfe\xbf\xce\x1f\xb3\xf8\xff\x26\x7f\xcc"
"\xe2\xff\xdb\xfc\x31\x8b\xff\xef\xf2\xc7\x2c\xfe\xbf\xcf\x1f\xb3\xf8\xdf"
"\x99\x3f\x66\xf1\xff\x43\xfe\x98\xc5\xff\x8f\xf9\x63\x16\xff\x3f\xe5\x8f"
"\x59\xfc\xef\xca\x1f\xb3\xf8\xdf\x9d\x3f\x66\xf1\xff\x73\xfe\x98\xc5\xff"
"\x9e\xfc\x31\x8b\xff\x5f\xf2\xc7\x2c\xfe\xf7\xe6\x8f\x59\xfc\xef\xcb\x1f"
"\xb3\xf8\xff\x35\x7f\xcc\xe2\xff\xb7\xfc\x31\x8b\xff\xfd\xf9\x63\x16\xff"
"\x07\xf2\xc7\x2c\xfe\x0f\xe6\x8f\x59\xfc\x1f\xca\x1f\xb3\xf8\x3f\x9c\x3f"
"\x66\xf1\x7f\x24\x7f\xcc\xe2\xff\x68\xfe\x98\xc5\xff\xb1\xfc\x31\x8b\xff"
"\xe3\xf9\x63\x16\xff\x27\xf2\xc7\x2c\xfe\x4f\xe6\x8f\x59\xfc\x9f\xca\x1f"
"\xb3\xf8\x3f\x9d\x3f\x66\xf1\x7f\x26\x7f\xcc\xe2\xff\x6c\xfe\x98\xc5\xff"
"\xb9\xfc\x31\x8b\xff\xf3\xf9\x63\x16\xff\x17\xf2\xc7\x2c\xfe\x2f\xe6\x8f"
"\x59\xfc\x5f\xca\x1f\xb3\xf8\xbf\x9c\x3f\x66\xf1\x7f\x25\x7f\xcc\xe2\xff"
"\x6a\xfe\x98\xc5\xff\xb5\xfc\x31\x89\xff\xc4\x03\xf9\x63\x16\xff\x41\xf9"
"\x63\x16\xff\xf1\xf2\xc7\x2c\xfe\x83\xf3\xc7\x2c\xfe\x43\xf2\xc7\x2c\xfe"
"\x43\xf3\xc7\x2c\xfe\xc3\xf2\xc7\x2c\xfe\xe3\xe7\x8f\x59\xfc\x27\xc8\x1f"
"\xb3\xf8\x4f\x98\x3f\x66\xf1\x9f\x28\x7f\xcc\xe2\x3f\x71\xfe\x98\xc5\x7f"
"\x92\xfc\x31\x8b\xff\xa4\xf9\x63\x16\xff\xe1\xf9\x63\x16\xff\xc9\xf2\xc7"
"\x2c\xfe\x93\xe7\x8f\x59\xfc\xa7\xc8\x1f\xb3\xf8\x4f\x99\x3f\x66\xf1\x9f"
"\x2a\x7f\xcc\xe2\x3f\x75\xfe\x98\xc5\x7f\x9a\xfc\x31\x8b\xff\x3b\xf2\xc7"
"\x2c\xfe\xef\xcc\x1f\xb3\xf8\x4f\x9b\x3f\x66\xf1\x9f\x2e\x7f\xcc\xe2\x3f"
"\x7d\xfe\x98\xc5\xff\x5d\xf9\x63\x16\xff\x19\xf2\xc7\x2c\xfe\x23\xf2\xc7"
"\x2c\xfe\xef\xce\x1f\xb3\xf8\xcf\x98\x3f\x66\xf1\x9f\x29\x7f\xcc\xe2\xff"
"\x9e\xfc\x31\x8b\xff\xcc\xf9\x63\x16\xff\x59\xf2\xc7\x2c\xfe\xb3\xe6\x8f"
"\x59\xfc\x67\xcb\x1f\xb3\xf8\xbf\x37\x7f\xcc\xe2\x3f\x7b\xfe\x98\xc5\x7f"
"\x8e\xfc\x31\x8b\xff\x9c\xf9\x63\x16\xff\xb9\xf2\xc7\x2c\xfe\x73\xe7\x8f"
"\x59\xfc\xe7\xc9\x1f\xb3\xf8\xcf\x9b\x3f\x66\xf1\x9f\x2f\x7f\xcc\xe2\x3f"
"\x7f\xfe\x98\xc5\x7f\x81\xfc\x31\x8b\xff\x82\xf9\x63\x16\xff\x85\xf2\xc7"
"\x2c\xfe\x0b\xe7\x8f\x59\xfc\x17\xc9\x1f\xb3\xf8\x2f\x9a\x3f\x66\xf1\x5f"
"\x2c\x7f\xcc\xe2\xbf\x78\xfe\x98\xc5\x7f\x89\xfc\x31\x8b\xff\x92\xf9\x63"
"\x16\xff\xa5\xf2\xc7\x2c\xfe\x4b\xe7\x8f\x59\xfc\x97\xc9\x1f\xb3\xf8\xbf"
"\x2f\x7f\xcc\xe2\xff\xfe\xfc\x31\x8b\xff\x07\xf2\xc7\x2c\xfe\xcb\xe6\x8f"
"\x59\xfc\x97\xcb\x1f\xb3\xf8\x2f\x9f\x3f\x66\xf1\x5f\x21\x7f\xcc\xe2\xbf"
"\x62\xfe\x98\xc5\x7f\xa5\xfc\x31\x8b\xff\xca\xf9\x63\x16\xff\x55\xf2\xc7"
"\x2c\xfe\xab\xe6\x8f\x59\xfc\x57\xcb\x1f\xb3\xf8\xaf\x9e\x3f\x66\xf1\x5f"
"\x23\x7f\xcc\xe2\xbf\x66\xfe\x98\xc5\x7f\xad\xfc\x31\x8b\xff\xda\xf9\x63"
"\x16\xff\x75\xf2\xc7\x2c\xfe\xeb\xe6\x8f\x59\xfc\xd7\xcb\x1f\xb3\xf8\xaf"
"\x9f\x3f\x66\xf1\xdf\x20\x7f\xcc\xe2\xbf\x61\xfe\x98\xc5\x7f\xa3\xfc\x31"
"\x8b\xff\xc6\xf9\x63\x16\xff\x4d\xf2\xc7\x2c\xfe\x9b\xe6\x8f\x59\xfc\x37"
"\xcb\x1f\xb3\xf8\x6f\x9e\x3f\x66\xf1\xdf\x22\x7f\xcc\xe2\xbf\x65\xfe\x98"
"\xc5\x7f\xab\xfc\x31\x8b\xff\xd6\xf9\x63\x16\xff\x0f\xe6\x8f\x59\xfc\xb7"
"\xc9\x1f\xb3\xf8\x6f\x9b\x3f\x66\xf1\xdf\x2e\x7f\xcc\xe2\xbf\x7d\xfe\x98"
"\xc5\x7f\x87\xfc\x31\x8b\xff\x8e\xf9\x63\x16\xff\x9d\xf2\xc7\x2c\xfe\x3b"
"\xe7\x8f\x59\xfc\x77\xc9\x1f\xb3\xf8\xef\x9a\x3f\x66\xf1\xdf\x2d\x7f\xcc"
"\xe2\xff\xa1\xfc\x31\x8b\xff\xee\xf9\x63\x16\xff\x3d\xf2\xc7\x2c\xfe\x7b"
"\xe6\x8f\x59\xfc\xf7\xca\x1f\xb3\xf8\xef\x9d\x3f\x66\xf1\xff\x70\xfe\x98"
"\xc5\x7f\x9f\xfc\x31\x8b\xff\xbe\xf9\x63\x16\xff\xfd\xf2\xc7\x2c\xfe\x1f"
"\xc9\x1f\xb3\xf8\x7f\x34\x7f\xcc\xe2\xff\xb1\xfc\x31\x8b\xff\xfe\xf9\x63"
"\x16\xff\x03\xf2\xc7\x2c\xfe\x07\xe6\x8f\x59\xfc\x0f\xca\x1f\xb3\xf8\x1f"
"\x9c\x3f\x66\xf1\x3f\x24\x7f\xcc\xe2\x7f\x68\xfe\x98\xc5\xff\xb0\xfc\x31"
"\x8b\xff\xe1\xf9\x63\x16\xff\x23\xf2\xc7\x2c\xfe\x47\xe6\x8f\x59\xfc\x8f"
"\xca\x1f\xb3\xf8\x7f\x3c\x7f\xcc\xe2\x7f\x74\xfe\x98\xc5\xff\x13\xf9\x63"
"\x16\xff\x4f\xe6\x8f\x59\xfc\x8f\xc9\x1f\xb3\xf8\x7f\x2a\x7f\xcc\xe2\x7f"
"\x6c\xfe\x98\xc5\xff\xb8\xfc\x31\x8b\xff\xf1\xf9\x63\x16\xff\x4f\xe7\x8f"
"\x59\xfc\x3f\x93\x3f\x66\xf1\x3f\x21\x7f\xcc\xe2\x7f\x62\xfe\x98\xc5\xff"
"\xa4\xfc\x31\x8b\xff\xc9\xf9\x63\x16\xff\x53\xf2\xc7\x2c\xfe\x9f\xcd\x1f"
"\xb3\xf8\x7f\x2e\x7f\xcc\xe2\xff\xf9\xfc\x31\x8b\xff\x17\xf2\xc7\x2c\xfe"
"\xa7\xe6\x8f\x59\xfc\xbf\x98\x3f\x66\xf1\xff\x52\xfe\x98\xc5\xff\xcb\xf9"
"\x63\x16\xff\xaf\xe4\x8f\x59\xfc\x4f\xcb\x1f\xb3\xf8\x9f\x9e\x3f\x66\xf1"
"\x3f\x23\x7f\xcc\xe2\x7f\x66\xfe\x98\xc5\xff\xac\xfc\x31\x8b\xff\xd9\xf9"
"\x63\x16\xff\xaf\xe6\x8f\x59\xfc\xbf\x96\x3f\x66\xf1\x3f\x27\x7f\xcc\xe2"
"\xff\xf5\xfc\x31\x8b\xff\xb9\xf9\x63\x16\xff\xf3\xf2\xc7\x2c\xfe\xe7\xe7"
"\x8f\x59\xfc\x2f\xc8\x1f\xb3\xf8\x5f\x98\x3f\x66\xf1\xff\x46\xfe\x98\xc5"
"\xff\x9b\xf9\x63\x16\xff\x6f\xe5\x8f\x59\xfc\x2f\xca\x1f\xb3\xf8\x5f\x9c"
"\x3f\x66\xf1\xff\x76\xfe\x98\xc5\xff\x92\xfc\x31\x8b\xff\x77\xf2\xc7\x2c"
"\xfe\x97\xe6\x8f\x59\xfc\x2f\xcb\x1f\xb3\xf8\x5f\x9e\x3f\x66\xf1\xff\x6e"
"\xfe\x98\xc5\xff\x7b\xf9\x63\x16\xff\x2b\xf2\xc7\x2c\xfe\x57\xe6\x8f\x59"
"\xfc\xbf\x9f\x3f\x66\xf1\xbf\x2a\x7f\xcc\xe2\xff\x83\xfc\x31\x8b\xff\xd5"
"\xf9\x63\x16\xff\x1f\xe6\x8f\x59\xfc\xaf\xc9\x1f\xb3\xf8\xff\x28\x7f\xcc"
"\xe2\x7f\x6d\xfe\x98\xc5\xff\xba\xfc\x31\x8b\xff\x8f\xf3\xc7\x2c\xfe\x3f"
"\xc9\x1f\xb3\xf8\xff\x34\x7f\xcc\xe2\x7f\x7d\xfe\x98\xc5\xff\x67\xf9\x63"
"\x16\xff\x1b\xf2\xc7\x2c\xfe\x37\xe6\x8f\x59\xfc\x7f\x9e\x3f\x66\xf1\xbf"
"\x29\x7f\xcc\xe2\x7f\x73\xfe\x98\xc5\xff\x17\xf9\x63\x16\xff\x5b\xf2\xc7"
"\x2c\xfe\xb7\xe6\x8f\x59\xfc\x6f\xcb\x1f\xb3\xf8\xdf\x9e\x3f\x66\xf1\xff"
"\x65\xfe\x98\xc5\xff\x8e\xfc\x31\x8b\xff\xaf\xf2\xc7\x2c\xfe\xbf\xce\x1f"
"\xb3\xf8\xff\x26\x7f\xcc\xe2\xff\xdb\xfc\x31\x8b\xff\xef\xf2\xc7\x2c\xfe"
"\xbf\xcf\x1f\xb3\xf8\xdf\x99\x3f\x66\xf1\xff\x43\xfe\x98\xc5\xff\x8f\xf9"
"\x63\x16\xff\x3f\xe5\x8f\x59\xfc\xef\xca\x1f\xb3\xf8\xdf\x9d\x3f\x66\xf1"
"\xff\x73\xfe\x98\xc5\xff\x9e\xfc\x31\x8b\xff\x5f\xf2\xc7\x2c\xfe\xf7\xe6"
"\x8f\x59\xfc\xef\xcb\x1f\xb3\xf8\xff\x35\x7f\xcc\xe2\xff\xb7\xfc\x31\x8b"
"\xff\xfd\xf9\x63\x16\xff\x07\xf2\xc7\x2c\xfe\x0f\xe6\x8f\x59\xfc\x1f\xca"
"\x1f\xb3\xf8\x3f\x9c\x3f\x66\xf1\x7f\x24\x7f\xcc\xe2\xff\x68\xfe\x98\xc5"
"\xff\xb1\xfc\x31\x8b\xff\xe3\xf9\x63\x16\xff\x27\xf2\xc7\x2c\xfe\x4f\xe6"
"\x8f\x59\xfc\x9f\xca\x1f\xb3\xf8\x3f\x9d\x3f\x66\xf1\x7f\x26\x7f\xcc\xe2"
"\xff\x6c\xfe\x98\xc5\xff\xb9\xfc\x31\x8b\xff\xf3\xf9\x63\x16\xff\x17\xf2"
"\xc7\x2c\xfe\x2f\xe6\x8f\x59\xfc\x5f\xca\x1f\xb3\xf8\xbf\x9c\x3f\x66\xf1"
"\x7f\x25\x7f\xcc\xe2\xff\x6a\xfe\x98\xc5\xff\xb5\xfc\x31\x89\xff\x24\x03"
"\xf9\x63\x16\xff\x41\xf9\x63\x16\xff\xf1\xf2\xc7\x2c\xfe\x83\xf3\xc7\x2c"
"\xfe\x43\xf2\xc7\x2c\xfe\x43\xf3\xc7\x2c\xfe\xc3\xf2\xc7\x2c\xfe\xe3\xe7"
"\x8f\x59\xfc\x27\xc8\x1f\xb3\xf8\x4f\x98\x3f\x66\xf1\x9f\x28\x7f\xcc\xe2"
"\x3f\x71\xfe\x98\xc5\x7f\x92\xfc\x31\x8b\xff\xa4\xf9\x63\x16\xff\xe1\xf9"
"\x63\x16\xff\xc9\xf2\xc7\x2c\xfe\x93\xe7\x8f\x59\xfc\xa7\xc8\x1f\xb3\xf8"
"\x4f\x99\x3f\x66\xf1\x9f\x2a\x7f\xcc\xe2\x3f\x75\xfe\x98\xc5\x7f\x9a\xfc"
"\x31\x8b\xff\x3b\xf2\xc7\x2c\xfe\xef\xcc\x1f\xb3\xf8\x4f\x9b\x3f\x66\xf1"
"\x9f\x2e\x7f\xcc\xe2\x3f\x7d\xfe\x98\xc5\xff\x5d\xf9\x63\x16\xff\x19\xf2"
"\xc7\x2c\xfe\x23\xf2\xc7\x2c\xfe\xef\xce\x1f\xb3\xf8\xcf\x98\x3f\x66\xf1"
"\x9f\x29\x7f\xcc\xe2\xff\x9e\xfc\x31\x8b\xff\xcc\xf9\x63\x16\xff\x59\xf2"
"\xc7\x2c\xfe\xb3\xe6\x8f\x59\xfc\x67\xcb\x1f\xb3\xf8\xbf\x37\x7f\xcc\xe2"
"\x3f\x7b\xfe\x98\xc5\x7f\x8e\xfc\x31\x8b\xff\x9c\xf9\x63\x16\xff\xb9\xf2"
"\xc7\x2c\xfe\x73\xe7\x8f\x59\xfc\xe7\xc9\x1f\xb3\xf8\xcf\x9b\x3f\x66\xf1"
"\x9f\x2f\x7f\xcc\xe2\x3f\x7f\xfe\x98\xc5\x7f\x81\xfc\x31\x8b\xff\x82\xf9"
"\x63\x16\xff\x85\xf2\xc7\x2c\xfe\x0b\xe7\x8f\x59\xfc\x17\xc9\x1f\xb3\xf8"
"\x2f\x9a\x3f\x66\xf1\x5f\x2c\x7f\xcc\xe2\xbf\x78\xfe\x98\xc5\x7f\x89\xfc"
"\x31\x8b\xff\x92\xf9\x63\x16\xff\xa5\xf2\xc7\x2c\xfe\x4b\xe7\x8f\x59\xfc"
"\x97\xc9\x1f\xb3\xf8\xbf\x2f\x7f\xcc\xe2\xff\xfe\xfc\x31\x8b\xff\x07\xf2"
"\xc7\x2c\xfe\xcb\xe6\x8f\x59\xfc\x97\xcb\x1f\xb3\xf8\x2f\x9f\x3f\x66\xf1"
"\x5f\x21\x7f\xcc\xe2\xbf\x62\xfe\x98\xc5\x7f\xa5\xfc\x31\x8b\xff\xca\xf9"
"\x63\x16\xff\x55\xf2\xc7\x2c\xfe\xab\xe6\x8f\x59\xfc\x57\xcb\x1f\xb3\xf8"
"\xaf\x9e\x3f\x66\xf1\x5f\x23\x7f\xcc\xe2\xbf\x66\xfe\x98\xc5\x7f\xad\xfc"
"\x31\x8b\xff\xda\xf9\x63\x16\xff\x75\xf2\xc7\x2c\xfe\xeb\xe6\x8f\x59\xfc"
"\xd7\xcb\x1f\xb3\xf8\xaf\x9f\x3f\x66\xf1\xdf\x20\x7f\xcc\xe2\xbf\x61\xfe"
"\x98\xc5\x7f\xa3\xfc\x31\x8b\xff\xc6\xf9\x63\x16\xff\x4d\xf2\xc7\x2c\xfe"
"\x9b\xe6\x8f\x59\xfc\x37\xcb\x1f\xb3\xf8\x6f\x9e\x3f\x66\xf1\xdf\x22\x7f"
"\xcc\xe2\xbf\x65\xfe\x98\xc5\x7f\xab\xfc\x31\x8b\xff\xd6\xf9\x63\x16\xff"
"\x0f\xe6\x8f\x59\xfc\xb7\xc9\x1f\xb3\xf8\x6f\x9b\x3f\x66\xf1\xdf\x2e\x7f"
"\xcc\xe2\xbf\x7d\xfe\x98\xc5\x7f\x87\xfc\x31\x8b\xff\x8e\xf9\x63\x16\xff"
"\x9d\xf2\xc7\x2c\xfe\x3b\xe7\x8f\x59\xfc\x77\xc9\x1f\xb3\xf8\xef\x9a\x3f"
"\x66\xf1\xdf\x2d\x7f\xcc\xe2\xff\xa1\xfc\x31\x8b\xff\xee\xf9\x63\x16\xff"
"\x3d\xf2\xc7\x2c\xfe\x7b\xe6\x8f\x59\xfc\xf7\xca\x1f\xb3\xf8\xef\x9d\x3f"
"\x66\xf1\xff\x70\xfe\x98\xc5\x7f\x9f\xfc\x31\x8b\xff\xbe\xf9\x63\x16\xff"
"\xfd\xf2\xc7\x2c\xfe\x1f\xc9\x1f\xb3\xf8\x7f\x34\x7f\xcc\xe2\xff\xb1\xfc"
"\x31\x8b\xff\xfe\xf9\x63\x16\xff\x03\xf2\xc7\x2c\xfe\x07\xe6\x8f\x59\xfc"
"\x0f\xca\x1f\xb3\xf8\x1f\x9c\x3f\x66\xf1\x3f\x24\x7f\xcc\xe2\x7f\x68\xfe"
"\x98\xc5\xff\xb0\xfc\x31\x8b\xff\xe1\xf9\x63\x16\xff\x23\xf2\xc7\x2c\xfe"
"\x47\xe6\x8f\x59\xfc\x8f\xca\x1f\xb3\xf8\x7f\x3c\x7f\xcc\xe2\x7f\x74\xfe"
"\x98\xc5\xff\x13\xf9\x63\x16\xff\x4f\xe6\x8f\x59\xfc\x8f\xc9\x1f\xb3\xf8"
"\x7f\x2a\x7f\xcc\xe2\x7f\x6c\xfe\x98\xc5\xff\xb8\xfc\x31\x8b\xff\xf1\xf9"
"\x63\x16\xff\x4f\xe7\x8f\x59\xfc\x3f\x93\x3f\x66\xf1\x3f\x21\x7f\xcc\xe2"
"\x7f\x62\xfe\x98\xc5\xff\xa4\xfc\x31\x8b\xff\xc9\xf9\x63\x16\xff\x53\xf2"
"\xc7\x2c\xfe\x9f\xcd\x1f\xb3\xf8\x7f\x2e\x7f\xcc\xe2\xff\xf9\xfc\x31\x8b"
"\xff\x17\xf2\xc7\x2c\xfe\xa7\xe6\x8f\x59\xfc\xbf\x98\x3f\x66\xf1\xff\x52"
"\xfe\x98\xc5\xff\xcb\xf9\x63\x16\xff\xaf\xe4\x8f\x59\xfc\x4f\xcb\x1f\xb3"
"\xf8\x9f\x9e\x3f\x66\xf1\x3f\x23\x7f\xcc\xe2\x7f\x66\xfe\x98\xc5\xff\xac"
"\xfc\x31\x8b\xff\xd9\xf9\x63\x16\xff\xaf\xe6\x8f\x59\xfc\xbf\x96\x3f\x66"
"\xf1\x3f\x27\x7f\xcc\xe2\xff\xf5\xfc\x31\x8b\xff\xb9\xf9\x63\x16\xff\xf3"
"\xf2\xc7\x2c\xfe\xe7\xe7\x8f\x59\xfc\x2f\xc8\x1f\xb3\xf8\x5f\x98\x3f\x66"
"\xf1\xff\x46\xfe\x98\xc5\xff\x9b\xf9\x63\x16\xff\x6f\xe5\x8f\x59\xfc\x2f"
"\xca\x1f\xb3\xf8\x5f\x9c\x3f\x66\xf1\xff\x76\xfe\x98\xc5\xff\x92\xfc\x31"
"\x8b\xff\x77\xf2\xc7\x2c\xfe\x97\xe6\x8f\x59\xfc\x2f\xcb\x1f\xb3\xf8\x5f"
"\x9e\x3f\x66\xf1\xff\x6e\xfe\x98\xc5\xff\x7b\xf9\x63\x16\xff\x2b\xf2\xc7"
"\x2c\xfe\x57\xe6\x8f\x59\xfc\xbf\x9f\x3f\x66\xf1\xbf\x2a\x7f\xcc\xe2\xff"
"\x83\xfc\x31\x8b\xff\xd5\xf9\x63\x16\xff\x1f\xe6\x8f\x59\xfc\xaf\xc9\x1f"
"\xb3\xf8\xff\x28\x7f\xcc\xe2\x7f\x6d\xfe\x98\xc5\xff\xba\xfc\x31\x8b\xff"
"\x8f\xf3\xc7\x2c\xfe\x3f\xc9\x1f\xb3\xf8\xff\x34\x7f\xcc\xe2\x7f\x7d\xfe"
"\x98\xc5\xff\x67\xf9\x63\x16\xff\x1b\xf2\xc7\x2c\xfe\x37\xe6\x8f\x59\xfc"
"\x7f\x9e\x3f\x66\xf1\xbf\x29\x7f\xcc\xe2\x7f\x73\xfe\x98\xc5\xff\x17\xf9"
"\x63\x16\xff\x5b\xf2\xc7\x2c\xfe\xb7\xe6\x8f\x59\xfc\x6f\xcb\x1f\xb3\xf8"
"\xdf\x9e\x3f\x66\xf1\xff\x65\xfe\x98\xc5\xff\x8e\xfc\x31\x8b\xff\xaf\xf2"
"\xc7\x2c\xfe\xbf\xce\x1f\xb3\xf8\xff\x26\x7f\xcc\xe2\xff\xdb\xfc\x31\x8b"
"\xff\xef\xf2\xc7\x2c\xfe\xbf\xcf\x1f\xb3\xf8\xdf\x99\x3f\x66\xf1\xff\x43"
"\xfe\x98\xc5\xff\x8f\xf9\x63\x16\xff\x3f\xe5\x8f\x59\xfc\xef\xca\x1f\xb3"
"\xf8\xdf\x9d\x3f\x66\xf1\xff\x73\xfe\x98\xc5\xff\x9e\xfc\x31\x8b\xff\x5f"
"\xf2\xc7\x2c\xfe\xf7\xe6\x8f\x59\xfc\xef\xcb\x1f\xb3\xf8\xff\x35\x7f\xcc"
"\xe2\xff\xb7\xfc\x31\x8b\xff\xfd\xf9\x63\x16\xff\x07\xf2\xc7\x2c\xfe\x0f"
"\xe6\x8f\x59\xfc\x1f\xca\x1f\xb3\xf8\x3f\x9c\x3f\x66\xf1\x7f\x24\x7f\xcc"
"\xe2\xff\x68\xfe\x98\xc5\xff\xb1\xfc\x31\x8b\xff\xe3\xf9\x63\x16\xff\x27"
"\xf2\xc7\x2c\xfe\x4f\xe6\x8f\x59\xfc\x9f\xca\x1f\xb3\xf8\x3f\x9d\x3f\x66"
"\xf1\x7f\x26\x7f\xcc\xe2\xff\x6c\xfe\x98\xc5\xff\xb9\xfc\x31\x8b\xff\xf3"
"\xf9\x63\x16\xff\x17\xf2\xc7\x2c\xfe\x2f\xe6\x8f\x59\xfc\x5f\xca\x1f\xb3"
"\xf8\xbf\x9c\x3f\x66\xf1\x7f\x25\x7f\xcc\xe2\xff\x6a\xfe\x98\xc5\xff\xb5"
"\xfc\x31\x89\xff\xa4\x03\xf9\x63\x16\xff\x41\xf9\x63\x16\xff\xf1\xf2\xc7"
"\x2c\xfe\x83\xf3\xc7\x2c\xfe\x43\xf2\xc7\x2c\xfe\x43\xf3\xc7\x2c\xfe\xc3"
"\xf2\xc7\x2c\xfe\xe3\xe7\x8f\x59\xfc\x27\xc8\x1f\xb3\xf8\x4f\x98\x3f\x66"
"\xf1\x9f\x28\x7f\xcc\xe2\x3f\x71\xfe\x98\xc5\x7f\x92\xfc\x31\x8b\xff\xa4"
"\xf9\x63\x16\xff\xe1\xf9\x63\x16\xff\xc9\xf2\xc7\x2c\xfe\x93\xe7\x8f\x59"
"\xfc\xa7\xc8\x1f\xb3\xf8\x4f\x99\x3f\x66\xf1\x9f\x2a\x7f\xcc\xe2\x3f\x75"
"\xfe\x98\xc5\x7f\x9a\xfc\x31\x8b\xff\x3b\xf2\xc7\x2c\xfe\xef\xcc\x1f\xb3"
"\xf8\x4f\x9b\x3f\x66\xf1\x9f\x2e\x7f\xcc\xe2\x3f\x7d\xfe\x98\xc5\xff\x5d"
"\xf9\x63\x16\xff\x19\xf2\xc7\x2c\xfe\x23\xf2\xc7\x2c\xfe\xef\xce\x1f\xb3"
"\xf8\xcf\x98\x3f\x66\xf1\x9f\x29\x7f\xcc\xe2\xff\x9e\xfc\x31\x8b\xff\xcc"
"\xf9\x63\x16\xff\x59\xf2\xc7\x2c\xfe\xb3\xe6\x8f\x59\xfc\x67\xcb\x1f\xb3"
"\xf8\xbf\x37\x7f\xcc\xe2\x3f\x7b\xfe\x98\xc5\x7f\x8e\xfc\x31\x8b\xff\x9c"
"\xf9\x63\x16\xff\xb9\xf2\xc7\x2c\xfe\x73\xe7\x8f\x59\xfc\xe7\xc9\x1f\xb3"
"\xf8\xcf\x9b\x3f\x66\xf1\x9f\x2f\x7f\xcc\xe2\x3f\x7f\xfe\x98\xc5\x7f\x81"
"\xfc\x31\x8b\xff\x82\xf9\x63\x16\xff\x85\xf2\xc7\x2c\xfe\x0b\xe7\x8f\x59"
"\xfc\x17\xc9\x1f\xb3\xf8\x2f\x9a\x3f\x66\xf1\x5f\x2c\x7f\xcc\xe2\xbf\x78"
"\xfe\x98\xc5\x7f\x89\xfc\x31\x8b\xff\x92\xf9\x63\x16\xff\xa5\xf2\xc7\x2c"
"\xfe\x4b\xe7\x8f\x59\xfc\x97\xc9\x1f\xb3\xf8\xbf\x2f\x7f\xcc\xe2\xff\xfe"
"\xfc\x31\x8b\xff\x07\xf2\xc7\x2c\xfe\xcb\xe6\x8f\x59\xfc\x97\xcb\x1f\xb3"
"\xf8\x2f\x9f\x3f\x66\xf1\x5f\x21\x7f\xcc\xe2\xbf\x62\xfe\x98\xc5\x7f\xa5"
"\xfc\x31\x8b\xff\xca\xf9\x63\x16\xff\x55\xf2\xc7\x2c\xfe\xab\xe6\x8f\x59"
"\xfc\x57\xcb\x1f\xb3\xf8\xaf\x9e\x3f\x66\xf1\x5f\x23\x7f\xcc\xe2\xbf\x66"
"\xfe\x98\xc5\x7f\xad\xfc\x31\x8b\xff\xda\xf9\x63\x16\xff\x75\xf2\xc7\x2c"
"\xfe\xeb\xe6\x8f\x59\xfc\xd7\xcb\x1f\xb3\xf8\xaf\x9f\x3f\x66\xf1\xdf\x20"
"\x7f\xcc\xe2\xbf\x61\xfe\x98\xc5\x7f\xa3\xfc\x31\x8b\xff\xc6\xf9\x63\x16"
"\xff\x4d\xf2\xc7\x2c\xfe\x9b\xe6\x8f\x59\xfc\x37\xcb\x1f\xb3\xf8\x6f\x9e"
"\x3f\x66\xf1\xdf\x22\x7f\xcc\xe2\xbf\x65\xfe\x98\xc5\x7f\xab\xfc\x31\x8b"
"\xff\xd6\xf9\x63\x16\xff\x0f\xe6\x8f\x59\xfc\xb7\xc9\x1f\xb3\xf8\x6f\x9b"
"\x3f\x66\xf1\xdf\x2e\x7f\xcc\xe2\xbf\x7d\xfe\x98\xc5\x7f\x87\xfc\x31\x8b"
"\xff\x8e\xf9\x63\x16\xff\x9d\xf2\xc7\x2c\xfe\x3b\xe7\x8f\x59\xfc\x77\xc9"
"\x1f\xb3\xf8\xef\x9a\x3f\x66\xf1\xdf\x2d\x7f\xcc\xe2\xff\xa1\xfc\x31\x8b"
"\xff\xee\xf9\x63\x16\xff\x3d\xf2\xc7\x2c\xfe\x7b\xe6\x8f\x59\xfc\xf7\xca"
"\x1f\xb3\xf8\xef\x9d\x3f\x66\xf1\xff\x70\xfe\x98\xc5\x7f\x9f\xfc\x31\x8b"
"\xff\xbe\xf9\x63\x16\xff\xfd\xf2\xc7\x2c\xfe\x1f\xc9\x1f\xb3\xf8\x7f\x34"
"\x7f\xcc\xe2\xff\xb1\xfc\x31\x8b\xff\xfe\xf9\x63\x16\xff\x03\xf2\xc7\x2c"
"\xfe\x07\xe6\x8f\x59\xfc\x0f\xca\x1f\xb3\xf8\x1f\x9c\x3f\x66\xf1\x3f\x24"
"\x7f\xcc\xe2\x7f\x68\xfe\x98\xc5\xff\xb0\xfc\x31\x8b\xff\xe1\xf9\x63\x16"
"\xff\x23\xf2\xc7\x2c\xfe\x47\xe6\x8f\x59\xfc\x8f\xca\x1f\xb3\xf8\x7f\x3c"
"\x7f\xcc\xe2\x7f\x74\xfe\x98\xc5\xff\x13\xf9\x63\x16\xff\x4f\xe6\x8f\x59"
"\xfc\x8f\xc9\x1f\xb3\xf8\x7f\x2a\x7f\xcc\xe2\x7f\x6c\xfe\x98\xc5\xff\xb8"
"\xfc\x31\x8b\xff\xf1\xf9\x63\x16\xff\x4f\xe7\x8f\x59\xfc\x3f\x93\x3f\x66"
"\xf1\x3f\x21\x7f\xcc\xe2\x7f\x62\xfe\x98\xc5\xff\xa4\xfc\x31\x8b\xff\xc9"
"\xf9\x63\x16\xff\x53\xf2\xc7\x2c\xfe\x9f\xcd\x1f\xb3\xf8\x7f\x2e\x7f\xcc"
"\xe2\xff\xf9\xfc\x31\x8b\xff\x17\xf2\xc7\x2c\xfe\xa7\xe6\x8f\x59\xfc\xbf"
"\x98\x3f\x66\xf1\xff\x52\xfe\x98\xc5\xff\xcb\xf9\x63\x16\xff\xaf\xe4\x8f"
"\x59\xfc\x4f\xcb\x1f\xb3\xf8\x9f\x9e\x3f\x66\xf1\x3f\x23\x7f\xcc\xe2\x7f"
"\x66\xfe\x98\xc5\xff\xac\xfc\x31\x8b\xff\xd9\xf9\x63\x16\xff\xaf\xe6\x8f"
"\x59\xfc\xbf\x96\x3f\x66\xf1\x3f\x27\x7f\xcc\xe2\xff\xf5\xfc\x31\x8b\xff"
"\xb9\xf9\x63\x16\xff\xf3\xf2\xc7\x2c\xfe\xe7\xe7\x8f\x59\xfc\x2f\xc8\x1f"
"\xb3\xf8\x5f\x98\x3f\x66\xf1\xff\x46\xfe\x98\xc5\xff\x9b\xf9\x63\x16\xff"
"\x6f\xe5\x8f\x59\xfc\x2f\xca\x1f\xb3\xf8\x5f\x9c\x3f\x66\xf1\xff\x76\xfe"
"\x98\xc5\xff\x92\xfc\x31\x8b\xff\x77\xf2\xc7\x2c\xfe\x97\xe6\x8f\x59\xfc"
"\x2f\xcb\x1f\xb3\xf8\x5f\x9e\x3f\x66\xf1\xff\x6e\xfe\x98\xc5\xff\x7b\xf9"
"\x63\x16\xff\x2b\xf2\xc7\x2c\xfe\x57\xe6\x8f\x59\xfc\xbf\x9f\x3f\x66\xf1"
"\xbf\x2a\x7f\xcc\xe2\xff\x83\xfc\x31\x8b\xff\xd5\xf9\x63\x16\xff\x1f\xe6"
"\x8f\x59\xfc\xaf\xc9\x1f\xb3\xf8\xff\x28\x7f\xcc\xe2\x7f\x6d\xfe\x98\xc5"
"\xff\xba\xfc\x31\x8b\xff\x8f\xf3\xc7\x2c\xfe\x3f\xc9\x1f\xb3\xf8\xff\x34"
"\x7f\xcc\xe2\x7f\x7d\xfe\x98\xc5\xff\x67\xf9\x63\x16\xff\x1b\xf2\xc7\x2c"
"\xfe\x37\xe6\x8f\x59\xfc\x7f\x9e\x3f\x66\xf1\xbf\x29\x7f\xcc\xe2\x7f\x73"
"\xfe\x98\xc5\xff\x17\xf9\x63\x16\xff\x5b\xf2\xc7\x2c\xfe\xb7\xe6\x8f\x59"
"\xfc\x6f\xcb\x1f\xb3\xf8\xdf\x9e\x3f\x66\xf1\xff\x65\xfe\x98\xc5\xff\x8e"
"\xfc\x31\x8b\xff\xaf\xf2\xc7\x2c\xfe\xbf\xce\x1f\xb3\xf8\xff\x26\x7f\xcc"
"\xe2\xff\xdb\xfc\x31\x8b\xff\xef\xf2\xc7\x2c\xfe\xbf\xcf\x1f\xb3\xf8\xdf"
"\x99\x3f\x66\xf1\xff\x43\xfe\x98\xc5\xff\x8f\xf9\x63\x16\xff\x3f\xe5\x8f"
"\x59\xfc\xef\xca\x1f\xb3\xf8\xdf\x9d\x3f\x66\xf1\xff\x73\xfe\x98\xc5\xff"
"\x9e\xfc\x31\x8b\xff\x5f\xf2\xc7\x2c\xfe\xf7\xe6\x8f\x59\xfc\xef\xcb\x1f"
"\xb3\xf8\xff\x35\x7f\xcc\xe2\xff\xb7\xfc\x31\x8b\xff\xfd\xf9\x63\x16\xff"
"\x07\xf2\xc7\x2c\xfe\x0f\xe6\x8f\x59\xfc\x1f\xca\x1f\xb3\xf8\x3f\x9c\x3f"
"\x66\xf1\x7f\x24\x7f\xcc\xe2\xff\x68\xfe\x98\xc5\xff\xb1\xfc\x31\x8b\xff"
"\xe3\xf9\x63\x16\xff\x27\xf2\xc7\x2c\xfe\x4f\xe6\x8f\x59\xfc\x9f\xca\x1f"
"\xb3\xf8\x3f\x9d\x3f\x66\xf1\x7f\x26\x7f\xcc\xe2\xff\x6c\xfe\x98\xc5\xff"
"\xb9\xfc\x31\x8b\xff\xf3\xf9\x63\x16\xff\x17\xf2\xc7\x2c\xfe\x2f\xe6\x8f"
"\x59\xfc\x5f\xca\x1f\xb3\xf8\xbf\x9c\x3f\x66\xf1\x7f\x25\x7f\xcc\xe2\xff"
"\x6a\xfe\x98\xc5\xff\xb5\xfc\x31\x89\xff\xf0\x81\xfc\x31\x8b\xff\xa0\xfc"
"\x31\x8b\xff\x78\xf9\x63\x16\xff\xc1\xf9\x63\x16\xff\x21\xf9\x63\x16\xff"
"\xa1\xf9\x63\x16\xff\x61\xf9\x63\x16\xff\xf1\xf3\xc7\x2c\xfe\x13\xe4\x8f"
"\x59\xfc\x27\xcc\x1f\xb3\xf8\x4f\x94\x3f\x66\xf1\x9f\x38\x7f\xcc\xe2\x3f"
"\x49\xfe\x98\xc5\x7f\xd2\xfc\x31\x8b\xff\xf0\xfc\x31\x8b\xff\x64\xf9\x63"
"\x16\xff\xc9\xf3\xc7\x2c\xfe\x53\xe4\x8f\x59\xfc\xa7\xcc\x1f\xb3\xf8\x4f"
"\x95\x3f\x66\xf1\x9f\x3a\x7f\xcc\xe2\x3f\x4d\xfe\x98\xc5\xff\x1d\xf9\x63"
"\x16\xff\x77\xe6\x8f\x59\xfc\xa7\xcd\x1f\xb3\xf8\x4f\x97\x3f\x66\xf1\x9f"
"\x3e\x7f\xcc\xe2\xff\xae\xfc\x31\x8b\xff\x0c\xf9\x63\x16\xff\x11\xf9\x63"
"\x16\xff\x77\xe7\x8f\x59\xfc\x67\xcc\x1f\xb3\xf8\xcf\x94\x3f\x66\xf1\x7f"
"\x4f\xfe\x98\xc5\x7f\xe6\xfc\x31\x8b\xff\x2c\xf9\x63\x16\xff\x59\xf3\xc7"
"\x2c\xfe\xb3\xe5\x8f\x59\xfc\xdf\x9b\x3f\x66\xf1\x9f\x3d\x7f\xcc\xe2\x3f"
"\x47\xfe\x98\xc5\x7f\xce\xfc\x31\x8b\xff\x5c\xf9\x63\x16\xff\xb9\xf3\xc7"
"\x2c\xfe\xf3\xe4\x8f\x59\xfc\xe7\xcd\x1f\xb3\xf8\xcf\x97\x3f\x66\xf1\x9f"
"\x3f\x7f\xcc\xe2\xbf\x40\xfe\x98\xc5\x7f\xc1\xfc\x31\x8b\xff\x42\xf9\x63"
"\x16\xff\x85\xf3\xc7\x2c\xfe\x8b\xe4\x8f\x59\xfc\x17\xcd\x1f\xb3\xf8\x2f"
"\x96\x3f\x66\xf1\x5f\x3c\x7f\xcc\xe2\xbf\x44\xfe\x98\xc5\x7f\xc9\xfc\x31"
"\x8b\xff\x52\xf9\x63\x16\xff\xa5\xf3\xc7\x2c\xfe\xcb\xe4\x8f\x59\xfc\xdf"
"\x97\x3f\x66\xf1\x7f\x7f\xfe\x98\xc5\xff\x03\xf9\x63\x16\xff\x65\xf3\xc7"
"\x2c\xfe\xcb\xe5\x8f\x59\xfc\x97\xcf\x1f\xb3\xf8\xaf\x90\x3f\x66\xf1\x5f"
"\x31\x7f\xcc\xe2\xbf\x52\xfe\x98\xc5\x7f\xe5\xfc\x31\x8b\xff\x2a\xf9\x63"
"\x16\xff\x55\xf3\xc7\x2c\xfe\xab\xe5\x8f\x59\xfc\x57\xcf\x1f\xb3\xf8\xaf"
"\x91\x3f\x66\xf1\x5f\x33\x7f\xcc\xe2\xbf\x56\xfe\x98\xc5\x7f\xed\xfc\x31"
"\x8b\xff\x3a\xf9\x63\x16\xff\x75\xf3\xc7\x2c\xfe\xeb\xe5\x8f\x59\xfc\xd7"
"\xcf\x1f\xb3\xf8\x6f\x90\x3f\x66\xf1\xdf\x30\x7f\xcc\xe2\xbf\x51\xfe\x98"
"\xc5\x7f\xe3\xfc\x31\x8b\xff\x26\xf9\x63\x16\xff\x4d\xf3\xc7\x2c\xfe\x9b"
"\xe5\x8f\x59\xfc\x37\xcf\x1f\xb3\xf8\x6f\x91\x3f\x66\xf1\xdf\x32\x7f\xcc"
"\xe2\xbf\x55\xfe\x98\xc5\x7f\xeb\xfc\x31\x8b\xff\x07\xf3\xc7\x2c\xfe\xdb"
"\xe4\x8f\x59\xfc\xb7\xcd\x1f\xb3\xf8\x6f\x97\x3f\x66\xf1\xdf\x3e\x7f\xcc"
"\xe2\xbf\x43\xfe\x98\xc5\x7f\xc7\xfc\x31\x8b\xff\x4e\xf9\x63\x16\xff\x9d"
"\xf3\xc7\x2c\xfe\xbb\xe4\x8f\x59\xfc\x77\xcd\x1f\xb3\xf8\xef\x96\x3f\x66"
"\xf1\xff\x50\xfe\x98\xc5\x7f\xf7\xfc\x31\x8b\xff\x1e\xf9\x63\x16\xff\x3d"
"\xf3\xc7\x2c\xfe\x7b\xe5\x8f\x59\xfc\xf7\xce\x1f\xb3\xf8\x7f\x38\x7f\xcc"
"\xe2\xbf\x4f\xfe\x98\xc5\x7f\xdf\xfc\x31\x8b\xff\x7e\xf9\x63\x16\xff\x8f"
"\xe4\x8f\x59\xfc\x3f\x9a\x3f\x66\xf1\xff\x58\xfe\x98\xc5\x7f\xff\xfc\x31"
"\x8b\xff\x01\xf9\x63\x16\xff\x03\xf3\xc7\x2c\xfe\x07\xe5\x8f\x59\xfc\x0f"
"\xce\x1f\xb3\xf8\x1f\x92\x3f\x66\xf1\x3f\x34\x7f\xcc\xe2\x7f\x58\xfe\x98"
"\xc5\xff\xf0\xfc\x31\x8b\xff\x11\xf9\x63\x16\xff\x23\xf3\xc7\x2c\xfe\x47"
"\xe5\x8f\x59\xfc\x3f\x9e\x3f\x66\xf1\x3f\x3a\x7f\xcc\xe2\xff\x89\xfc\x31"
"\x8b\xff\x27\xf3\xc7\x2c\xfe\xc7\xe4\x8f\x59\xfc\x3f\x95\x3f\x66\xf1\x3f"
"\x36\x7f\xcc\xe2\x7f\x5c\xfe\x98\xc5\xff\xf8\xfc\x31\x8b\xff\xa7\xf3\xc7"
"\x2c\xfe\x9f\xc9\x1f\xb3\xf8\x9f\x90\x3f\x66\xf1\x3f\x31\x7f\xcc\xe2\x7f"
"\x52\xfe\x98\xc5\xff\xe4\xfc\x31\x8b\xff\x29\xf9\x63\x16\xff\xcf\xe6\x8f"
"\x59\xfc\x3f\x97\x3f\x66\xf1\xff\x7c\xfe\x98\xc5\xff\x0b\xf9\x63\x16\xff"
"\x53\xf3\xc7\x2c\xfe\x5f\xcc\x1f\xb3\xf8\x7f\x29\x7f\xcc\xe2\xff\xe5\xfc"
"\x31\x8b\xff\x57\xf2\xc7\x2c\xfe\xa7\xe5\x8f\x59\xfc\x4f\xcf\x1f\xb3\xf8"
"\x9f\x91\x3f\x66\xf1\x3f\x33\x7f\xcc\xe2\x7f\x56\xfe\x98\xc5\xff\xec\xfc"
"\x31\x8b\xff\x57\xf3\xc7\x2c\xfe\x5f\xcb\x1f\xb3\xf8\x9f\x93\x3f\x66\xf1"
"\xff\x7a\xfe\x98\xc5\xff\xdc\xfc\x31\x8b\xff\x79\xf9\x63\x16\xff\xf3\xf3"
"\xc7\x2c\xfe\x17\xe4\x8f\x59\xfc\x2f\xcc\x1f\xb3\xf8\x7f\x23\x7f\xcc\xe2"
"\xff\xcd\xfc\x31\x8b\xff\xb7\xf2\xc7\x2c\xfe\x17\xe5\x8f\x59\xfc\x2f\xce"
"\x1f\xb3\xf8\x7f\x3b\x7f\xcc\xe2\x7f\x49\xfe\x98\xc5\xff\x3b\xf9\x63\x16"
"\xff\x4b\xf3\xc7\x2c\xfe\x97\xe5\x8f\x59\xfc\x2f\xcf\x1f\xb3\xf8\x7f\x37"
"\x7f\xcc\xe2\xff\xbd\xfc\x31\x8b\xff\x15\xf9\x63\x16\xff\x2b\xf3\xc7\x2c"
"\xfe\xdf\xcf\x1f\xb3\xf8\x5f\x95\x3f\x66\xf1\xff\x41\xfe\x98\xc5\xff\xea"
"\xfc\x31\x8b\xff\x0f\xf3\xc7\x2c\xfe\xd7\xe4\x8f\x59\xfc\x7f\x94\x3f\x66"
"\xf1\xbf\x36\x7f\xcc\xe2\x7f\x5d\xfe\x98\xc5\xff\xc7\xf9\x63\x16\xff\x9f"
"\xe4\x8f\x59\xfc\x7f\x9a\x3f\x66\xf1\xbf\x3e\x7f\xcc\xe2\xff\xb3\xfc\x31"
"\x8b\xff\x0d\xf9\x63\x16\xff\x1b\xf3\xc7\x2c\xfe\x3f\xcf\x1f\xb3\xf8\xdf"
"\x94\x3f\x66\xf1\xbf\x39\x7f\xcc\xe2\xff\x8b\xfc\x31\x8b\xff\x2d\xf9\x63"
"\x16\xff\x5b\xf3\xc7\x2c\xfe\xb7\xe5\x8f\x59\xfc\x6f\xcf\x1f\xb3\xf8\xff"
"\x32\x7f\xcc\xe2\x7f\x47\xfe\x98\xc5\xff\x57\xf9\x63\x16\xff\x5f\xe7\x8f"
"\x59\xfc\x7f\x93\x3f\x66\xf1\xff\x6d\xfe\x98\xc5\xff\x77\xf9\x63\x16\xff"
"\xdf\xe7\x8f\x59\xfc\xef\xcc\x1f\xb3\xf8\xff\x21\x7f\xcc\xe2\xff\xc7\xfc"
"\x31\x8b\xff\x9f\xf2\xc7\x2c\xfe\x77\xe5\x8f\x59\xfc\xef\xce\x1f\xb3\xf8"
"\xff\x39\x7f\xcc\xe2\x7f\x4f\xfe\x98\xc5\xff\x2f\xf9\x63\x16\xff\x7b\xf3"
"\xc7\x2c\xfe\xf7\xe5\x8f\x59\xfc\xff\x9a\x3f\x66\xf1\xff\x5b\xfe\x98\xc5"
"\xff\xfe\xfc\x31\x8b\xff\x03\xf9\x63\x16\xff\x07\xf3\xc7\x2c\xfe\x0f\xe5"
"\x8f\x59\xfc\x1f\xce\x1f\xb3\xf8\x3f\x92\x3f\x66\xf1\x7f\x34\x7f\xcc\xe2"
"\xff\x58\xfe\x98\xc5\xff\xf1\xfc\x31\x8b\xff\x13\xf9\x63\x16\xff\x27\xf3"
"\xc7\x2c\xfe\x4f\xe5\x8f\x59\xfc\x9f\xce\x1f\xb3\xf8\x3f\x93\x3f\x66\xf1"
"\x7f\x36\x7f\xcc\xe2\xff\x5c\xfe\x98\xc5\xff\xf9\xfc\x31\x8b\xff\x0b\xf9"
"\x63\x16\xff\x17\xf3\xc7\x2c\xfe\x2f\xe5\x8f\x59\xfc\x5f\xce\x1f\xb3\xf8"
"\xbf\x92\x3f\x66\xf1\x7f\x35\x7f\xcc\xe2\xff\x5a\xfe\x98\xc4\x7f\xb2\x81"
"\xfc\x31\x8b\xff\xa0\xfc\x31\x8b\xff\x78\xf9\x63\x16\xff\xc1\xf9\x63\x16"
"\xff\x21\xf9\x63\x16\xff\xa1\xf9\x63\x16\xff\x61\xf9\x63\x16\xff\xf1\xf3"
"\xc7\x2c\xfe\x13\xe4\x8f\x59\xfc\x27\xcc\x1f\xb3\xf8\x4f\x94\x3f\x66\xf1"
"\x9f\x38\x7f\xcc\xe2\x3f\x49\xfe\x98\xc5\x7f\xd2\xfc\x31\x8b\xff\xf0\xfc"
"\x31\x8b\xff\x64\xf9\x63\x16\xff\xc9\xf3\xc7\x2c\xfe\x53\xe4\x8f\x59\xfc"
"\xa7\xcc\x1f\xb3\xf8\x4f\x95\x3f\x66\xf1\x9f\x3a\x7f\xcc\xe2\x3f\x4d\xfe"
"\x98\xc5\xff\x1d\xf9\x63\x16\xff\x77\xe6\x8f\x59\xfc\xa7\xcd\x1f\xb3\xf8"
"\x4f\x97\x3f\x66\xf1\x9f\x3e\x7f\xcc\xe2\xff\xae\xfc\x31\x8b\xff\x0c\xf9"
"\x63\x16\xff\x11\xf9\x63\x16\xff\x77\xe7\x8f\x59\xfc\x67\xcc\x1f\xb3\xf8"
"\xcf\x94\x3f\x66\xf1\x7f\x4f\xfe\x98\xc5\x7f\xe6\xfc\x31\x8b\xff\x2c\xf9"
"\x63\x16\xff\x59\xf3\xc7\x2c\xfe\xb3\xe5\x8f\x59\xfc\xdf\x9b\x3f\x66\xf1"
"\x9f\x3d\x7f\xcc\xe2\x3f\x47\xfe\x98\xc5\x7f\xce\xfc\x31\x8b\xff\x5c\xf9"
"\x63\x16\xff\xb9\xf3\xc7\x2c\xfe\xf3\xe4\x8f\x59\xfc\xe7\xcd\x1f\xb3\xf8"
"\xcf\x97\x3f\x66\xf1\x9f\x3f\x7f\xcc\xe2\xbf\x40\xfe\x98\xc5\x7f\xc1\xfc"
"\x31\x8b\xff\x42\xf9\x63\x16\xff\x85\xf3\xc7\x2c\xfe\x8b\xe4\x8f\x59\xfc"
"\x17\xcd\x1f\xb3\xf8\x2f\x96\x3f\x66\xf1\x5f\x3c\x7f\xcc\xe2\xbf\x44\xfe"
"\x98\xc5\x7f\xc9\xfc\x31\x8b\xff\x52\xf9\x63\x16\xff\xa5\xf3\xc7\x2c\xfe"
"\xcb\xe4\x8f\x59\xfc\xdf\x97\x3f\x66\xf1\x7f\x7f\xfe\x98\xc5\xff\x03\xf9"
"\x63\x16\xff\x65\xf3\xc7\x2c\xfe\xcb\xe5\x8f\x59\xfc\x97\xcf\x1f\xb3\xf8"
"\xaf\x90\x3f\x66\xf1\x5f\x31\x7f\xcc\xe2\xbf\x52\xfe\x98\xc5\x7f\xe5\xfc"
"\x31\x8b\xff\x2a\xf9\x63\x16\xff\x55\xf3\xc7\x2c\xfe\xab\xe5\x8f\x59\xfc"
"\x57\xcf\x1f\xb3\xf8\xaf\x91\x3f\x66\xf1\x5f\x33\x7f\xcc\xe2\xbf\x56\xfe"
"\x98\xc5\x7f\xed\xfc\x31\x8b\xff\x3a\xf9\x63\x16\xff\x75\xf3\xc7\x2c\xfe"
"\xeb\xe5\x8f\x59\xfc\xd7\xcf\x1f\xb3\xf8\x6f\x90\x3f\x66\xf1\xdf\x30\x7f"
"\xcc\xe2\xbf\x51\xfe\x98\xc5\x7f\xe3\xfc\x31\x8b\xff\x26\xf9\x63\x16\xff"
"\x4d\xf3\xc7\x2c\xfe\x9b\xe5\x8f\x59\xfc\x37\xcf\x1f\xb3\xf8\x6f\x91\x3f"
"\x66\xf1\xdf\x32\x7f\xec\xff\xc7\x1e\x3d\x18\x0a\x62\x00\x50\x00\xab\x8d"
"\x5f\xdb\xb6\xad\x49\x6a\xdb\xb6\x6d\xdb\xb6\x6d\xdb\xb6\xdb\xb3\xad\x05"
"\xde\x04\xf7\x92\x15\xd2\xf2\xbf\xb3\xff\xa8\xe5\x7f\x17\xff\x51\xcb\xff"
"\xae\xfe\xa3\x96\xff\xdd\xfc\x47\x2d\xff\xbb\xfb\x8f\x5a\xfe\xf7\xf0\x1f"
"\xb5\xfc\xef\xe9\x3f\x6a\xf9\xdf\xcb\x7f\xd4\xf2\xbf\xb7\xff\xa8\xe5\x7f"
"\x1f\xff\x51\xcb\xff\xbe\xfe\xa3\x96\xff\xfd\xfc\x47\x2d\xff\xfb\xfb\x8f"
"\x5a\xfe\x0f\xf0\x1f\xb5\xfc\x1f\xe8\x3f\x6a\xf9\x3f\xc8\x7f\xd4\xf2\x7f"
"\xb0\xff\xa8\xe5\xff\x10\xff\x51\xcb\xff\xa1\xfe\xa3\x96\xff\xc3\xfc\x47"
"\x2d\xff\x87\xfb\x8f\x5a\xfe\x8f\xf0\x1f\xb5\xfc\x1f\xe9\x3f\x6a\xf9\x3f"
"\xca\x7f\xd4\xf2\x7f\xb4\xff\xa8\xe5\xff\x18\xff\x51\xcb\xff\xb1\xfe\xa3"
"\x96\xff\xe3\xfc\x47\x2d\xff\xc7\xfb\x8f\x5a\xfe\x4f\xf0\x1f\xb5\xfc\x9f"
"\xe8\x3f\x6a\xf9\x3f\xc9\x7f\xd4\xf2\x7f\xb2\xff\xa8\xe5\xff\x14\xff\x51"
"\xcb\xff\xa9\xfe\xa3\x96\xff\xd3\xfc\x47\x2d\xff\xa7\xfb\x8f\x5a\xfe\xcf"
"\xf0\x1f\xb5\xfc\x9f\xe9\x3f\x6a\xf9\x3f\xcb\x7f\xd4\xf2\x7f\xb6\xff\xa8"
"\xe5\xff\x1c\xff\x51\xcb\xff\xb9\xfe\xa3\x96\xff\xf3\xfc\x47\x2d\xff\xe7"
"\xfb\x8f\x5a\xfe\x2f\xf0\x1f\xb5\xfc\x5f\xe8\x3f\x6a\xf9\xbf\xc8\x7f\xd4"
"\xf2\x7f\xb1\xff\xa8\xe5\xff\x12\xff\x51\xcb\xff\xa5\xfe\xa3\x96\xff\xcb"
"\xfc\x47\x2d\xff\x97\xfb\x8f\x5a\xfe\xaf\xf0\x1f\xb5\xfc\x5f\xe9\x3f\x6a"
"\xf9\xbf\xca\x7f\xd4\xf2\x7f\xb5\xff\xa8\xe5\xff\x1a\xff\x51\xcb\xff\xb5"
"\xfe\xa3\x96\xff\xeb\xfc\x47\x2d\xff\xd7\xfb\x8f\x5a\xfe\x6f\xf0\x1f\xb5"
"\xfc\xdf\xe8\x3f\x6a\xf9\xbf\xc9\x7f\xd4\xf2\x7f\xb3\xff\xa8\xe5\xff\x16"
"\xff\x51\xcb\xff\xad\xfe\xa3\x96\xff\xdb\xfc\x47\x2d\xff\xb7\xfb\x8f\x5a"
"\xfe\xef\xf0\x1f\xb5\xfc\xdf\xe9\x3f\x6a\xf9\xbf\xcb\x7f\xd4\xf2\x7f\xb7"
"\xff\xa8\xe5\xff\x1e\xff\x51\xcb\xff\xbd\xfe\xa3\x96\xff\xfb\xfc\x47\x2d"
"\xff\xf7\xfb\x8f\x5a\xfe\x1f\xf0\x1f\xb5\xfc\x3f\xe8\x3f\x6a\xf9\x7f\xc8"
"\x7f\xd4\xf2\xff\xb0\xff\xa8\xe5\xff\x11\xff\x51\xcb\xff\xa3\xfe\xa3\x96"
"\xff\xc7\xfc\x47\x2d\xff\x8f\xfb\x8f\x5a\xfe\x9f\xf0\x1f\xb5\xfc\x3f\xe9"
"\x3f\x6a\xf9\x7f\xca\x7f\xd4\xf2\xff\xb4\xff\xa8\xe5\xff\x19\xff\x51\xcb"
"\xff\xb3\xfe\xa3\x96\xff\xe7\xfc\x47\x2d\xff\xcf\xfb\x8f\x5a\xfe\x5f\xf0"
"\x1f\xb5\xfc\xbf\xe8\x3f\x6a\xf9\x7f\xc9\x7f\xd4\xf2\xff\xb2\xff\xa8\xe5"
"\xff\x15\xff\x51\xcb\xff\xab\xfe\xa3\x96\xff\xd7\xfc\x47\x2d\xff\xaf\xfb"
"\x8f\x5a\xfe\xdf\xf0\x1f\xb5\xfc\xbf\xe9\x3f\x6a\xf9\x7f\xcb\x7f\xd4\xf2"
"\xff\xb6\xff\xa8\xe5\xff\x1d\xff\x51\xcb\xff\xbb\xfe\xa3\x96\xff\xf7\xfc"
"\x47\x2d\xff\xef\xfb\x8f\x5a\xfe\x3f\xf0\x1f\xb5\xfc\x7f\xe8\x3f\x6a\xf9"
"\xff\xc8\x7f\xd4\xf2\xff\xb1\xff\xa8\xe5\xff\x13\xff\x51\xcb\xff\xa7\xfe"
"\xa3\x96\xff\xcf\xfc\x47\x2d\xff\x9f\xfb\x8f\x5a\xfe\xbf\xf0\x1f\xb5\xfc"
"\x7f\xe9\x3f\x6a\xf9\xff\xca\x7f\xd4\xf2\xff\xb5\xff\xa8\xe5\xff\x1b\xff"
"\x51\xcb\xff\xb7\xfe\xa3\x96\xff\xef\xfc\x47\x2d\xff\xdf\xfb\x8f\x5a\xfe"
"\x7f\xf0\x1f\xb5\xfc\xff\xe8\x3f\x6a\xf9\xff\xc9\x7f\xd4\xf2\xff\xb3\xff"
"\xa8\xe5\xff\x17\xff\x51\xcb\xff\xaf\xfe\xa3\x96\xff\xdf\xfc\x47\x2d\xff"
"\xbf\xfb\x8f\x5a\xfe\xff\xf0\x1f\xb5\xfc\xff\xe9\x3f\x6a\xf9\xff\xcb\x7f"
"\xd4\xf2\xff\xb7\xff\xa8\xe5\xff\x1f\xff\x51\xcb\xff\xbf\xfe\xa3\x96\xff"
"\xff\xfc\x47\x2d\xff\xff\xfb\x8f\x5a\xfe\x07\xf9\x8f\x5a\xfe\x07\xfb\x8f"
"\x5a\xfe\x87\xf8\x8f\x5a\xfe\x87\xfa\x8f\x5a\xfe\x87\xf9\x8f\x5a\xfe\x87"
"\xfb\x8f\x5a\xfe\x47\xf8\x8f\x5a\xfe\x47\xfa\x8f\x5a\xfe\x47\xf9\x8f\x5a"
"\xfe\x47\xfb\x8f\x5a\xfe\xc7\xf8\x8f\x5a\xfe\xc7\xfa\x8f\x5a\xfe\xc7\xf9"
"\x8f\x5a\xfe\xc7\xfb\x8f\x5a\xfe\x27\xf8\x8f\x5a\xfe\x27\xfa\x8f\x5a\xfe"
"\x27\xf9\x8f\x5a\xfe\x27\xfb\x8f\x5a\xfe\xa7\xf8\x8f\x5a\xfe\xa7\xfa\x8f"
"\x5a\xfe\xa7\xf9\x8f\x5a\xfe\xa7\xfb\x8f\x4a\xfe\x07\x66\xf1\x1f\xb5\xfc"
"\xcf\xea\x3f\x6a\xf9\x9f\xcd\x7f\xd4\xf2\x3f\xbb\xff\xa8\xe5\x7f\x0e\xff"
"\x51\xcb\xff\x9c\xfe\xa3\x96\xff\xb9\xfc\x47\x2d\xff\x73\xfb\x8f\x5a\xfe"
"\xe7\xf1\x1f\xb5\xfc\xcf\xeb\x3f\x6a\xf9\x9f\xcf\x7f\xd4\xf2\x3f\xbf\xff"
"\xa8\xe5\x7f\x01\xff\x51\xcb\xff\x82\xfe\xa3\x96\xff\x85\xfc\x47\x2d\xff"
"\x0b\xfb\x8f\x5a\xfe\x07\xfc\x47\x2d\xff\x8b\xf8\x8f\x5a\xfe\x17\xf5\x1f"
"\xb5\xfc\x2f\xe6\x3f\x6a\xf9\x5f\xdc\x7f\xd4\xf2\xbf\x84\xff\xa8\xe5\x7f"
"\x49\xff\x51\xcb\xff\x52\xfe\xa3\x96\xff\xa5\xfd\x47\x2d\xff\xcb\xf8\x8f"
"\x5a\xfe\x97\xf5\x1f\xb5\xfc\x2f\xe7\x3f\x6a\xf9\x5f\xde\x7f\xd4\xf2\xbf"
"\x82\xff\xa8\xe5\x7f\x45\xff\x51\xcb\xff\x4a\xfe\xa3\x96\xff\x95\xfd\x47"
"\x2d\xff\xab\xf8\x8f\x5a\xfe\x57\xf5\x1f\xb5\xfc\xaf\xe6\x3f\x6a\xf9\x5f"
"\xdd\x7f\xd4\xf2\xbf\x86\xff\xa8\xe5\x7f\x4d\xff\x51\xcb\xff\x5a\xfe\xa3"
"\x96\xff\xb5\xfd\x47\x2d\xff\xeb\xf8\x8f\x5a\xfe\xd7\xf5\x1f\xb5\xfc\xaf"
"\xe7\x3f\x6a\xf9\x5f\xdf\x7f\xd4\xf2\xbf\x81\xff\xa8\xe5\x7f\x43\xff\x51"
"\xcb\xff\x46\xfe\xa3\x96\xff\x8d\xfd\x47\x2d\xff\x9b\xf8\x8f\x5a\xfe\x37"
"\xf5\x1f\xb5\xfc\x6f\xe6\x3f\x6a\xf9\xdf\xdc\x7f\xd4\xf2\xbf\x85\xff\xa8"
"\xe5\x7f\x4b\xff\x51\xcb\xff\x56\xfe\xa3\x96\xff\xad\xfd\x47\x2d\xff\xdb"
"\xf8\x8f\x5a\xfe\xb7\xf5\x1f\xb5\xfc\x6f\xe7\x3f\x6a\xf9\xdf\xde\x7f\xd4"
"\xf2\xbf\x83\xff\xa8\xe5\x7f\x47\xff\x51\xcb\xff\x4e\xfe\xa3\x99\xee\x1f"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb0"
"\x73\xff\x31\x5e\xd7\x05\x1c\xc7\x3f\x77\x70\x77\x08\x05\x22\x46\x48\xbd"
"\x81\xa0\x02\xc1\xe3\xe4\x8e\x5f\x82\x8a\x56\x34\xcf\xc6\x59\x61\xeb\xd7"
"\x24\x98\x9c\x02\x1d\xa9\x78\x33\x40\x16\x94\x5a\xd4\xdc\xd2\xc9\x96\xb5"
"\x48\xfd\x83\xb4\x56\x6b\x6c\xc6\x5a\x4d\xca\x6c\x8b\xd9\x8a\x9a\xf6\xc3"
"\xb9\x05\x25\xfd\x18\xeb\xd4\x8a\x6c\x91\x75\xee\x0b\xdf\xef\x79\xf7\xf5"
"\xb8\xf9\x7d\x9f\xef\x37\x7f\xf0\x78\xfc\x71\xf7\xfd\x7c\x8e\xd7\xe7\x80"
"\xed\x79\x9f\xcf\x77\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\xe0\xb5\xd3\xde\x71\x79\xcf\x88\xba\x01\xa7\x46\xf4\x3f"
"\x08\x3f\xef\x3c\xf1\x79\xfe\xbf\x3f\xb4\x6e\xcf\x9e\x7d\xe3\x2b\x9f\xcb"
"\x5f\x7e\xcf\x20\x97\xac\xef\x7f\xd0\xdb\xdb\xdb\xbb\x6d\xc2\x2f\x6e\x29"
"\x1f\x36\x15\x45\x51\xfa\x6e\x97\x95\x8f\x47\x55\x8f\x4b\xd7\xdf\xbe\x7f"
"\xea\xd9\xe5\xef\x5e\xdc\x77\xf7\x6d\xb3\x97\x6e\x59\xfe\xd8\xee\x8d\x3d"
"\x63\x7e\xba\x60\xfb\x91\x86\x13\x67\x1b\x8a\xd5\xd7\xad\xef\xea\xbc\xb0"
"\xbe\x28\xc2\x88\x86\x62\x73\xe9\x60\x5e\x5d\x51\x84\xc6\x86\xe2\xae\xd2"
"\x41\x6b\xe9\xa0\xa9\xa1\x78\xa8\x74\xd0\x76\xe2\xe0\xac\xe2\x47\xa5\x83"
"\xb9\xd7\xde\xd0\xb5\xb6\x74\xe2\x15\xdf\x1a\xce\x38\xed\x1d\x3b\x8a\x11"
"\x03\x8a\x2d\x06\xfc\x34\xe8\xdf\xff\xf6\xfd\x97\xbe\xb7\xf2\x79\x88\x4b"
"\x56\xae\x36\xb2\x28\xf7\x7f\xc5\xf7\x9f\x68\xaa\xfa\x5a\xc5\x29\xfa\xaf"
"\x5c\x3f\xd4\x55\xf7\x5f\xf3\x1f\x10\x38\xa5\xda\xfa\x5f\xf1\x7c\xe5\xf3"
"\x10\x97\x7c\xc5\xfd\xbf\xf5\x6f\x1f\x3b\x3c\xd8\xd7\x4e\xdd\x7f\xe5\xfa"
"\xa1\x5e\xff\x90\xce\x20\xcf\xff\x03\x1a\xad\x7e\xee\xaf\x7a\xfe\x9f\x36"
"\xc8\x25\xfb\xf6\xcd\x2d\x8f\x8f\x2a\xf5\xbf\x64\xf1\x7d\x1b\xca\xa7\x46"
"\xbe\x9a\xe7\xff\x97\xaf\x1f\x46\x54\xf7\x5f\x3f\xe0\xf9\xbf\xf4\x1c\x3f"
"\xb2\xf2\xfc\xdf\x54\x14\xa1\x61\x98\x7f\x1d\x70\x46\x69\xef\xf8\x74\xcf"
"\x50\xf7\xff\xa1\xfb\x1f\x39\xb9\x6a\x53\xd7\xbf\xff\xad\xc7\x0e\xad\x2a"
"\xf5\xdf\xbc\xe1\x93\xcf\x95\x4f\x35\xd4\xd8\xff\xc8\x21\xee\xff\x75\x4f"
"\x56\xfd\x5e\x81\xda\xb4\x77\x3c\xd0\x5b\x75\xff\xaf\xa1\xff\x62\xe6\x20"
"\x97\xec\xeb\xbf\xe7\xd6\xa7\x8f\x97\xfa\xff\xd3\xfe\x67\xce\xef\xf7\xb5"
"\x5a\xfa\x6f\xa8\xee\xbf\xa5\x7b\xe3\x8d\x2d\x37\x6f\xd9\xda\xbc\x7e\xe3"
"\x9a\xeb\x3b\xaf\xef\xfc\x44\xeb\xfc\x85\x8b\x16\xb6\x2e\xbe\xa8\x6d\x41"
"\xcb\x89\x47\x82\x93\x1f\x87\xf9\xb7\x02\x67\x86\xe1\xdd\xff\x8b\xd1\x55"
"\x9b\xba\xa2\xe8\xec\xdb\x5f\xf0\xdc\xca\x9d\xa5\xfe\xa7\xaf\x5f\xf9\xd9"
"\xf2\xa9\x51\x35\xf6\xdf\x38\xe4\xfd\x7f\x9a\xfb\x3f\x0c\x6a\x7a\x7d\xd1"
"\xd8\x58\x6c\x5e\xd3\xdd\xbd\x69\xde\xc9\x8f\x95\xc3\xd6\x93\x1f\x4f\xfe"
"\xb2\x41\xfa\xaf\xe1\xfd\xff\x8c\x59\xe5\x5f\x56\x79\xdf\x5d\x57\x14\x93"
"\xfa\xf6\x73\x6e\x5c\xb0\xba\xd4\xff\x83\xc7\x3e\xf7\x78\xf9\x54\x63\x8d"
"\xfd\x37\x0d\xd9\xff\x65\x85\xf7\xfb\x30\x0c\xc3\xbc\xff\xaf\xad\xda\x0c"
"\xe8\xff\xe8\x8a\xb1\xcf\x96\xfa\xff\xd2\xc3\xb3\xba\xcb\xa7\x6a\x7d\xff"
"\x3f\x6a\xc8\xfe\x0f\xbb\xff\xc3\x70\xb4\x77\x54\xfd\x0b\x3f\xaf\xb1\x52"
"\xff\x97\x8c\xdd\xfd\xf7\xb8\x75\x38\xcb\x3f\xff\x83\x74\x72\xf4\x3f\xfe"
"\xf8\x9d\x57\xc5\xad\xc3\x68\xfd\x43\x3a\x39\xfa\xff\xc8\xed\x33\x9f\x8a"
"\x5b\x87\x31\xfa\x87\x74\x72\xf4\xff\xbd\xb5\xef\x5c\x18\xb7\x0e\xaf\xd3"
"\x3f\xa4\x93\xa3\xff\x7f\x4e\xfe\xeb\xfd\x71\xeb\xf0\x7a\xfd\x43\x3a\x39"
"\xfa\x3f\xf4\xec\x7f\xa6\xc4\xad\xc3\x58\xfd\x43\x3a\x39\xfa\xdf\x75\xd7"
"\xfb\x77\xc6\xad\xc3\x38\xfd\x43\x3a\x39\xfa\x9f\xb1\xed\xc8\x1d\x71\xeb"
"\x70\xb6\xfe\x21\x9d\x1c\xfd\xaf\xab\xbf\x6a\x42\xdc\x3a\x8c\xd7\x3f\xa4"
"\x93\xa3\xff\x77\xbd\xb0\xea\xdb\x71\xeb\x70\x8e\xfe\x21\x9d\x1c\xfd\x8f"
"\xdb\xf9\xaf\xa5\x71\xeb\x30\x41\xff\x90\x4e\x8e\xfe\x7b\xd6\xdd\xfd\x64"
"\xdc\x3a\x9c\xab\x7f\x48\x27\x47\xff\x5f\x9f\xb8\xe4\x1d\x71\xeb\xf0\x06"
"\xfd\x43\x3a\x39\xfa\xff\xc2\x1f\xe7\xbc\x18\xb7\x0e\x13\xf5\x0f\xe9\xe4"
"\xe8\xff\xd1\xaf\xee\xd8\x10\xb7\x0e\x6f\xd4\x3f\xa4\x93\xa3\xff\x1f\x7e"
"\x60\xec\x60\xff\x9f\xb0\x57\x21\x4c\xd2\x3f\xa4\x93\xa3\xff\x63\x73\xf6"
"\xec\x8d\x5b\x87\xf3\xf4\x0f\xe9\xe4\xe8\xff\x77\x87\x1e\x1e\x17\xb7\x0e"
"\x93\xf5\x0f\xe9\xe4\xe8\xff\x9e\x07\xa6\x7e\x39\x6e\x1d\xde\xa4\x7f\x48"
"\x27\x47\xff\x37\x5d\x7e\xeb\x2d\x71\xeb\xf0\x66\xfd\x43\x3a\x39\xfa\x5f"
"\xb2\xec\x97\x87\xe3\xd6\x21\xe8\x1f\xd2\xc9\xd1\xff\xc4\x9f\x3d\xba\x2a"
"\x6e\x1d\xa6\xe8\x1f\xd2\xc9\xd1\xff\x35\xdf\xdd\x70\x20\x6e\x1d\xa6\xea"
"\x1f\xd2\xc9\xd1\xff\xe6\x73\xbe\xb5\x3c\x6e\x1d\xa6\xe9\x1f\xd2\xc9\xd1"
"\x7f\x5b\x57\xd3\x13\x71\xeb\xf0\x16\xfd\x43\x3a\x39\xfa\x9f\x7a\xef\xc4"
"\x8d\x71\xeb\x30\x5d\xff\x90\x4e\x8e\xfe\xaf\xfe\xf3\x23\xff\x8d\x5b\x87"
"\x19\xfa\x87\x74\x72\xf4\xbf\xaf\xf1\xa9\x73\xe3\xd6\xe1\xad\xfa\x87\x74"
"\x72\xf4\xff\xbf\xcd\x9b\x3e\x13\xb7\x0e\x6f\xd3\x3f\xa4\x93\xa3\xff\x5f"
"\xdd\x79\xed\xc5\x71\xeb\xf0\x76\xfd\x43\x3a\x39\xfa\xff\xca\x3f\x0e\x7c"
"\x33\x6e\x1d\x66\xea\x1f\xd2\xc9\xd1\xff\x91\xa5\xef\xfe\x4b\xdc\x3a\xcc"
"\xd2\x3f\xa4\x93\xa3\xff\xef\x2c\xef\xb9\x29\x6e\x1d\xce\xd7\x3f\xa4\x93"
"\xa3\xff\xdb\xf6\xbe\x78\x30\x6e\x1d\x66\xeb\x1f\xd2\xc9\xd1\xff\x81\x83"
"\x1f\xfc\x70\xdc\x3a\xcc\xd1\x3f\xa4\x93\xa3\xff\xd9\x2d\x6d\xfb\xe2\xd6"
"\xe1\x02\xfd\x43\x3a\x39\xfa\x5f\xf3\xbe\x7b\xa7\xc5\xad\x43\xb3\xfe\x21"
"\x9d\x1c\xfd\xaf\xd8\xf3\xf9\xaf\xc5\xad\xc3\x5c\xfd\x43\x3a\x39\xfa\x6f"
"\x7c\x7a\xfa\xa8\xb8\x75\x68\xd1\x3f\xa4\x93\xa3\xff\xbd\x8b\x76\x35\xc4"
"\xad\xc3\x85\xfa\x87\x74\x72\xf4\x7f\xbc\x7d\xd9\x3d\x71\xeb\x30\x4f\xff"
"\x90\x4e\x8e\xfe\x7f\xf3\xc8\xdc\xe6\xb8\x75\x68\xd5\x3f\xa4\x93\xa3\xff"
"\xdd\x8f\xdd\xf1\x83\xb8\x75\x68\xd3\x3f\xa4\x93\xa3\xff\xed\x33\xfe\x70"
"\x75\xdc\x3a\xcc\xd7\x3f\xa4\x93\xa3\xff\xf9\xd7\x5c\xf9\xe3\xb8\x75\x58"
"\xa0\x7f\x48\x27\x47\xff\x93\xbe\xf1\xd1\x6d\x71\xeb\xb0\x50\xff\x90\x4e"
"\x8e\xfe\x57\xfe\xf6\xf9\xa3\x71\xeb\xb0\x48\xff\x90\x4e\x8e\xfe\x9b\xa7"
"\x7c\xea\xc1\xb8\x75\x58\xac\x7f\x48\x27\x47\xff\xd7\xad\xfe\xf5\xbc\xb8"
"\x75\xb8\x48\xff\x90\x4e\x8e\xfe\xaf\xdc\xf5\x93\x2f\xc6\xad\xc3\x12\xfd"
"\x43\x3a\x39\xfa\xaf\x3b\x7a\xc3\x79\x71\xeb\xb0\x54\xff\x90\x4e\x8e\xfe"
"\x9f\x19\x3d\xe6\x85\xb8\x75\xb8\x58\xff\x90\x4e\x8e\xfe\x1f\xea\xbe\x7f"
"\x75\xdc\x3a\x5c\xa2\x7f\x48\x27\x47\xff\xb7\xef\xd8\xfb\xfb\xb8\x75\xb8"
"\x54\xff\x90\x4e\x8e\xfe\x0f\xfe\x7f\xf2\x15\x71\xeb\xb0\x4c\xff\x90\xce"
"\xcd\x5b\xb6\x7e\x7c\x4d\x57\x57\xe7\x26\x2f\xbc\xf0\xc2\x8b\xbe\x17\xa7"
"\xfb\x27\x13\x90\xda\xcb\xd1\x9f\xee\xdf\x09\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x70\x2a\x39\xfe\x73\xa2\xd3\xfd\x67\x04\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x25\x76\xe0\x40\x00\x00"
"\x00\x00\x00\xc8\xff\xb5\x11\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xb0"
"\x03\x07\x24\x00\x00\x00\x00\x82\xfe\xbf\x6e\x47\xa0\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\x00"
"\x00\x00\xff\xff\x4c\x7c\x1e\xed",
38492));
NONFAILING(syz_mount_image(/*fs=*/0x200000009680, /*dir=*/0x2000000096c0,
/*flags=*/0, /*opts=*/0x200000009700, /*chdir=*/1,
/*size=*/0x965c, /*img=*/0x200000009740));
// openat arguments: [
// fd: fd_dir (resource)
// file: ptr[in, buffer] {
// buffer: {2e 2f 66 69 6c 65 31 00} (length 0x8)
// }
// flags: open_flags = 0x101042 (4 bytes)
// mode: open_mode = 0x1c6 (2 bytes)
// ]
// returns fd
NONFAILING(memcpy((void*)0x200000000040, "./file1\000", 8));
res = syscall(__NR_openat, /*fd=*/0xffffff9c, /*file=*/0x200000000040ul,
/*flags=O_SYNC|O_CREAT|O_RDWR*/ 0x101042,
/*mode=S_IWOTH|S_IROTH|S_IXUSR|S_IWUSR|S_IRUSR*/ 0x1c6);
if (res != -1)
r[0] = res;
// ioctl$XFS_IOC_ERROR_INJECTION arguments: [
// fd: fd (resource)
// cmd: const = 0x40085874 (4 bytes)
// arg: ptr[in, xfs_error_injection] {
// xfs_error_injection {
// fd: int32 = 0x5 (4 bytes)
// errtag: int32 = 0x9 (4 bytes)
// }
// }
// ]
NONFAILING(*(uint32_t*)0x200000000000 = 5);
NONFAILING(*(uint32_t*)0x200000000004 = 9);
syscall(__NR_ioctl, /*fd=*/r[0], /*cmd=*/0x40085874,
/*arg=*/0x200000000000ul);
// openat arguments: [
// fd: fd_dir (resource)
// file: ptr[in, buffer] {
// buffer: {2e 2f 66 69 6c 65 31 00} (length 0x8)
// }
// flags: open_flags = 0x42 (4 bytes)
// mode: open_mode = 0x1ff (2 bytes)
// ]
// returns fd
NONFAILING(memcpy((void*)0x200000000040, "./file1\000", 8));
res = syscall(
__NR_openat, /*fd=*/0xffffff9c, /*file=*/0x200000000040ul,
/*flags=O_CREAT|O_RDWR*/ 0x42,
/*mode=S_IXOTH|S_IWOTH|S_IROTH|S_IXGRP|S_IWGRP|S_IRGRP|S_IXUSR|S_IWUSR|0x100*/
0x1ff);
if (res != -1)
r[1] = res;
// ioctl$XFS_IOC_SCRUBV_METADATA arguments: [
// fd: fd (resource)
// cmd: const = 0xc0285840 (4 bytes)
// arg: ptr[inout, xfs_scrub_vec_head] {
// xfs_scrub_vec_head {
// svh_ino: int64 = 0x0 (8 bytes)
// svh_gen: int32 = 0x0 (4 bytes)
// svh_agno: int32 = 0x0 (4 bytes)
// svh_flags: xfs_scrub_vec_head_flags = 0x0 (4 bytes)
// svh_rest_us: int16 = 0xfff9 (2 bytes)
// svh_nr: len = 0x1 (2 bytes)
// svh_reserved: const = 0x0 (8 bytes)
// svh_vectors: ptr[inout, array[xfs_scrub_vec]] {
// array[xfs_scrub_vec] {
// xfs_scrub_vec {
// sv_type: xfs_scrub_type = 0x5 (4 bytes)
// sv_flags: xfs_scrub_flags = 0x101 (4 bytes)
// sv_ret: int32 = 0xfffffff1 (4 bytes)
// sv_reserved: const = 0x0 (4 bytes)
// }
// }
// }
// }
// }
// ]
NONFAILING(*(uint64_t*)0x2000000000c0 = 0);
NONFAILING(*(uint32_t*)0x2000000000c8 = 0);
NONFAILING(*(uint32_t*)0x2000000000cc = 0);
NONFAILING(*(uint32_t*)0x2000000000d0 = 0);
NONFAILING(*(uint16_t*)0x2000000000d4 = 0xfff9);
NONFAILING(*(uint16_t*)0x2000000000d6 = 1);
NONFAILING(*(uint64_t*)0x2000000000d8 = 0);
NONFAILING(*(uint64_t*)0x2000000000e0 = 0x200000002700);
NONFAILING(*(uint32_t*)0x200000002700 = 5);
NONFAILING(*(uint32_t*)0x200000002704 = 0x101);
NONFAILING(*(uint32_t*)0x200000002708 = 0xfffffff1);
NONFAILING(*(uint32_t*)0x20000000270c = 0);
syscall(__NR_ioctl, /*fd=*/r[1], /*cmd=*/0xc0285840,
/*arg=*/0x2000000000c0ul);
// creat arguments: [
// file: nil
// mode: open_mode = 0x30 (8 bytes)
// ]
// returns fd
syscall(__NR_creat, /*file=*/0ul, /*mode=S_IWGRP|S_IRGRP*/ 0x30ul);
}
int main(void)
{
syscall(__NR_mmap, /*addr=*/0x1ffffffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,
/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul,
/*fd=*/(intptr_t)-1, /*offset=*/0ul);
syscall(__NR_mmap, /*addr=*/0x200000000000ul, /*len=*/0x1000000ul,
/*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul,
/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul,
/*fd=*/(intptr_t)-1, /*offset=*/0ul);
syscall(__NR_mmap, /*addr=*/0x200001000000ul, /*len=*/0x1000ul, /*prot=*/0ul,
/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul,
/*fd=*/(intptr_t)-1, /*offset=*/0ul);
setup_sysctl();
const char* reason;
(void)reason;
if ((reason = setup_802154()))
printf("the reproducer may not work as expected: 802154 injection setup "
"failed: %s\n",
reason);
install_segv_handler();
use_temporary_dir();
loop();
return 0;
}
[ 0.000000][ T0] Linux version 6.19.0-rc6 (root@ustb520lab-MS-7E07) (clang version 19.1.7 (/home/runner/work/llvm-project/llvm-project/clang cd708029e0b2869e80abe31ddb175f7c35361f90), GNU ld (GNU Binutils for Ubuntu) 2.38) #31 SMP PREEMPT_DYNAMIC Tue Jan 20 17:49:57 CST 2026
[ 0.000000][ T0] Command line: root=/dev/sda console=ttyS0
[ 0.000000][ T0] KERNEL supported cpus:
[ 0.000000][ T0] Intel GenuineIntel
[ 0.000000][ T0] AMD AuthenticAMD
[ 0.000000][ T0] BIOS-provided physical RAM map:
[ 0.000000][ T0] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[ 0.000000][ T0] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[ 0.000000][ T0] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000][ T0] BIOS-e820: [mem 0x0000000000100000-0x000000007ffdffff] usable
[ 0.000000][ T0] BIOS-e820: [mem 0x000000007ffe0000-0x000000007fffffff] reserved
[ 0.000000][ T0] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
[ 0.000000][ T0] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[ 0.000000][ T0] printk: legacy bootconsole [earlyser0] enabled
[ 0.000000][ T0] ERROR: earlyprintk= earlyser already used
[ 0.000000][ T0] ERROR: earlyprintk= earlyser already used
[ 0.000000][ T0] Hash pointers mode set to never.
[ 0.000000][ T0] Malformed early option 'vsyscall'
[ 0.000000][ T0] nopcid: PCID feature disabled
[ 0.000000][ T0] NX (Execute Disable) protection: active
[ 0.000000][ T0] APIC: Static calls initialized
[ 0.000000][ T0] SMBIOS 2.8 present.
[ 0.000000][ T0] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
[ 0.000000][ T0] DMI: Memory slots populated: 1/1
[ 0.000000][ T0] Hypervisor detected: KVM
[ 0.000000][ T0] last_pfn = 0x7ffe0 max_arch_pfn = 0x400000000
[ 0.000000][ T0] kvm-clock: Using msrs 4b564d01 and 4b564d00
[ 0.000001][ T0] kvm-clock: using sched offset of 894053101 cycles
[ 0.000371][ T0] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[ 0.001462][ T0] tsc: Detected 3494.400 MHz processor
[ 0.004804][ T0] last_pfn = 0x7ffe0 max_arch_pfn = 0x400000000
[ 0.005242][ T0] MTRR map: 4 entries (3 fixed + 1 variable; max 19), built from 8 variable MTRRs
[ 0.005804][ T0] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT
[ 0.008226][ T0] found SMP MP-table at [mem 0x000f5b90-0x000f5b9f]
[ 0.008656][ T0] Using GB pages for direct mapping
[ 0.009818][ T0] ACPI: Early table checksum verification disabled
[ 0.010220][ T0] ACPI: RSDP 0x00000000000F59D0 000014 (v00 BOCHS )
[ 0.010633][ T0] ACPI: RSDT 0x000000007FFE1967 000034 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.011217][ T0] ACPI: FACP 0x000000007FFE1813 000074 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.011801][ T0] ACPI: DSDT 0x000000007FFE0040 0017D3 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.012381][ T0] ACPI: FACS 0x000000007FFE0000 000040
[ 0.012718][ T0] ACPI: APIC 0x000000007FFE1887 000080 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.013291][ T0] ACPI: HPET 0x000000007FFE1907 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.013874][ T0] ACPI: WAET 0x000000007FFE193F 000028 (v01 BOCHS BXPC 00000001 BXPC 00000001)
[ 0.014462][ T0] ACPI: Reserving FACP table memory at [mem 0x7ffe1813-0x7ffe1886]
[ 0.014960][ T0] ACPI: Reserving DSDT table memory at [mem 0x7ffe0040-0x7ffe1812]
[ 0.015444][ T0] ACPI: Reserving FACS table memory at [mem 0x7ffe0000-0x7ffe003f]
[ 0.015946][ T0] ACPI: Reserving APIC table memory at [mem 0x7ffe1887-0x7ffe1906]
[ 0.016433][ T0] ACPI: Reserving HPET table memory at [mem 0x7ffe1907-0x7ffe193e]
[ 0.016929][ T0] ACPI: Reserving WAET table memory at [mem 0x7ffe193f-0x7ffe1966]
[ 0.017589][ T0] No NUMA configuration found
[ 0.017871][ T0] Faking a node at [mem 0x0000000000000000-0x000000007ffdffff]
[ 0.018328][ T0] Faking node 0 at [mem 0x0000000000001000-0x0000000040000fff] (1024MB)
[ 0.018838][ T0] Faking node 1 at [mem 0x0000000040001000-0x000000007ffdffff] (1023MB)
[ 0.019365][ T0] NODE_DATA(0) allocated [mem 0x3fffb400-0x40000fff]
[ 0.020078][ T0] NODE_DATA(1) allocated [mem 0x7ffd9400-0x7ffdefff]
[ 0.024722][ T0] Zone ranges:
[ 0.025001][ T0] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.025445][ T0] DMA32 [mem 0x0000000001000000-0x000000007ffdffff]
[ 0.025914][ T0] Normal empty
[ 0.026146][ T0] Device empty
[ 0.026378][ T0] Movable zone start for each node
[ 0.026710][ T0] Early memory node ranges
[ 0.027003][ T0] node 0: [mem 0x0000000000001000-0x000000000009efff]
[ 0.027483][ T0] node 0: [mem 0x0000000000100000-0x0000000040000fff]
[ 0.027945][ T0] node 1: [mem 0x0000000040001000-0x000000007ffdffff]
[ 0.028389][ T0] Initmem setup node 0 [mem 0x0000000000001000-0x0000000040000fff]
[ 0.028901][ T0] Initmem setup node 1 [mem 0x0000000040001000-0x000000007ffdffff]
[ 0.029417][ T0] On node 0, zone DMA: 1 pages in unavailable ranges
[ 0.029966][ T0] On node 0, zone DMA: 97 pages in unavailable ranges
[ 0.043652][ T0] On node 1, zone DMA32: 32 pages in unavailable ranges
[ 0.080762][ T0] KernelAddressSanitizer initialized (generic)
[ 0.081407][ T0] ACPI: PM-Timer IO Port: 0x608
[ 0.081724][ T0] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
[ 0.082161][ T0] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23
[ 0.082638][ T0] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.083074][ T0] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[ 0.083524][ T0] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.083975][ T0] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[ 0.084432][ T0] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[ 0.084894][ T0] ACPI: Using ACPI (MADT) for SMP configuration information
[ 0.085330][ T0] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[ 0.085696][ T0] TSC deadline timer available
[ 0.085982][ T0] CPU topo: Max. logical packages: 1
[ 0.086306][ T0] CPU topo: Max. logical dies: 1
[ 0.086634][ T0] CPU topo: Max. dies per package: 1
[ 0.086963][ T0] CPU topo: Max. threads per core: 1
[ 0.087296][ T0] CPU topo: Num. cores per package: 2
[ 0.087639][ T0] CPU topo: Num. threads per package: 2
[ 0.087979][ T0] CPU topo: Allowing 2 present CPUs plus 0 hotplug CPUs
[ 0.088422][ T0] kvm-guest: APIC: eoi() replaced with kvm_guest_apic_eoi_write()
[ 0.088913][ T0] kvm-guest: KVM setup pv remote TLB flush
[ 0.089262][ T0] kvm-guest: setup PV sched yield
[ 0.089583][ T0] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.090099][ T0] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x000fffff]
[ 0.090612][ T0] [mem 0x80000000-0xfeffbfff] available for PCI devices
[ 0.091033][ T0] Booting paravirtualized kernel on KVM
[ 0.091367][ T0] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.141458][ T0] setup_percpu: NR_CPUS:8 nr_cpumask_bits:2 nr_cpu_ids:2 nr_node_ids:2
[ 0.142482][ T0] percpu: Embedded 70 pages/cpu s248840 r8192 d29688 u2097152
[ 0.143046][ T0] kvm-guest: PV spinlocks enabled
[ 0.143351][ T0] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.143854][ T0] Kernel command line: earlyprintk=serial net.ifnames=0 sysctl.kernel.hung_task_all_cpu_backtrace=1 ima_policy=tcb nf-conntrack-ftp.ports=20000 nf-conntrack-tftp.ports=20000 nf-conntrack-sip.ports=20000 nf-conntrack-irc.ports=20000 nf-conntrack-sane.ports=20000 binder.debug_mask=0 rcupdate.rcu_expedited=1 rcupdate.rcu_cpu_stall_cputime=1 no_hash_pointers page_owner=on sysctl.vm.nr_hugepages=4 sysctl.vm.nr_overcommit_hugepages=4 secretmem.enable=1 sysctl.max_rcu_stall_to_panic=1 msr.allow_writes=off coredump_filter=0xffff root=/dev/sda console=ttyS0 vsyscall=native numa=fake=2 kvm-intel.nested=1 spec_store_bypass_disable=prctl nopcid vivid.n_devs=64 vivid.multiplanar=1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2 netrom.nr_ndevs=32 rose.rose_ndevs=32 smp.csd_lock_timeout=100000 watchdog_thresh=55 workqueue.watchdog_thresh=140 sysctl.net.core.netdev_unregister_timeout_secs=140 dummy_hcd.num=32 max_loop=32 nbds_max=32 \
[ 0.149432][ T0] Kernel command line: panic_on_warn=1 root=/dev/sda console=ttyS0
[ 0.150737][ T0] Unknown kernel command line parameters "nbds_max=32", will be passed to user space.
[ 0.151363][ T0] random: crng init done
[ 0.151628][ T0] printk: log buffer data + meta data: 262144 + 917504 = 1179648 bytes
[ 0.152228][ T0] Fallback order for Node 0: 0 1
[ 0.152235][ T0] Fallback order for Node 1: 1 0
[ 0.152241][ T0] Built 2 zonelists, mobility grouping on. Total pages: 524158
[ 0.153248][ T0] Policy zone: DMA32
[ 0.153698][ T0] mem auto-init: stack:all(zero), heap alloc:on, heap free:off
[ 0.154161][ T0] stackdepot: allocating hash table via alloc_large_system_hash
[ 0.154614][ T0] stackdepot hash table entries: 1048576 (order: 12, 16777216 bytes, linear)
[ 0.157050][ T0] stackdepot: allocating space for 8192 stack pools via memblock
[ 0.236670][ T0] **********************************************************
[ 0.237151][ T0] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
[ 0.237595][ T0] ** **
[ 0.238026][ T0] ** This system shows unhashed kernel memory addresses **
[ 0.238467][ T0] ** via the console, logs, and other interfaces. This **
[ 0.238919][ T0] ** might reduce the security of your system. **
[ 0.239367][ T0] ** **
[ 0.239817][ T0] ** If you see this message and you are not debugging **
[ 0.240267][ T0] ** the kernel, report this immediately to your system **
[ 0.240734][ T0] ** administrator! **
[ 0.241189][ T0] ** **
[ 0.241642][ T0] ** Use hash_pointers=always to force this mode off **
[ 0.242084][ T0] ** **
[ 0.242528][ T0] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
[ 0.242996][ T0] **********************************************************
[ 0.244215][ T0] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=2
[ 0.258346][ T0] allocated 41943040 bytes of page_ext
[ 0.258761][ T0] Node 0, zone DMA: page owner found early allocated 0 pages
[ 0.262111][ T0] Node 0, zone DMA32: page owner found early allocated 5862 pages
[ 0.263782][ T0] Node 1, zone DMA32: page owner found early allocated 4483 pages
[ 0.264831][ T0] Dynamic Preempt: full
[ 0.265607][ T0] Running RCU self tests
[ 0.265887][ T0] Running RCU synchronous self tests
[ 0.266205][ T0] rcu: Preemptible hierarchical RCU implementation.
[ 0.266608][ T0] rcu: RCU lockdep checking is enabled.
[ 0.266941][ T0] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[ 0.267393][ T0] rcu: RCU callback double-/use-after-free debug is enabled.
[ 0.267846][ T0] rcu: RCU debug extended QS entry/exit.
[ 0.268190][ T0] All grace periods are expedited (rcu_expedited).
[ 0.268600][ T0] Trampoline variant of Tasks RCU enabled.
[ 0.268959][ T0] Tracing variant of Tasks RCU enabled.
[ 0.269300][ T0] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.269817][ T0] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.270352][ T0] Running RCU synchronous self tests
[ 0.270688][ T0] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[ 0.271270][ T0] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[ 0.334731][ T0] NR_IRQS: 4352, nr_irqs: 440, preallocated irqs: 16
[ 0.335636][ T0] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.336289][ T0] kfence: initialized - using 2097152 bytes for 255 objects at 0xffff88807ec00000-0xffff88807ee00000
[ 0.340717][ T0] Console: colour VGA+ 80x25
[ 0.341061][ T0] printk: legacy console [ttyS0] enabled
[ 0.341061][ T0] printk: legacy console [ttyS0] enabled
[ 0.341768][ T0] printk: legacy bootconsole [earlyser0] disabled
[ 0.341768][ T0] printk: legacy bootconsole [earlyser0] disabled
[ 0.342563][ T0] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.343085][ T0] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.343390][ T0] ... MAX_LOCK_DEPTH: 48
[ 0.343703][ T0] ... MAX_LOCKDEP_KEYS: 8192
[ 0.344026][ T0] ... CLASSHASH_SIZE: 4096
[ 0.344353][ T0] ... MAX_LOCKDEP_ENTRIES: 1048576
[ 0.344698][ T0] ... MAX_LOCKDEP_CHAINS: 1048576
[ 0.345040][ T0] ... CHAINHASH_SIZE: 524288
[ 0.345379][ T0] memory used by lock dependency info: 106625 kB
[ 0.345789][ T0] memory used for stack traces: 8320 kB
[ 0.346145][ T0] per task-struct memory footprint: 1920 bytes
[ 0.346597][ T0] mempolicy: Enabling automatic NUMA balancing. Configure with numa_balancing= or the kernel.numa_balancing sysctl
[ 0.347389][ T0] ACPI: Core revision 20250807
[ 0.348116][ T0] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
[ 0.348943][ T0] APIC: Switch to symmetric I/O mode setup
[ 0.349447][ T0] x2apic enabled
[ 0.349945][ T0] APIC: Switched APIC routing to: physical x2apic
[ 0.350368][ T0] kvm-guest: APIC: send_IPI_mask() replaced with kvm_send_ipi_mask()
[ 0.350890][ T0] kvm-guest: APIC: send_IPI_mask_allbutself() replaced with kvm_send_ipi_mask_allbutself()
[ 0.351513][ T0] kvm-guest: setup PV IPIs
[ 0.352772][ T0] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.353221][ T0] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x325ea749ca1, max_idle_ns: 440795373125 ns
[ 0.353952][ T0] Calibrating delay loop (skipped) preset value.. 6988.80 BogoMIPS (lpj=34944000)
[ 0.354647][ T0] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[ 0.355228][ T0] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[ 0.355619][ T0] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[ 0.356050][ T0] mitigations: Enabled attack vectors: user_kernel, user_user, guest_host, guest_guest, SMT mitigations: auto
[ 0.356801][ T0] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl
[ 0.357412][ T0] Spectre V2 : Mitigation: Enhanced / Automatic IBRS
[ 0.357852][ T0] Register File Data Sampling: Mitigation: Clear Register File
[ 0.358340][ T0] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[ 0.363978][ T0] Spectre V2 : WARNING: Unprivileged eBPF is enabled with eIBRS on, data leaks possible via Spectre v2 BHB attacks!
[ 0.364773][ T0] Spectre V2 : Spectre v2 / PBRSB-eIBRS: Retire a single CALL on VMEXIT
[ 0.365307][ T0] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier
[ 0.365926][ T0] Spectre V2 : Spectre BHI mitigation: SW BHB clearing on syscall and VM exit
[ 0.366516][ T0] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.367086][ T0] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.367596][ T0] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.368082][ T0] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'
[ 0.368642][ T0] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.369088][ T0] x86/fpu: xstate_offset[9]: 832, xstate_sizes[9]: 8
[ 0.369549][ T0] x86/fpu: Enabled xstate features 0x207, context size is 840 bytes, using 'compacted' format.
[ 0.489380][ T0] Freeing SMP alternatives memory: 128K
[ 0.489785][ T0] pid_max: default: 32768 minimum: 301
[ 0.490492][ T0] landlock: Up and running.
[ 0.490788][ T0] Yama: becoming mindful.
[ 0.491146][ T0] TOMOYO Linux initialized
[ 0.491768][ T0] AppArmor: AppArmor initialized
[ 0.492616][ T0] LSM support for eBPF active
[ 0.493699][ T0] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, vmalloc hugepage)
[ 0.494269][ T0] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, vmalloc)
[ 0.494959][ T0] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, vmalloc)
[ 0.495582][ T0] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, vmalloc)
[ 0.498092][ T0] Running RCU synchronous self tests
[ 0.498454][ T0] Running RCU synchronous self tests
[ 0.499220][ T1] smpboot: CPU0: 13th Gen Intel(R) Core(TM) i5-13600KF (family: 0x6, model: 0xb7, stepping: 0x1)
[ 0.501330][ T1] Performance Events: unsupported CPU family 6 model 183 no PMU driver, software events only.
[ 0.502126][ T1] signal: max sigframe size: 3632
[ 0.502652][ T1] rcu: Hierarchical SRCU implementation.
[ 0.503042][ T1] rcu: Max phase no-delay instances is 1000.
[ 0.503844][ T1] Timer migration: 1 hierarchy levels; 8 children per group; 0 crossnode level
[ 0.503945][ T1] NMI watchdog: Perf NMI watchdog permanently disabled
[ 0.503945][ T1] smp: Bringing up secondary CPUs ...
[ 0.504074][ T1] smpboot: x86: Booting SMP configuration:
[ 0.504514][ T1] .... node #1, CPUs: #1
[ 0.504661][ T1] smp: Brought up 2 nodes, 2 CPUs
[ 0.504661][ T1] smpboot: Total of 2 processors activated (13977.60 BogoMIPS)
[ 0.505045][ T1] Memory: 1267836K/2096632K available (169450K kernel code, 29105K rwdata, 38556K rodata, 25944K init, 122376K bss, 775880K reserved, 0K cma-reserved)
[ 0.505712][ T1] devtmpfs: initialized
[ 0.505712][ T1] x86/mm: Memory block size: 128MB
[ 0.528929][ T1] Running RCU synchronous self tests
[ 0.528929][ T1] Running RCU synchronous self tests
[ 0.528929][ T1] Running RCU Tasks wait API self tests
[ 0.534052][ T1] Running RCU Tasks Trace wait API self tests
[ 0.583998][ T1] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.586471][ T1] posixtimers hash table entries: 1024 (order: 5, 73728 bytes, vmalloc)
[ 0.588322][ T1] futex hash table entries: 256 (32768 bytes on 2 NUMA nodes, total 64 KiB, linear).
[ 0.594378][ T1] PM: RTC time: 09:58:29, date: 2026-01-20
[ 0.597837][ T1] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.599989][ T1] audit: initializing netlink subsys (disabled)
[ 0.600590][ T33] audit: type=2000 audit(1768903109.572:1): state=initialized audit_enabled=0 res=1
[ 0.604297][ T1] thermal_sys: Registered thermal governor 'step_wise'
[ 0.604297][ T1] thermal_sys: Registered thermal governor 'user_space'
[ 0.604347][ T1] cpuidle: using governor menu
[ 0.605033][ T1] NET: Registered PF_QIPCRTR protocol family
[ 0.607059][ T1] dca service started, version 1.12.1
[ 0.607641][ T1] PCI: Using configuration type 1 for base access
[ 0.634060][ T1] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.634060][ T1] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.634060][ T1] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.634570][ T1] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.645597][ T1] raid6: skipped pq benchmark and selected avx2x4
[ 0.646181][ T1] raid6: using avx2x2 recovery algorithm
[ 0.647455][ T1] ACPI: Added _OSI(Module Device)
[ 0.647887][ T1] ACPI: Added _OSI(Processor Device)
[ 0.648319][ T1] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.653980][ T31] Callback from call_rcu_tasks_trace() invoked.
[ 0.702133][ T1] ACPI: 1 ACPI AML tables successfully acquired and loaded
[ 0.740209][ T1] ACPI: Interpreter enabled
[ 0.741421][ T1] ACPI: PM: (supports S0 S3 S4 S5)
[ 0.742517][ T1] ACPI: Using IOAPIC for interrupt routing
[ 0.744001][ T1] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.746082][ T1] PCI: Using E820 reservations for host bridge windows
[ 0.749798][ T1] ACPI: Enabled 2 GPEs in block 00 to 0F
[ 0.832228][ T1] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[ 0.833828][ T1] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI HPX-Type3]
[ 0.833969][ T1] acpi PNP0A03:00: _OSC: not requesting OS control; OS requires [ExtendedConfig ASPM ClockPM MSI]
[ 0.836702][ T1] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended configuration space under this bridge
[ 0.840647][ T1] PCI host bridge to bus 0000:00
[ 0.841671][ T1] pci_bus 0000:00: Unknown NUMA node; performance will be reduced
[ 0.843488][ T1] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
[ 0.844185][ T1] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
[ 0.845842][ T1] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[ 0.847631][ T1] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfebfffff window]
[ 0.849389][ T1] pci_bus 0000:00: root bus resource [mem 0x100000000-0x17fffffff window]
[ 0.851232][ T1] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.852820][ T1] pci 0000:00:00.0: [8086:1237] type 00 class 0x060000 conventional PCI endpoint
[ 0.876188][ T1] pci 0000:00:01.0: [8086:7000] type 00 class 0x060100 conventional PCI endpoint
[ 0.881199][ T1] pci 0000:00:01.1: [8086:7010] type 00 class 0x010180 conventional PCI endpoint
[ 0.884053][ T1] pci 0000:00:01.1: BAR 4 [io 0xc060-0xc06f]
[ 0.885376][ T1] pci 0000:00:01.1: BAR 0 [io 0x01f0-0x01f7]: legacy IDE quirk
[ 0.886948][ T1] pci 0000:00:01.1: BAR 1 [io 0x03f6]: legacy IDE quirk
[ 0.888412][ T1] pci 0000:00:01.1: BAR 2 [io 0x0170-0x0177]: legacy IDE quirk
[ 0.890041][ T1] pci 0000:00:01.1: BAR 3 [io 0x0376]: legacy IDE quirk
[ 0.892666][ T1] pci 0000:00:01.3: [8086:7113] type 00 class 0x068000 conventional PCI endpoint
[ 0.894806][ T1] pci 0000:00:01.3: quirk: [io 0x0600-0x063f] claimed by PIIX4 ACPI
[ 0.896590][ T1] pci 0000:00:01.3: quirk: [io 0x0700-0x070f] claimed by PIIX4 SMB
[ 0.899388][ T1] pci 0000:00:02.0: [1234:1111] type 00 class 0x030000 conventional PCI endpoint
[ 0.904748][ T1] pci 0000:00:02.0: BAR 0 [mem 0xfd000000-0xfdffffff pref]
[ 0.906280][ T1] pci 0000:00:02.0: BAR 2 [mem 0xfebb0000-0xfebb0fff]
[ 0.907701][ T1] pci 0000:00:02.0: ROM [mem 0xfeba0000-0xfebaffff pref]
[ 0.909349][ T1] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[ 0.924805][ T1] pci 0000:00:03.0: [1af4:1005] type 00 class 0x00ff00 conventional PCI endpoint
[ 0.925955][ T1] pci 0000:00:03.0: BAR 0 [io 0xc040-0xc05f]
[ 0.926362][ T1] pci 0000:00:03.0: BAR 4 [mem 0xfe000000-0xfe003fff 64bit pref]
[ 0.939270][ T1] pci 0000:00:04.0: [8086:100e] type 00 class 0x020000 conventional PCI endpoint
[ 0.940337][ T1] pci 0000:00:04.0: BAR 0 [mem 0xfeb80000-0xfeb9ffff]
[ 0.940765][ T1] pci 0000:00:04.0: BAR 1 [io 0xc000-0xc03f]
[ 0.941152][ T1] pci 0000:00:04.0: ROM [mem 0xfeb00000-0xfeb7ffff pref]
[ 0.960053][ T1] ACPI: PCI: Interrupt link LNKA configured for IRQ 10
[ 0.961993][ T1] ACPI: PCI: Interrupt link LNKB configured for IRQ 10
[ 0.963933][ T1] ACPI: PCI: Interrupt link LNKC configured for IRQ 11
[ 0.965570][ T1] ACPI: PCI: Interrupt link LNKD configured for IRQ 11
[ 0.966530][ T1] ACPI: PCI: Interrupt link LNKS configured for IRQ 9
[ 0.974061][ T1] iommu: Default domain type: Translated
[ 0.975168][ T1] iommu: DMA domain TLB invalidation policy: lazy mode
[ 0.977050][ T1] SCSI subsystem initialized
[ 0.984957][ T1] ACPI: bus type USB registered
[ 0.986312][ T1] usbcore: registered new interface driver usbfs
[ 0.987672][ T1] usbcore: registered new interface driver hub
[ 0.988934][ T1] usbcore: registered new device driver usb
[ 0.991115][ T1] mc: Linux media interface: v0.10
[ 0.992314][ T1] videodev: Linux video capture interface: v2.00
[ 0.994050][ T1] pps_core: LinuxPPS API ver. 1 registered
[ 0.995133][ T1] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.997100][ T1] PTP clock support registered
[ 1.014120][ T1] EDAC MC: Ver: 3.0.0
[ 1.026029][ T1] Advanced Linux Sound Architecture Driver Initialized.
[ 1.030676][ T1] Bluetooth: Core ver 2.22
[ 1.031683][ T1] NET: Registered PF_BLUETOOTH protocol family
[ 1.032884][ T1] Bluetooth: HCI device and connection manager initialized
[ 1.034021][ T1] Bluetooth: HCI socket layer initialized
[ 1.035136][ T1] Bluetooth: L2CAP socket layer initialized
[ 1.036370][ T1] Bluetooth: SCO socket layer initialized
[ 1.037524][ T1] NET: Registered PF_ATMPVC protocol family
[ 1.038807][ T1] NET: Registered PF_ATMSVC protocol family
[ 1.039412][ T1] NetLabel: Initializing
[ 1.039708][ T1] NetLabel: domain hash size = 128
[ 1.040055][ T1] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 1.040670][ T1] NetLabel: unlabeled traffic allowed by default
[ 1.041391][ T1] nfc: nfc_init: NFC Core ver 0.1
[ 1.041391][ T1] NET: Registered PF_NFC protocol family
[ 1.041391][ T1] PCI: Using ACPI for IRQ routing
[ 1.044263][ T1] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[ 1.045475][ T1] pci 0000:00:02.0: vgaarb: bridge control possible
[ 1.045925][ T1] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[ 1.046563][ T1] vgaarb: loaded
[ 1.047458][ T1] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[ 1.047861][ T1] hpet0: 3 comparators, 64-bit 100.000000 MHz counter
[ 1.053621][ T1] clocksource: Switched to clocksource kvm-clock
[ 1.058947][ T1] VFS: Disk quotas dquot_6.6.0
[ 1.059338][ T1] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 1.072272][ T1] netfs: FS-Cache loaded
[ 1.073919][ T1] CacheFiles: Loaded
[ 1.075120][ T1] TOMOYO: 2.6.0
[ 1.075831][ T1] Mandatory Access Control activated.
[ 1.079221][ T1] AppArmor: AppArmor Filesystem Enabled
[ 1.080673][ T1] pnp: PnP ACPI init
[ 1.088658][ T1] pnp: PnP ACPI: found 6 devices
[ 1.151621][ T1] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 1.152663][ T1] NET: Registered PF_INET protocol family
[ 1.153349][ T1] IP idents hash table entries: 32768 (order: 6, 262144 bytes, vmalloc)
[ 1.155332][ T1] tcp_listen_portaddr_hash hash table entries: 1024 (order: 5, 73728 bytes, vmalloc)
[ 1.156104][ T1] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, vmalloc)
[ 1.156822][ T1] TCP established hash table entries: 16384 (order: 5, 131072 bytes, vmalloc)
[ 1.158859][ T1] TCP bind hash table entries: 16384 (order: 10, 2359296 bytes, vmalloc hugepage)
[ 1.159998][ T1] TCP: Hash tables configured (established 16384 bind 16384)
[ 1.161248][ T1] MPTCP token hash table entries: 2048 (order: 6, 180224 bytes, vmalloc)
[ 1.162051][ T1] UDP hash table entries: 1024 (order: 6, 262144 bytes, vmalloc)
[ 1.162745][ T1] UDP-Lite hash table entries: 1024 (order: 6, 262144 bytes, vmalloc)
[ 1.163766][ T1] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 1.186233][ T1] RPC: Registered named UNIX socket transport module.
[ 1.187716][ T1] RPC: Registered udp transport module.
[ 1.188926][ T1] RPC: Registered tcp transport module.
[ 1.190168][ T1] RPC: Registered tcp-with-tls transport module.
[ 1.191543][ T1] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.197966][ T1] NET: Registered PF_XDP protocol family
[ 1.199222][ T1] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window]
[ 1.199982][ T1] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window]
[ 1.200435][ T1] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[ 1.200926][ T1] pci_bus 0000:00: resource 7 [mem 0x80000000-0xfebfffff window]
[ 1.201407][ T1] pci_bus 0000:00: resource 8 [mem 0x100000000-0x17fffffff window]
[ 1.202277][ T1] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[ 1.202703][ T1] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[ 1.203185][ T1] PCI: CLS 0 bytes, default 64
[ 1.205257][ T1] ACPI: bus type thunderbolt registered
[ 1.206532][ T67] kworker/u9:2 (67) used greatest stack depth: 27480 bytes left
[ 1.207485][ T1] RAPL PMU: API unit is 2^-32 Joules, 0 fixed counters, 10737418240 ms ovfl timer
[ 1.215954][ T1] kvm_amd: CPU 0 isn't AMD or Hygon
[ 1.216495][ T1] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x325ea749ca1, max_idle_ns: 440795373125 ns
[ 1.217280][ T1] clocksource: Switched to clocksource tsc
[ 1.230222][ T72] kworker/u9:2 (72) used greatest stack depth: 25896 bytes left
[ 1.956822][ T1] Initialise system trusted keyrings
[ 1.958078][ T1] workingset: timestamp_bits=40 max_order=19 bucket_order=0
[ 1.960747][ T1] DLM installed
[ 1.962188][ T1] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 1.964556][ T1] NFS: Registering the id_resolver key type
[ 1.965003][ T1] Key type id_resolver registered
[ 1.965334][ T1] Key type id_legacy registered
[ 1.965701][ T1] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 1.966246][ T1] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 1.970727][ T1] Key type cifs.spnego registered
[ 1.971161][ T1] Key type cifs.idmap registered
[ 1.971620][ T1] ntfs3: Enabled Linux POSIX ACLs support
[ 1.971984][ T1] ntfs3: Read-only LZX/Xpress compression included
[ 1.972437][ T1] efs: 1.0a - http://aeschi.ch.eu.org/efs/
[ 1.972851][ T1] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
[ 1.973844][ T1] romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
[ 1.974244][ T1] QNX4 filesystem 0.2.3 registered.
[ 1.974583][ T1] qnx6: QNX6 filesystem 1.0.0 registered.
[ 1.975401][ T1] fuse: init (API version 7.45)
[ 1.976756][ T1] orangefs_debugfs_init: called with debug mask: :none: :0:
[ 1.977585][ T1] orangefs_init: module version upstream loaded
[ 1.978536][ T1] JFS: nTxBlock = 8192, nTxLock = 65536
[ 1.982812][ T1] SGI XFS with ACLs, security attributes, realtime, scrub, repair, quota, fatal assert, debug enabled
[ 1.986052][ T1] 9p: Installing v9fs 9p2000 file system support
[ 1.986637][ T1] NILFS version 2 loaded
[ 1.986913][ T1] befs: version: 0.9.3
[ 1.987409][ T1] ocfs2: Registered cluster interface o2cb
[ 1.988507][ T1] ocfs2: Registered cluster interface user
[ 1.989492][ T1] OCFS2 User DLM kernel interface loaded
[ 1.995490][ T1] gfs2: GFS2 installed
[ 1.999840][ T1] ceph: loaded (mds proto 32)
[ 2.002738][ T1] cryptd: max_cpu_qlen set to 1000
[ 2.009765][ T1] NET: Registered PF_ALG protocol family
[ 2.010302][ T1] xor: automatically using best checksumming function avx
[ 2.010843][ T1] async_tx: api initialized (async)
[ 2.011174][ T1] Key type asymmetric registered
[ 2.011486][ T1] Asymmetric key parser 'x509' registered
[ 2.011855][ T1] Asymmetric key parser 'pkcs8' registered
[ 2.012204][ T1] Key type pkcs7_test registered
[ 2.012812][ T1] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 238)
[ 2.013642][ T1] io scheduler mq-deadline registered
[ 2.013988][ T1] io scheduler kyber registered
[ 2.014407][ T1] io scheduler bfq registered
[ 2.016944][ T1] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[ 2.018698][ T30] Callback from call_rcu_tasks() invoked.
[ 2.038832][ T1] ACPI: button: Power Button [PWRF]
[ 2.045108][ T1] ioatdma: Intel(R) QuickData Technology Driver 5.00
[ 3.232628][ T1] ACPI: \_SB_.LNKC: Enabled at IRQ 11
[ 3.388655][ T1] N_HDLC line discipline registered with maxframe=4096
[ 3.389178][ T1] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 3.391629][ T1] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 3.403967][ T1] Non-volatile memory driver v1.3
[ 3.405249][ T1] Linux agpgart interface v0.103
[ 3.406655][ T1] usbcore: registered new interface driver xillyusb
[ 3.409026][ T1] ACPI: bus type drm_connector registered
[ 3.412342][ T1] [drm] Initialized vgem 1.0.0 for vgem on minor 0
[ 3.416212][ T1] [drm] Initialized vkms 1.0.0 for vkms on minor 1
[ 3.499179][ T1] Console: switching to colour frame buffer device 128x48
[ 3.533159][ T1] faux_driver vkms: [drm] fb0: vkmsdrmfb frame buffer device
[ 3.533998][ T1] usbcore: registered new interface driver udl
[ 3.535283][ T1] bochs-drm 0000:00:02.0: vgaarb: deactivate vga console
[ 3.538451][ T1] [drm] Found bochs VGA, ID 0xb0c5.
[ 3.538848][ T1] [drm] Framebuffer size 16384 kB @ 0xfd000000, mmio @ 0xfebb0000.
[ 3.541433][ T1] [drm] Initialized bochs-drm 1.0.0 for 0000:00:02.0 on minor 2
[ 3.550700][ T1] fbcon: bochs-drmdrmfb (fb1) is primary device
[ 3.550709][ T1] fbcon: Remapping primary device, fb1, to tty 1-63
[ 8.076338][ T1] bochs-drm 0000:00:02.0: [drm] fb1: bochs-drmdrmfb frame buffer device
[ 8.079503][ T1] usbcore: registered new interface driver gm12u320
[ 8.081237][ T1] usbcore: registered new interface driver gud
[ 8.123646][ T1] brd: module loaded
[ 8.230051][ T1] loop: module loaded
[ 8.492974][ T1] zram: Added device: zram0
[ 8.498607][ T1] null_blk: disk nullb0 created
[ 8.498993][ T1] null_blk: module loaded
[ 8.500123][ T1] Guest personality initialized and is inactive
[ 8.501245][ T1] VMCI host device registered (name=vmci, major=10, minor=265)
[ 8.501764][ T1] Initialized host personality
[ 8.502562][ T1] usbcore: registered new interface driver rtsx_usb
[ 8.504189][ T1] usbcore: registered new interface driver viperboard
[ 8.505073][ T1] usbcore: registered new interface driver dln2
[ 8.507261][ T1] usbcore: registered new interface driver pn533_usb
[ 8.509911][ T1] nfcsim 0.2 initialized
[ 8.510444][ T1] usbcore: registered new interface driver port100
[ 8.511110][ T1] usbcore: registered new interface driver nfcmrvl
[ 8.514012][ T1] Loading iSCSI transport class v2.0-870.
[ 8.517928][ T1] st: Version 20160209, fixed bufsize 32768, s/g segs 256
[ 8.546871][ T1] scsi host0: ata_piix
[ 8.548778][ T1] scsi host1: ata_piix
[ 8.549811][ T1] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc060 irq 14 lpm-pol 0
[ 8.550349][ T1] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc068 irq 15 lpm-pol 0
[ 8.553263][ T1] Rounding down aligned max_sectors from 4294967295 to 4294967288
[ 8.554209][ T1] db_root: cannot open: /etc/target
[ 8.555617][ T1] slram: not enough parameters.
[ 8.560508][ T1] ftl_cs: FTL header not found.
[ 8.581507][ T1] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[ 8.582137][ T1] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[ 8.582799][ T1] eql: Equalizer2002: Simon Janes (simon@ncm.com) and David S. Miller (davem@redhat.com)
[ 8.587457][ T1] MACsec IEEE 802.1AE
[ 8.591599][ T1] usbcore: registered new interface driver mvusb_mdio
[ 8.592226][ T1] tun: Universal TUN/TAP device driver, 1.6
[ 8.598067][ T1] vcan: Virtual CAN interface driver
[ 8.598466][ T1] vxcan: Virtual CAN Tunnel driver
[ 8.598829][ T1] slcan: serial line CAN interface driver
[ 8.599226][ T1] CAN device driver interface
[ 8.599683][ T1] usbcore: registered new interface driver usb_8dev
[ 8.600719][ T1] usbcore: registered new interface driver ems_usb
[ 8.601575][ T1] usbcore: registered new interface driver esd_usb
[ 8.602304][ T1] usbcore: registered new interface driver etas_es58x
[ 8.602995][ T1] usbcore: registered new interface driver f81604
[ 8.603633][ T1] usbcore: registered new interface driver gs_usb
[ 8.604285][ T1] usbcore: registered new interface driver kvaser_usb
[ 8.604934][ T1] usbcore: registered new interface driver mcba_usb
[ 8.605633][ T1] usbcore: registered new interface driver peak_usb
[ 8.606348][ T1] usbcore: registered new interface driver ucan
[ 8.607163][ T1] e100: Intel(R) PRO/100 Network Driver
[ 8.607546][ T1] e100: Copyright(c) 1999-2006 Intel Corporation
[ 8.608221][ T1] e1000: Intel(R) PRO/1000 Network Driver
[ 8.608620][ T1] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 8.708116][ T1058] ata1: found unknown device (class 0)
[ 8.709822][ T1063] ata2: found unknown device (class 0)
[ 8.710722][ T1063] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100
[ 8.711689][ T1058] ata1.00: ATA-7: QEMU HARDDISK, 2.5+, max UDMA/100
[ 8.712300][ T1058] ata1.00: 4194304 sectors, multi 16: LBA48
[ 8.718247][ T1013] scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5
[ 8.733752][ T1013] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 8.735800][ T27] sd 0:0:0:0: [sda] 4194304 512-byte logical blocks: (2.15 GB/2.00 GiB)
[ 8.736685][ T27] sd 0:0:0:0: [sda] Write Protect is off
[ 8.737163][ T27] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 8.738046][ T27] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[ 8.738149][ T34] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5
[ 8.783148][ T27] sd 0:0:0:0: [sda] Attached SCSI disk
[ 8.908751][ T34] sr 1:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray
[ 8.909299][ T34] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 9.043050][ T34] sr 1:0:0:0: Attached scsi generic sg1 type 5
[ 9.859052][ T1] ACPI: \_SB_.LNKD: Enabled at IRQ 10
[ 10.190143][ T1] e1000 0000:00:04.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56
[ 10.190691][ T1] e1000 0000:00:04.0 eth0: Intel(R) PRO/1000 Network Connection
[ 10.191553][ T1] e1000e: Intel(R) PRO/1000 Network Driver
[ 10.191927][ T1] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 10.192992][ T1] mkiss: AX.25 Multikiss, Hans Albas PE1AYX
[ 10.193416][ T1] AX.25: bpqether driver version 004
[ 10.193761][ T1] PPP generic driver version 2.4.2
[ 10.194882][ T1] PPP BSD Compression module registered
[ 10.196039][ T1] PPP Deflate Compression module registered
[ 10.197257][ T1] PPP MPPE Compression module registered
[ 10.198430][ T1] NET: Registered PF_PPPOX protocol family
[ 10.199644][ T1] PPTP driver version 0.8.5
[ 10.200796][ T1] SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256) (6 bit encapsulation enabled).
[ 10.202852][ T1] CSLIP: code copyright 1989 Regents of the University of California.
[ 10.204459][ T1] SLIP linefill/keepalive option.
[ 10.205507][ T1] hdlc: HDLC support module revision 1.22
[ 10.206688][ T1] LAPB Ethernet driver version 0.02
[ 10.208848][ T1] usbcore: registered new interface driver ath9k_htc
[ 10.210573][ T1] usbcore: registered new interface driver carl9170
[ 10.211539][ T1] usbcore: registered new interface driver ath6kl_usb
[ 10.212219][ T1] usbcore: registered new interface driver ar5523
[ 10.213034][ T1] usbcore: registered new interface driver ath10k_usb
[ 10.213702][ T1] usbcore: registered new interface driver plfxlc
[ 10.214335][ T1] mac80211_hwsim: initializing netlink
[ 10.225627][ T1] usbcore: registered new interface driver atusb
[ 10.230904][ T1] mac802154_hwsim mac802154_hwsim: Added 2 mac802154 hwsim hardware radios
[ 10.232187][ T1] VMware vmxnet3 virtual NIC driver - version 1.9.0.0-k-NAPI
[ 10.233085][ T1] usbcore: registered new interface driver catc
[ 10.233774][ T1] usbcore: registered new interface driver kaweth
[ 10.234176][ T1] pegasus: Pegasus/Pegasus II USB Ethernet driver
[ 10.234791][ T1] usbcore: registered new interface driver pegasus
[ 10.235392][ T1] usbcore: registered new interface driver rtl8150
[ 10.235955][ T1] usbcore: registered new device driver r8152-cfgselector
[ 10.236624][ T1] usbcore: registered new interface driver r8152
[ 10.237320][ T1] usbcore: registered new interface driver hso
[ 10.238123][ T1] usbcore: registered new interface driver lan78xx
[ 10.238868][ T1] usbcore: registered new interface driver asix
[ 10.239471][ T1] usbcore: registered new interface driver ax88179_178a
[ 10.240114][ T1] usbcore: registered new interface driver cdc_ether
[ 10.240793][ T1] usbcore: registered new interface driver cdc_eem
[ 10.241405][ T1] usbcore: registered new interface driver dm9601
[ 10.242059][ T1] usbcore: registered new interface driver sr9700
[ 10.242665][ T1] usbcore: registered new interface driver CoreChips
[ 10.243268][ T1] usbcore: registered new interface driver smsc75xx
[ 10.243911][ T1] usbcore: registered new interface driver smsc95xx
[ 10.244513][ T1] usbcore: registered new interface driver gl620a
[ 10.245116][ T1] usbcore: registered new interface driver net1080
[ 10.245714][ T1] usbcore: registered new interface driver plusb
[ 10.246293][ T1] usbcore: registered new interface driver rndis_host
[ 10.246965][ T1] usbcore: registered new interface driver cdc_subset
[ 10.247604][ T1] usbcore: registered new interface driver zaurus
[ 10.248235][ T1] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[ 10.248982][ T1] usbcore: registered new interface driver int51x1
[ 10.249582][ T1] usbcore: registered new interface driver cdc_phonet
[ 10.250195][ T1] usbcore: registered new interface driver kalmia
[ 10.250853][ T1] usbcore: registered new interface driver ipheth
[ 10.251486][ T1] usbcore: registered new interface driver sierra_net
[ 10.252143][ T1] usbcore: registered new interface driver cx82310_eth
[ 10.252773][ T1] usbcore: registered new interface driver cdc_ncm
[ 10.253384][ T1] usbcore: registered new interface driver huawei_cdc_ncm
[ 10.254084][ T1] usbcore: registered new interface driver lg-vl600
[ 10.254724][ T1] usbcore: registered new interface driver qmi_wwan
[ 10.255341][ T1] usbcore: registered new interface driver cdc_mbim
[ 10.255977][ T1] usbcore: registered new interface driver ch9200
[ 10.256589][ T1] usbcore: registered new interface driver aqc111
[ 10.257366][ T1] usbcore: registered new interface driver r8153_ecm
[ 10.262493][ T1] VFIO - User Level meta-driver version: 0.3
[ 10.268029][ T1] aoe: AoE v85 initialised.
[ 10.277902][ T1] usbcore: registered new interface driver cdc_acm
[ 10.279291][ T1] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 10.280177][ T1] usbcore: registered new interface driver usblp
[ 10.280722][ T1] usbcore: registered new interface driver cdc_wdm
[ 10.281234][ T1] usbcore: registered new interface driver usbtmc
[ 10.292374][ T1] usbcore: registered new interface driver uas
[ 10.292989][ T1] usbcore: registered new interface driver usb-storage
[ 10.293605][ T1] usbcore: registered new interface driver ums-alauda
[ 10.294218][ T1] usbcore: registered new interface driver ums-cypress
[ 10.294847][ T1] usbcore: registered new interface driver ums-datafab
[ 10.295488][ T1] usbcore: registered new interface driver ums_eneub6250
[ 10.296140][ T1] usbcore: registered new interface driver ums-freecom
[ 10.296773][ T1] usbcore: registered new interface driver ums-isd200
[ 10.297406][ T1] usbcore: registered new interface driver ums-jumpshot
[ 10.298192][ T1] usbcore: registered new interface driver ums-karma
[ 10.298825][ T1] usbcore: registered new interface driver ums-onetouch
[ 10.299484][ T1] usbcore: registered new interface driver ums-realtek
[ 10.300265][ T1] usbcore: registered new interface driver ums-sddr09
[ 10.300865][ T1] usbcore: registered new interface driver ums-sddr55
[ 10.301514][ T1] usbcore: registered new interface driver ums-usbat
[ 10.302152][ T1] usbcore: registered new interface driver mdc800
[ 10.302582][ T1] mdc800: v0.7.5 (30/10/2000):USB Driver for Mustek MDC800 Digital Camera
[ 10.303376][ T1] usbcore: registered new interface driver microtekX6
[ 10.304436][ T1] usbcore: registered new interface driver usbserial_generic
[ 10.305329][ T1] usbserial: USB Serial support registered for generic
[ 10.305986][ T1] usbcore: registered new interface driver aircable
[ 10.306561][ T1] usbserial: USB Serial support registered for aircable
[ 10.307167][ T1] usbcore: registered new interface driver ark3116
[ 10.307724][ T1] usbserial: USB Serial support registered for ark3116
[ 10.308407][ T1] usbcore: registered new interface driver belkin_sa
[ 10.309019][ T1] usbserial: USB Serial support registered for Belkin / Peracom / GoHubs USB Serial Adapter
[ 10.309823][ T1] usbcore: registered new interface driver ch341
[ 10.310342][ T1] usbserial: USB Serial support registered for ch341-uart
[ 10.310935][ T1] usbcore: registered new interface driver cp210x
[ 10.311459][ T1] usbserial: USB Serial support registered for cp210x
[ 10.312030][ T1] usbcore: registered new interface driver cyberjack
[ 10.312610][ T1] usbserial: USB Serial support registered for Reiner SCT Cyberjack USB card reader
[ 10.313364][ T1] usbcore: registered new interface driver cypress_m8
[ 10.313971][ T1] usbserial: USB Serial support registered for DeLorme Earthmate USB
[ 10.314617][ T1] usbserial: USB Serial support registered for HID->COM RS232 Adapter
[ 10.315273][ T1] usbserial: USB Serial support registered for Nokia CA-42 V2 Adapter
[ 10.315978][ T1] usbcore: registered new interface driver usb_debug
[ 10.316570][ T1] usbserial: USB Serial support registered for debug
[ 10.317134][ T1] usbserial: USB Serial support registered for xhci_dbc
[ 10.317783][ T1] usbcore: registered new interface driver digi_acceleport
[ 10.318404][ T1] usbserial: USB Serial support registered for Digi 2 port USB adapter
[ 10.319092][ T1] usbserial: USB Serial support registered for Digi 4 port USB adapter
[ 10.319929][ T1] usbcore: registered new interface driver io_edgeport
[ 10.320479][ T1] usbserial: USB Serial support registered for Edgeport 2 port adapter
[ 10.321100][ T1] usbserial: USB Serial support registered for Edgeport 4 port adapter
[ 10.321750][ T1] usbserial: USB Serial support registered for Edgeport 8 port adapter
[ 10.322384][ T1] usbserial: USB Serial support registered for EPiC device
[ 10.323037][ T1] usbcore: registered new interface driver io_ti
[ 10.323595][ T1] usbserial: USB Serial support registered for Edgeport TI 1 port adapter
[ 10.324274][ T1] usbserial: USB Serial support registered for Edgeport TI 2 port adapter
[ 10.324968][ T1] usbcore: registered new interface driver empeg
[ 10.325493][ T1] usbserial: USB Serial support registered for empeg
[ 10.326162][ T1] usbcore: registered new interface driver f81534a_ctrl
[ 10.326778][ T1] usbcore: registered new interface driver f81232
[ 10.327338][ T1] usbserial: USB Serial support registered for f81232
[ 10.327958][ T1] usbserial: USB Serial support registered for f81534a
[ 10.328567][ T1] usbcore: registered new interface driver f81534
[ 10.329137][ T1] usbserial: USB Serial support registered for Fintek F81532/F81534
[ 10.329805][ T1] usbcore: registered new interface driver ftdi_sio
[ 10.330421][ T1] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 10.331205][ T1] usbcore: registered new interface driver garmin_gps
[ 10.331782][ T1] usbserial: USB Serial support registered for Garmin GPS usb/tty
[ 10.332426][ T1] usbcore: registered new interface driver ipaq
[ 10.332958][ T1] usbserial: USB Serial support registered for PocketPC PDA
[ 10.333576][ T1] usbcore: registered new interface driver ipw
[ 10.334106][ T1] usbserial: USB Serial support registered for IPWireless converter
[ 10.334752][ T1] usbcore: registered new interface driver ir_usb
[ 10.335270][ T1] usbserial: USB Serial support registered for IR Dongle
[ 10.335865][ T1] usbcore: registered new interface driver iuu_phoenix
[ 10.336411][ T1] usbserial: USB Serial support registered for iuu_phoenix
[ 10.337000][ T1] usbcore: registered new interface driver keyspan
[ 10.337531][ T1] usbserial: USB Serial support registered for Keyspan - (without firmware)
[ 10.338238][ T1] usbserial: USB Serial support registered for Keyspan 1 port adapter
[ 10.338895][ T1] usbserial: USB Serial support registered for Keyspan 2 port adapter
[ 10.339988][ T1] usbserial: USB Serial support registered for Keyspan 4 port adapter
[ 10.340739][ T1] usbcore: registered new interface driver keyspan_pda
[ 10.341349][ T1] usbserial: USB Serial support registered for Keyspan PDA
[ 10.341951][ T1] usbserial: USB Serial support registered for Keyspan PDA - (prerenumeration)
[ 10.342710][ T1] usbcore: registered new interface driver kl5kusb105
[ 10.343286][ T1] usbserial: USB Serial support registered for KL5KUSB105D / PalmConnect
[ 10.344052][ T1] usbcore: registered new interface driver kobil_sct
[ 10.344715][ T1] usbserial: USB Serial support registered for KOBIL USB smart card terminal
[ 10.345503][ T1] usbcore: registered new interface driver mct_u232
[ 10.346138][ T1] usbserial: USB Serial support registered for MCT U232
[ 10.346823][ T1] usbcore: registered new interface driver metro_usb
[ 10.347427][ T1] usbserial: USB Serial support registered for Metrologic USB to Serial
[ 10.348236][ T1] usbcore: registered new interface driver mos7720
[ 10.348806][ T1] usbserial: USB Serial support registered for Moschip 2 port adapter
[ 10.349505][ T1] usbcore: registered new interface driver mos7840
[ 10.350083][ T1] usbserial: USB Serial support registered for Moschip 7840/7820 USB Serial Driver
[ 10.350854][ T1] usbcore: registered new interface driver mxuport
[ 10.351411][ T1] usbserial: USB Serial support registered for MOXA UPort
[ 10.352027][ T1] usbcore: registered new interface driver navman
[ 10.352559][ T1] usbserial: USB Serial support registered for navman
[ 10.353160][ T1] usbcore: registered new interface driver omninet
[ 10.353752][ T1] usbserial: USB Serial support registered for ZyXEL - omni.net usb
[ 10.354452][ T1] usbcore: registered new interface driver opticon
[ 10.354986][ T1] usbserial: USB Serial support registered for opticon
[ 10.355578][ T1] usbcore: registered new interface driver option
[ 10.356360][ T1] usbserial: USB Serial support registered for GSM modem (1-port)
[ 10.357085][ T1] usbcore: registered new interface driver oti6858
[ 10.357690][ T1] usbserial: USB Serial support registered for oti6858
[ 10.358569][ T1] usbcore: registered new interface driver pl2303
[ 10.359295][ T1] usbserial: USB Serial support registered for pl2303
[ 10.360030][ T1] usbcore: registered new interface driver qcaux
[ 10.360858][ T1] usbserial: USB Serial support registered for qcaux
[ 10.361585][ T1] usbcore: registered new interface driver qcserial
[ 10.362311][ T1] usbserial: USB Serial support registered for Qualcomm USB modem
[ 10.363121][ T1] usbcore: registered new interface driver quatech2
[ 10.363806][ T1] usbserial: USB Serial support registered for Quatech 2nd gen USB to Serial Driver
[ 10.364787][ T1] usbcore: registered new interface driver safe_serial
[ 10.365497][ T1] usbserial: USB Serial support registered for safe_serial
[ 10.366255][ T1] usbcore: registered new interface driver sierra
[ 10.366935][ T1] usbserial: USB Serial support registered for Sierra USB modem
[ 10.367726][ T1] usbcore: registered new interface driver usb_serial_simple
[ 10.368497][ T1] usbserial: USB Serial support registered for carelink
[ 10.369195][ T1] usbserial: USB Serial support registered for flashloader
[ 10.370478][ T1] usbserial: USB Serial support registered for funsoft
[ 10.372357][ T1] usbserial: USB Serial support registered for google
[ 10.374008][ T1] usbserial: USB Serial support registered for hp4x
[ 10.375679][ T1] usbserial: USB Serial support registered for kaufmann
[ 10.376638][ T1] usbserial: USB Serial support registered for libtransistor
[ 10.377435][ T1] usbserial: USB Serial support registered for moto_modem
[ 10.378222][ T1] usbserial: USB Serial support registered for motorola_tetra
[ 10.379121][ T1] usbserial: USB Serial support registered for nokia
[ 10.379852][ T1] usbserial: USB Serial support registered for novatel_gps
[ 10.380590][ T1] usbserial: USB Serial support registered for owon
[ 10.381277][ T1] usbserial: USB Serial support registered for siemens_mpi
[ 10.382047][ T1] usbserial: USB Serial support registered for suunto
[ 10.382800][ T1] usbserial: USB Serial support registered for vivopay
[ 10.383511][ T1] usbserial: USB Serial support registered for zio
[ 10.384382][ T1] usbcore: registered new interface driver spcp8x5
[ 10.385093][ T1] usbserial: USB Serial support registered for SPCP8x5
[ 10.385869][ T1] usbcore: registered new interface driver ssu100
[ 10.386560][ T1] usbserial: USB Serial support registered for Quatech SSU-100 USB to Serial Driver
[ 10.387533][ T1] usbcore: registered new interface driver symbolserial
[ 10.388256][ T1] usbserial: USB Serial support registered for symbol
[ 10.388980][ T1] usbcore: registered new interface driver ti_usb_3410_5052
[ 10.389740][ T1] usbserial: USB Serial support registered for TI USB 3410 1 port adapter
[ 10.390539][ T1] usbserial: USB Serial support registered for TI USB 5052 2 port adapter
[ 10.391369][ T1] usbcore: registered new interface driver upd78f0730
[ 10.392069][ T1] usbserial: USB Serial support registered for upd78f0730
[ 10.392842][ T1] usbcore: registered new interface driver visor
[ 10.393511][ T1] usbserial: USB Serial support registered for Handspring Visor / Palm OS
[ 10.394331][ T1] usbserial: USB Serial support registered for Sony Clie 5.0
[ 10.395054][ T1] usbserial: USB Serial support registered for Sony Clie 3.5
[ 10.396305][ T1] usbcore: registered new interface driver wishbone_serial
[ 10.398345][ T1] usbserial: USB Serial support registered for wishbone_serial
[ 10.400162][ T1] usbcore: registered new interface driver whiteheat
[ 10.401017][ T1] usbserial: USB Serial support registered for Connect Tech - WhiteHEAT - (prerenumeration)
[ 10.401888][ T1] usbserial: USB Serial support registered for Connect Tech - WhiteHEAT
[ 10.402607][ T1] usbcore: registered new interface driver xr_serial
[ 10.403167][ T1] usbserial: USB Serial support registered for xr_serial
[ 10.403797][ T1] usbcore: registered new interface driver xsens_mt
[ 10.404344][ T1] usbserial: USB Serial support registered for xsens_mt
[ 10.404964][ T1] usbcore: registered new interface driver adutux
[ 10.405541][ T1] usbcore: registered new interface driver appledisplay
[ 10.406136][ T1] usbcore: registered new interface driver cypress_cy7c63
[ 10.406774][ T1] usbcore: registered new interface driver cytherm
[ 10.407374][ T1] usbcore: registered new interface driver emi26 - firmware loader
[ 10.408201][ T1] usbcore: registered new interface driver emi62 - firmware loader
[ 10.408883][ T1] usbcore: registered new device driver apple-mfi-fastcharge
[ 10.409535][ T1] usbcore: registered new interface driver ljca
[ 10.410097][ T1] usbcore: registered new interface driver idmouse
[ 10.410725][ T1] usbcore: registered new interface driver iowarrior
[ 10.411365][ T1] usbcore: registered new interface driver isight_firmware
[ 10.412007][ T1] usbcore: registered new interface driver usblcd
[ 10.412585][ T1] usbcore: registered new interface driver ldusb
[ 10.413183][ T1] usbcore: registered new interface driver legousbtower
[ 10.413814][ T1] usbcore: registered new interface driver usbtest
[ 10.414429][ T1] usbcore: registered new interface driver usb_ehset_test
[ 10.415043][ T1] usbcore: registered new interface driver trancevibrator
[ 10.415709][ T1] usbcore: registered new interface driver uss720
[ 10.416102][ T1] uss720: USB Parport Cable driver for Cables using the Lucent Technologies USS720 Chip
[ 10.416687][ T1] uss720: NOTE: this is a special purpose driver to allow nonstandard
[ 10.417178][ T1] uss720: protocols (eg. bitbang) over USS720 usb to parallel cables
[ 10.417673][ T1] uss720: If you just want to connect to a printer, use usblp instead
[ 10.418392][ T1] usbcore: registered new interface driver usbsevseg
[ 10.419117][ T1] usbcore: registered new interface driver yurex
[ 10.420522][ T1] usbcore: registered new interface driver chaoskey
[ 10.421137][ T1] usbcore: registered new interface driver sisusb
[ 10.421741][ T1] usbcore: registered new interface driver lvs
[ 10.422305][ T1] usbcore: registered new interface driver cxacru
[ 10.422883][ T1] usbcore: registered new interface driver speedtch
[ 10.423486][ T1] usbcore: registered new interface driver ueagle-atm
[ 10.423909][ T1] xusbatm: malformed module parameters
[ 10.425746][ T1] dummy_hcd dummy_hcd.0: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.426274][ T1] dummy_hcd dummy_hcd.0: Dummy host controller
[ 10.427805][ T1] dummy_hcd dummy_hcd.0: new USB bus registered, assigned bus number 1
[ 10.429079][ T1] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.429696][ T1] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.430185][ T1] usb usb1: Product: Dummy host controller
[ 10.430548][ T1] usb usb1: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.430958][ T1] usb usb1: SerialNumber: dummy_hcd.0
[ 10.433361][ T1] hub 1-0:1.0: USB hub found
[ 10.434000][ T1] hub 1-0:1.0: 1 port detected
[ 10.436710][ T1] dummy_hcd dummy_hcd.1: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.437274][ T1] dummy_hcd dummy_hcd.1: Dummy host controller
[ 10.438317][ T1] dummy_hcd dummy_hcd.1: new USB bus registered, assigned bus number 2
[ 10.439315][ T1] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.439914][ T1] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.440429][ T1] usb usb2: Product: Dummy host controller
[ 10.440793][ T1] usb usb2: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.441206][ T1] usb usb2: SerialNumber: dummy_hcd.1
[ 10.442951][ T1] hub 2-0:1.0: USB hub found
[ 10.443366][ T1] hub 2-0:1.0: 1 port detected
[ 10.445460][ T1] dummy_hcd dummy_hcd.2: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.446010][ T1] dummy_hcd dummy_hcd.2: Dummy host controller
[ 10.446883][ T1] dummy_hcd dummy_hcd.2: new USB bus registered, assigned bus number 3
[ 10.447928][ T1] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.448503][ T1] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.449000][ T1] usb usb3: Product: Dummy host controller
[ 10.449359][ T1] usb usb3: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.449771][ T1] usb usb3: SerialNumber: dummy_hcd.2
[ 10.451435][ T1] hub 3-0:1.0: USB hub found
[ 10.451862][ T1] hub 3-0:1.0: 1 port detected
[ 10.453761][ T1] dummy_hcd dummy_hcd.3: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.454297][ T1] dummy_hcd dummy_hcd.3: Dummy host controller
[ 10.455130][ T1] dummy_hcd dummy_hcd.3: new USB bus registered, assigned bus number 4
[ 10.456067][ T1] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.456639][ T1] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.457134][ T1] usb usb4: Product: Dummy host controller
[ 10.457493][ T1] usb usb4: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.458068][ T1] usb usb4: SerialNumber: dummy_hcd.3
[ 10.459707][ T1] hub 4-0:1.0: USB hub found
[ 10.460096][ T1] hub 4-0:1.0: 1 port detected
[ 10.462035][ T1] dummy_hcd dummy_hcd.4: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.462617][ T1] dummy_hcd dummy_hcd.4: Dummy host controller
[ 10.463476][ T1] dummy_hcd dummy_hcd.4: new USB bus registered, assigned bus number 5
[ 10.464524][ T1] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.465090][ T1] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.465584][ T1] usb usb5: Product: Dummy host controller
[ 10.465950][ T1] usb usb5: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.466401][ T1] usb usb5: SerialNumber: dummy_hcd.4
[ 10.468032][ T1] hub 5-0:1.0: USB hub found
[ 10.468439][ T1] hub 5-0:1.0: 1 port detected
[ 10.470417][ T1] dummy_hcd dummy_hcd.5: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.470972][ T1] dummy_hcd dummy_hcd.5: Dummy host controller
[ 10.471850][ T1] dummy_hcd dummy_hcd.5: new USB bus registered, assigned bus number 6
[ 10.472833][ T1] usb usb6: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.473416][ T1] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.473941][ T1] usb usb6: Product: Dummy host controller
[ 10.474303][ T1] usb usb6: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.474715][ T1] usb usb6: SerialNumber: dummy_hcd.5
[ 10.476325][ T1] hub 6-0:1.0: USB hub found
[ 10.476725][ T1] hub 6-0:1.0: 1 port detected
[ 10.478738][ T1] dummy_hcd dummy_hcd.6: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.479419][ T1] dummy_hcd dummy_hcd.6: Dummy host controller
[ 10.480243][ T1] dummy_hcd dummy_hcd.6: new USB bus registered, assigned bus number 7
[ 10.481186][ T1] usb usb7: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.481801][ T1] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.482377][ T1] usb usb7: Product: Dummy host controller
[ 10.482775][ T1] usb usb7: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.483207][ T1] usb usb7: SerialNumber: dummy_hcd.6
[ 10.485012][ T1] hub 7-0:1.0: USB hub found
[ 10.485432][ T1] hub 7-0:1.0: 1 port detected
[ 10.487416][ T1] dummy_hcd dummy_hcd.7: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.488016][ T1] dummy_hcd dummy_hcd.7: Dummy host controller
[ 10.488896][ T1] dummy_hcd dummy_hcd.7: new USB bus registered, assigned bus number 8
[ 10.489852][ T1] usb usb8: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.490437][ T1] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.491014][ T1] usb usb8: Product: Dummy host controller
[ 10.491414][ T1] usb usb8: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.491854][ T1] usb usb8: SerialNumber: dummy_hcd.7
[ 10.493718][ T1] hub 8-0:1.0: USB hub found
[ 10.494200][ T1] hub 8-0:1.0: 1 port detected
[ 10.496266][ T1] dummy_hcd dummy_hcd.8: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.496958][ T1] dummy_hcd dummy_hcd.8: Dummy host controller
[ 10.498028][ T1] dummy_hcd dummy_hcd.8: new USB bus registered, assigned bus number 9
[ 10.499148][ T1] usb usb9: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.499919][ T1] usb usb9: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.500600][ T1] usb usb9: Product: Dummy host controller
[ 10.501073][ T1] usb usb9: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.501614][ T1] usb usb9: SerialNumber: dummy_hcd.8
[ 10.503420][ T1] hub 9-0:1.0: USB hub found
[ 10.503984][ T1] hub 9-0:1.0: 1 port detected
[ 10.506247][ T1] dummy_hcd dummy_hcd.9: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.506996][ T1] dummy_hcd dummy_hcd.9: Dummy host controller
[ 10.508048][ T1] dummy_hcd dummy_hcd.9: new USB bus registered, assigned bus number 10
[ 10.509184][ T1] usb usb10: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.509933][ T1] usb usb10: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.510626][ T1] usb usb10: Product: Dummy host controller
[ 10.511008][ T1] usb usb10: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.511424][ T1] usb usb10: SerialNumber: dummy_hcd.9
[ 10.513467][ T1] hub 10-0:1.0: USB hub found
[ 10.513953][ T1] hub 10-0:1.0: 1 port detected
[ 10.516079][ T1] dummy_hcd dummy_hcd.10: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.516758][ T1] dummy_hcd dummy_hcd.10: Dummy host controller
[ 10.518252][ T1] dummy_hcd dummy_hcd.10: new USB bus registered, assigned bus number 11
[ 10.519648][ T1] usb usb11: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.520473][ T1] usb usb11: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.521013][ T1] usb usb11: Product: Dummy host controller
[ 10.521387][ T1] usb usb11: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.521817][ T1] usb usb11: SerialNumber: dummy_hcd.10
[ 10.523626][ T1] hub 11-0:1.0: USB hub found
[ 10.524052][ T1] hub 11-0:1.0: 1 port detected
[ 10.526048][ T1] dummy_hcd dummy_hcd.11: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.526651][ T1] dummy_hcd dummy_hcd.11: Dummy host controller
[ 10.527551][ T1] dummy_hcd dummy_hcd.11: new USB bus registered, assigned bus number 12
[ 10.528796][ T1] usb usb12: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.529434][ T1] usb usb12: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.529972][ T1] usb usb12: Product: Dummy host controller
[ 10.530365][ T1] usb usb12: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.530873][ T1] usb usb12: SerialNumber: dummy_hcd.11
[ 10.533906][ T1] hub 12-0:1.0: USB hub found
[ 10.534432][ T1] hub 12-0:1.0: 1 port detected
[ 10.536740][ T1] dummy_hcd dummy_hcd.12: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.537353][ T1] dummy_hcd dummy_hcd.12: Dummy host controller
[ 10.538431][ T1] dummy_hcd dummy_hcd.12: new USB bus registered, assigned bus number 13
[ 10.539558][ T1] usb usb13: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.540297][ T1] usb usb13: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.540936][ T1] usb usb13: Product: Dummy host controller
[ 10.541381][ T1] usb usb13: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.541843][ T1] usb usb13: SerialNumber: dummy_hcd.12
[ 10.543727][ T1] hub 13-0:1.0: USB hub found
[ 10.544162][ T1] hub 13-0:1.0: 1 port detected
[ 10.546127][ T1] dummy_hcd dummy_hcd.13: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.546717][ T1] dummy_hcd dummy_hcd.13: Dummy host controller
[ 10.547615][ T1] dummy_hcd dummy_hcd.13: new USB bus registered, assigned bus number 14
[ 10.548653][ T1] usb usb14: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.549342][ T1] usb usb14: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.549953][ T1] usb usb14: Product: Dummy host controller
[ 10.550390][ T1] usb usb14: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.550898][ T1] usb usb14: SerialNumber: dummy_hcd.13
[ 10.552684][ T1] hub 14-0:1.0: USB hub found
[ 10.553156][ T1] hub 14-0:1.0: 1 port detected
[ 10.555173][ T1] dummy_hcd dummy_hcd.14: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.555852][ T1] dummy_hcd dummy_hcd.14: Dummy host controller
[ 10.556813][ T1] dummy_hcd dummy_hcd.14: new USB bus registered, assigned bus number 15
[ 10.558002][ T1] usb usb15: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.558783][ T1] usb usb15: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.559424][ T1] usb usb15: Product: Dummy host controller
[ 10.559834][ T1] usb usb15: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.560280][ T1] usb usb15: SerialNumber: dummy_hcd.14
[ 10.562170][ T1] hub 15-0:1.0: USB hub found
[ 10.562640][ T1] hub 15-0:1.0: 1 port detected
[ 10.564734][ T1] dummy_hcd dummy_hcd.15: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.565476][ T1] dummy_hcd dummy_hcd.15: Dummy host controller
[ 10.566331][ T1] dummy_hcd dummy_hcd.15: new USB bus registered, assigned bus number 16
[ 10.567307][ T1] usb usb16: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.567922][ T1] usb usb16: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.568446][ T1] usb usb16: Product: Dummy host controller
[ 10.568838][ T1] usb usb16: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.569258][ T1] usb usb16: SerialNumber: dummy_hcd.15
[ 10.571007][ T1] hub 16-0:1.0: USB hub found
[ 10.571574][ T1] hub 16-0:1.0: 1 port detected
[ 10.573718][ T1] dummy_hcd dummy_hcd.16: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.574463][ T1] dummy_hcd dummy_hcd.16: Dummy host controller
[ 10.575446][ T1] dummy_hcd dummy_hcd.16: new USB bus registered, assigned bus number 17
[ 10.576565][ T1] usb usb17: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.577273][ T1] usb usb17: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.577951][ T1] usb usb17: Product: Dummy host controller
[ 10.578413][ T1] usb usb17: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.578965][ T1] usb usb17: SerialNumber: dummy_hcd.16
[ 10.580849][ T1] hub 17-0:1.0: USB hub found
[ 10.581326][ T1] hub 17-0:1.0: 1 port detected
[ 10.583347][ T1] dummy_hcd dummy_hcd.17: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.583934][ T1] dummy_hcd dummy_hcd.17: Dummy host controller
[ 10.584829][ T1] dummy_hcd dummy_hcd.17: new USB bus registered, assigned bus number 18
[ 10.586016][ T1] usb usb18: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.586671][ T1] usb usb18: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.587321][ T1] usb usb18: Product: Dummy host controller
[ 10.587778][ T1] usb usb18: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.588316][ T1] usb usb18: SerialNumber: dummy_hcd.17
[ 10.590190][ T1] hub 18-0:1.0: USB hub found
[ 10.590672][ T1] hub 18-0:1.0: 1 port detected
[ 10.592672][ T1] dummy_hcd dummy_hcd.18: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.593226][ T1] dummy_hcd dummy_hcd.18: Dummy host controller
[ 10.594098][ T1] dummy_hcd dummy_hcd.18: new USB bus registered, assigned bus number 19
[ 10.595248][ T1] usb usb19: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.595888][ T1] usb usb19: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.596402][ T1] usb usb19: Product: Dummy host controller
[ 10.596835][ T1] usb usb19: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.597275][ T1] usb usb19: SerialNumber: dummy_hcd.18
[ 10.599167][ T1] hub 19-0:1.0: USB hub found
[ 10.599595][ T1] hub 19-0:1.0: 1 port detected
[ 10.601672][ T1] dummy_hcd dummy_hcd.19: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.602237][ T1] dummy_hcd dummy_hcd.19: Dummy host controller
[ 10.603166][ T1] dummy_hcd dummy_hcd.19: new USB bus registered, assigned bus number 20
[ 10.604152][ T1] usb usb20: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.604737][ T1] usb usb20: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.605245][ T1] usb usb20: Product: Dummy host controller
[ 10.605616][ T1] usb usb20: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.606037][ T1] usb usb20: SerialNumber: dummy_hcd.19
[ 10.607714][ T1] hub 20-0:1.0: USB hub found
[ 10.608162][ T1] hub 20-0:1.0: 1 port detected
[ 10.610396][ T1] dummy_hcd dummy_hcd.20: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.611008][ T1] dummy_hcd dummy_hcd.20: Dummy host controller
[ 10.611899][ T1] dummy_hcd dummy_hcd.20: new USB bus registered, assigned bus number 21
[ 10.612926][ T1] usb usb21: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.613526][ T1] usb usb21: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.614050][ T1] usb usb21: Product: Dummy host controller
[ 10.614423][ T1] usb usb21: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.614867][ T1] usb usb21: SerialNumber: dummy_hcd.20
[ 10.616642][ T1] hub 21-0:1.0: USB hub found
[ 10.617176][ T1] hub 21-0:1.0: 1 port detected
[ 10.619779][ T1] dummy_hcd dummy_hcd.21: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.620401][ T1] dummy_hcd dummy_hcd.21: Dummy host controller
[ 10.621329][ T1] dummy_hcd dummy_hcd.21: new USB bus registered, assigned bus number 22
[ 10.622311][ T1] usb usb22: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.622907][ T1] usb usb22: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.623418][ T1] usb usb22: Product: Dummy host controller
[ 10.623794][ T1] usb usb22: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.624229][ T1] usb usb22: SerialNumber: dummy_hcd.21
[ 10.626142][ T1] hub 22-0:1.0: USB hub found
[ 10.626680][ T1] hub 22-0:1.0: 1 port detected
[ 10.628668][ T1] dummy_hcd dummy_hcd.22: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.629235][ T1] dummy_hcd dummy_hcd.22: Dummy host controller
[ 10.630254][ T1] dummy_hcd dummy_hcd.22: new USB bus registered, assigned bus number 23
[ 10.631268][ T1] usb usb23: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.631866][ T1] usb usb23: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.632379][ T1] usb usb23: Product: Dummy host controller
[ 10.632751][ T1] usb usb23: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.633176][ T1] usb usb23: SerialNumber: dummy_hcd.22
[ 10.634961][ T1] hub 23-0:1.0: USB hub found
[ 10.635371][ T1] hub 23-0:1.0: 1 port detected
[ 10.637565][ T1] dummy_hcd dummy_hcd.23: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.638377][ T1] dummy_hcd dummy_hcd.23: Dummy host controller
[ 10.639308][ T1] dummy_hcd dummy_hcd.23: new USB bus registered, assigned bus number 24
[ 10.640306][ T1] usb usb24: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.640910][ T1] usb usb24: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.641434][ T1] usb usb24: Product: Dummy host controller
[ 10.641809][ T1] usb usb24: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.642270][ T1] usb usb24: SerialNumber: dummy_hcd.23
[ 10.644037][ T1] hub 24-0:1.0: USB hub found
[ 10.644470][ T1] hub 24-0:1.0: 1 port detected
[ 10.646414][ T1] dummy_hcd dummy_hcd.24: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.647095][ T1] dummy_hcd dummy_hcd.24: Dummy host controller
[ 10.648010][ T1] dummy_hcd dummy_hcd.24: new USB bus registered, assigned bus number 25
[ 10.649006][ T1] usb usb25: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.649633][ T1] usb usb25: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.650202][ T1] usb usb25: Product: Dummy host controller
[ 10.650604][ T1] usb usb25: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.651129][ T1] usb usb25: SerialNumber: dummy_hcd.24
[ 10.652900][ T1] hub 25-0:1.0: USB hub found
[ 10.653487][ T1] hub 25-0:1.0: 1 port detected
[ 10.655527][ T1] dummy_hcd dummy_hcd.25: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.656095][ T1] dummy_hcd dummy_hcd.25: Dummy host controller
[ 10.656981][ T1] dummy_hcd dummy_hcd.25: new USB bus registered, assigned bus number 26
[ 10.658031][ T1] usb usb26: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.658626][ T1] usb usb26: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.659156][ T1] usb usb26: Product: Dummy host controller
[ 10.659531][ T1] usb usb26: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.659954][ T1] usb usb26: SerialNumber: dummy_hcd.25
[ 10.661773][ T1] hub 26-0:1.0: USB hub found
[ 10.662306][ T1] hub 26-0:1.0: 1 port detected
[ 10.664370][ T1] dummy_hcd dummy_hcd.26: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.664964][ T1] dummy_hcd dummy_hcd.26: Dummy host controller
[ 10.665828][ T1] dummy_hcd dummy_hcd.26: new USB bus registered, assigned bus number 27
[ 10.666777][ T1] usb usb27: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.667405][ T1] usb usb27: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.667950][ T1] usb usb27: Product: Dummy host controller
[ 10.668333][ T1] usb usb27: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.668764][ T1] usb usb27: SerialNumber: dummy_hcd.26
[ 10.670584][ T1] hub 27-0:1.0: USB hub found
[ 10.671019][ T1] hub 27-0:1.0: 1 port detected
[ 10.673100][ T1] dummy_hcd dummy_hcd.27: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.673679][ T1] dummy_hcd dummy_hcd.27: Dummy host controller
[ 10.674573][ T1] dummy_hcd dummy_hcd.27: new USB bus registered, assigned bus number 28
[ 10.675686][ T1] usb usb28: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.676298][ T1] usb usb28: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.676840][ T1] usb usb28: Product: Dummy host controller
[ 10.677225][ T1] usb usb28: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.677683][ T1] usb usb28: SerialNumber: dummy_hcd.27
[ 10.679543][ T1] hub 28-0:1.0: USB hub found
[ 10.679973][ T1] hub 28-0:1.0: 1 port detected
[ 10.681921][ T1] dummy_hcd dummy_hcd.28: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.682493][ T1] dummy_hcd dummy_hcd.28: Dummy host controller
[ 10.683381][ T1] dummy_hcd dummy_hcd.28: new USB bus registered, assigned bus number 29
[ 10.684392][ T1] usb usb29: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.685004][ T1] usb usb29: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.685545][ T1] usb usb29: Product: Dummy host controller
[ 10.685915][ T1] usb usb29: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.686337][ T1] usb usb29: SerialNumber: dummy_hcd.28
[ 10.688109][ T1] hub 29-0:1.0: USB hub found
[ 10.688549][ T1] hub 29-0:1.0: 1 port detected
[ 10.690555][ T1] dummy_hcd dummy_hcd.29: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.691171][ T1] dummy_hcd dummy_hcd.29: Dummy host controller
[ 10.692050][ T1] dummy_hcd dummy_hcd.29: new USB bus registered, assigned bus number 30
[ 10.693120][ T1] usb usb30: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.693754][ T1] usb usb30: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.694299][ T1] usb usb30: Product: Dummy host controller
[ 10.694687][ T1] usb usb30: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.695132][ T1] usb usb30: SerialNumber: dummy_hcd.29
[ 10.697102][ T1] hub 30-0:1.0: USB hub found
[ 10.697669][ T1] hub 30-0:1.0: 1 port detected
[ 10.699768][ T1] dummy_hcd dummy_hcd.30: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.700342][ T1] dummy_hcd dummy_hcd.30: Dummy host controller
[ 10.701212][ T1] dummy_hcd dummy_hcd.30: new USB bus registered, assigned bus number 31
[ 10.702193][ T1] usb usb31: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.702788][ T1] usb usb31: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.703309][ T1] usb usb31: Product: Dummy host controller
[ 10.703692][ T1] usb usb31: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.704146][ T1] usb usb31: SerialNumber: dummy_hcd.30
[ 10.705913][ T1] hub 31-0:1.0: USB hub found
[ 10.706364][ T1] hub 31-0:1.0: 1 port detected
[ 10.708670][ T1] dummy_hcd dummy_hcd.31: USB Host+Gadget Emulator, driver 02 May 2005
[ 10.709264][ T1] dummy_hcd dummy_hcd.31: Dummy host controller
[ 10.710172][ T1] dummy_hcd dummy_hcd.31: new USB bus registered, assigned bus number 32
[ 10.711281][ T1] usb usb32: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.711908][ T1] usb usb32: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.712432][ T1] usb usb32: Product: Dummy host controller
[ 10.712849][ T1] usb usb32: Manufacturer: Linux 6.19.0-rc6 dummy_hcd
[ 10.713281][ T1] usb usb32: SerialNumber: dummy_hcd.31
[ 10.714982][ T1] hub 32-0:1.0: USB hub found
[ 10.715731][ T1] hub 32-0:1.0: 1 port detected
[ 10.751791][ T1] SPI driver max3420-udc has no spi_device_id for maxim,max3421-udc
[ 10.752577][ T1] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
[ 10.754710][ T1] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[ 10.755725][ T1] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 33
[ 10.756587][ T1] vhci_hcd vhci_hcd.0: created sysfs vhci_hcd.0
[ 10.757500][ T1] usb usb33: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.758345][ T1] usb usb33: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.758972][ T1] usb usb33: Product: USB/IP Virtual Host Controller
[ 10.759470][ T1] usb usb33: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.759956][ T1] usb usb33: SerialNumber: vhci_hcd.0
[ 10.761921][ T1] hub 33-0:1.0: USB hub found
[ 10.762478][ T1] hub 33-0:1.0: 8 ports detected
[ 10.766829][ T1] vhci_hcd vhci_hcd.0: USB/IP Virtual Host Controller
[ 10.768020][ T1] vhci_hcd vhci_hcd.0: new USB bus registered, assigned bus number 34
[ 10.768867][ T1] usb usb34: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.769906][ T1] usb usb34: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.770607][ T1] usb usb34: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.771258][ T1] usb usb34: Product: USB/IP Virtual Host Controller
[ 10.771798][ T1] usb usb34: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.772293][ T1] usb usb34: SerialNumber: vhci_hcd.0
[ 10.774163][ T1] hub 34-0:1.0: USB hub found
[ 10.774590][ T1] hub 34-0:1.0: 8 ports detected
[ 10.780078][ T1] vhci_hcd vhci_hcd.1: USB/IP Virtual Host Controller
[ 10.781018][ T1] vhci_hcd vhci_hcd.1: new USB bus registered, assigned bus number 35
[ 10.782048][ T1] usb usb35: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.782727][ T1] usb usb35: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.783323][ T1] usb usb35: Product: USB/IP Virtual Host Controller
[ 10.783814][ T1] usb usb35: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.784321][ T1] usb usb35: SerialNumber: vhci_hcd.1
[ 10.786211][ T1] hub 35-0:1.0: USB hub found
[ 10.786687][ T1] hub 35-0:1.0: 8 ports detected
[ 10.791099][ T1] vhci_hcd vhci_hcd.1: USB/IP Virtual Host Controller
[ 10.792028][ T1] vhci_hcd vhci_hcd.1: new USB bus registered, assigned bus number 36
[ 10.792825][ T1] usb usb36: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.793850][ T1] usb usb36: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.794525][ T1] usb usb36: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.795115][ T1] usb usb36: Product: USB/IP Virtual Host Controller
[ 10.795616][ T1] usb usb36: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.796101][ T1] usb usb36: SerialNumber: vhci_hcd.1
[ 10.797918][ T1] hub 36-0:1.0: USB hub found
[ 10.798410][ T1] hub 36-0:1.0: 8 ports detected
[ 10.803473][ T1] vhci_hcd vhci_hcd.2: USB/IP Virtual Host Controller
[ 10.804463][ T1] vhci_hcd vhci_hcd.2: new USB bus registered, assigned bus number 37
[ 10.805416][ T1] usb usb37: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.806005][ T1] usb usb37: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.806531][ T1] usb usb37: Product: USB/IP Virtual Host Controller
[ 10.807039][ T1] usb usb37: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.807539][ T1] usb usb37: SerialNumber: vhci_hcd.2
[ 10.809586][ T1] hub 37-0:1.0: USB hub found
[ 10.810061][ T1] hub 37-0:1.0: 8 ports detected
[ 10.814096][ T1] vhci_hcd vhci_hcd.2: USB/IP Virtual Host Controller
[ 10.815027][ T1] vhci_hcd vhci_hcd.2: new USB bus registered, assigned bus number 38
[ 10.815802][ T1] usb usb38: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.816799][ T1] usb usb38: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.817486][ T1] usb usb38: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.818244][ T1] usb usb38: Product: USB/IP Virtual Host Controller
[ 10.818745][ T1] usb usb38: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.819232][ T1] usb usb38: SerialNumber: vhci_hcd.2
[ 10.821002][ T1] hub 38-0:1.0: USB hub found
[ 10.821412][ T1] hub 38-0:1.0: 8 ports detected
[ 10.826425][ T1] vhci_hcd vhci_hcd.3: USB/IP Virtual Host Controller
[ 10.827494][ T1] vhci_hcd vhci_hcd.3: new USB bus registered, assigned bus number 39
[ 10.828546][ T1] usb usb39: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.829136][ T1] usb usb39: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.829649][ T1] usb usb39: Product: USB/IP Virtual Host Controller
[ 10.830066][ T1] usb usb39: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.830491][ T1] usb usb39: SerialNumber: vhci_hcd.3
[ 10.832366][ T1] hub 39-0:1.0: USB hub found
[ 10.832788][ T1] hub 39-0:1.0: 8 ports detected
[ 10.836760][ T1] vhci_hcd vhci_hcd.3: USB/IP Virtual Host Controller
[ 10.837671][ T1] vhci_hcd vhci_hcd.3: new USB bus registered, assigned bus number 40
[ 10.838520][ T1] usb usb40: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.839410][ T1] usb usb40: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.839991][ T1] usb usb40: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.840502][ T1] usb usb40: Product: USB/IP Virtual Host Controller
[ 10.840914][ T1] usb usb40: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.841334][ T1] usb usb40: SerialNumber: vhci_hcd.3
[ 10.843069][ T1] hub 40-0:1.0: USB hub found
[ 10.843492][ T1] hub 40-0:1.0: 8 ports detected
[ 10.848683][ T1] vhci_hcd vhci_hcd.4: USB/IP Virtual Host Controller
[ 10.849588][ T1] vhci_hcd vhci_hcd.4: new USB bus registered, assigned bus number 41
[ 10.850536][ T1] usb usb41: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.851167][ T1] usb usb41: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.851687][ T1] usb usb41: Product: USB/IP Virtual Host Controller
[ 10.852103][ T1] usb usb41: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.852524][ T1] usb usb41: SerialNumber: vhci_hcd.4
[ 10.854172][ T1] hub 41-0:1.0: USB hub found
[ 10.854597][ T1] hub 41-0:1.0: 8 ports detected
[ 10.858627][ T1] vhci_hcd vhci_hcd.4: USB/IP Virtual Host Controller
[ 10.859517][ T1] vhci_hcd vhci_hcd.4: new USB bus registered, assigned bus number 42
[ 10.860336][ T1] usb usb42: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.861243][ T1] usb usb42: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.861820][ T1] usb usb42: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.862317][ T1] usb usb42: Product: USB/IP Virtual Host Controller
[ 10.862730][ T1] usb usb42: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.863141][ T1] usb usb42: SerialNumber: vhci_hcd.4
[ 10.864980][ T1] hub 42-0:1.0: USB hub found
[ 10.865410][ T1] hub 42-0:1.0: 8 ports detected
[ 10.870584][ T1] vhci_hcd vhci_hcd.5: USB/IP Virtual Host Controller
[ 10.871495][ T1] vhci_hcd vhci_hcd.5: new USB bus registered, assigned bus number 43
[ 10.872428][ T1] usb usb43: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.873013][ T1] usb usb43: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.873601][ T1] usb usb43: Product: USB/IP Virtual Host Controller
[ 10.874013][ T1] usb usb43: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.874421][ T1] usb usb43: SerialNumber: vhci_hcd.5
[ 10.876070][ T1] hub 43-0:1.0: USB hub found
[ 10.877325][ T1] hub 43-0:1.0: 8 ports detected
[ 10.881530][ T1] vhci_hcd vhci_hcd.5: USB/IP Virtual Host Controller
[ 10.882423][ T1] vhci_hcd vhci_hcd.5: new USB bus registered, assigned bus number 44
[ 10.883160][ T1] usb usb44: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.884072][ T1] usb usb44: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.884645][ T1] usb usb44: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.885151][ T1] usb usb44: Product: USB/IP Virtual Host Controller
[ 10.885570][ T1] usb usb44: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.885981][ T1] usb usb44: SerialNumber: vhci_hcd.5
[ 10.887683][ T1] hub 44-0:1.0: USB hub found
[ 10.888127][ T1] hub 44-0:1.0: 8 ports detected
[ 10.893240][ T1] vhci_hcd vhci_hcd.6: USB/IP Virtual Host Controller
[ 10.894150][ T1] vhci_hcd vhci_hcd.6: new USB bus registered, assigned bus number 45
[ 10.895100][ T1] usb usb45: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.895677][ T1] usb usb45: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.896189][ T1] usb usb45: Product: USB/IP Virtual Host Controller
[ 10.896604][ T1] usb usb45: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.897013][ T1] usb usb45: SerialNumber: vhci_hcd.6
[ 10.898744][ T1] hub 45-0:1.0: USB hub found
[ 10.899166][ T1] hub 45-0:1.0: 8 ports detected
[ 10.903143][ T1] vhci_hcd vhci_hcd.6: USB/IP Virtual Host Controller
[ 10.904026][ T1] vhci_hcd vhci_hcd.6: new USB bus registered, assigned bus number 46
[ 10.904817][ T1] usb usb46: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.905723][ T1] usb usb46: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.906293][ T1] usb usb46: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.906799][ T1] usb usb46: Product: USB/IP Virtual Host Controller
[ 10.907215][ T1] usb usb46: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.907634][ T1] usb usb46: SerialNumber: vhci_hcd.6
[ 10.909347][ T1] hub 46-0:1.0: USB hub found
[ 10.909762][ T1] hub 46-0:1.0: 8 ports detected
[ 10.914746][ T1] vhci_hcd vhci_hcd.7: USB/IP Virtual Host Controller
[ 10.915664][ T1] vhci_hcd vhci_hcd.7: new USB bus registered, assigned bus number 47
[ 10.916592][ T1] usb usb47: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.917172][ T1] usb usb47: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.917687][ T1] usb usb47: Product: USB/IP Virtual Host Controller
[ 10.918164][ T1] usb usb47: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.918591][ T1] usb usb47: SerialNumber: vhci_hcd.7
[ 10.920258][ T1] hub 47-0:1.0: USB hub found
[ 10.920710][ T1] hub 47-0:1.0: 8 ports detected
[ 10.924606][ T1] vhci_hcd vhci_hcd.7: USB/IP Virtual Host Controller
[ 10.925520][ T1] vhci_hcd vhci_hcd.7: new USB bus registered, assigned bus number 48
[ 10.926219][ T1] usb usb48: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.927145][ T1] usb usb48: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.927710][ T1] usb usb48: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.928407][ T1] usb usb48: Product: USB/IP Virtual Host Controller
[ 10.928828][ T1] usb usb48: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.929259][ T1] usb usb48: SerialNumber: vhci_hcd.7
[ 10.931024][ T1] hub 48-0:1.0: USB hub found
[ 10.931481][ T1] hub 48-0:1.0: 8 ports detected
[ 10.936490][ T1] vhci_hcd vhci_hcd.8: USB/IP Virtual Host Controller
[ 10.937421][ T1] vhci_hcd vhci_hcd.8: new USB bus registered, assigned bus number 49
[ 10.938423][ T1] usb usb49: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.939000][ T1] usb usb49: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.939509][ T1] usb usb49: Product: USB/IP Virtual Host Controller
[ 10.939924][ T1] usb usb49: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.940342][ T1] usb usb49: SerialNumber: vhci_hcd.8
[ 10.941998][ T1] hub 49-0:1.0: USB hub found
[ 10.942398][ T1] hub 49-0:1.0: 8 ports detected
[ 10.946365][ T1] vhci_hcd vhci_hcd.8: USB/IP Virtual Host Controller
[ 10.947276][ T1] vhci_hcd vhci_hcd.8: new USB bus registered, assigned bus number 50
[ 10.948155][ T1] usb usb50: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.949065][ T1] usb usb50: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.949636][ T1] usb usb50: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.950136][ T1] usb usb50: Product: USB/IP Virtual Host Controller
[ 10.950551][ T1] usb usb50: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.950959][ T1] usb usb50: SerialNumber: vhci_hcd.8
[ 10.952649][ T1] hub 50-0:1.0: USB hub found
[ 10.953087][ T1] hub 50-0:1.0: 8 ports detected
[ 10.958178][ T1] vhci_hcd vhci_hcd.9: USB/IP Virtual Host Controller
[ 10.959126][ T1] vhci_hcd vhci_hcd.9: new USB bus registered, assigned bus number 51
[ 10.960099][ T1] usb usb51: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.960697][ T1] usb usb51: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.961201][ T1] usb usb51: Product: USB/IP Virtual Host Controller
[ 10.961615][ T1] usb usb51: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.962028][ T1] usb usb51: SerialNumber: vhci_hcd.9
[ 10.963662][ T1] hub 51-0:1.0: USB hub found
[ 10.964070][ T1] hub 51-0:1.0: 8 ports detected
[ 10.968184][ T1] vhci_hcd vhci_hcd.9: USB/IP Virtual Host Controller
[ 10.969113][ T1] vhci_hcd vhci_hcd.9: new USB bus registered, assigned bus number 52
[ 10.969819][ T1] usb usb52: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.970748][ T1] usb usb52: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.971331][ T1] usb usb52: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.971838][ T1] usb usb52: Product: USB/IP Virtual Host Controller
[ 10.972249][ T1] usb usb52: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.972660][ T1] usb usb52: SerialNumber: vhci_hcd.9
[ 10.974362][ T1] hub 52-0:1.0: USB hub found
[ 10.974806][ T1] hub 52-0:1.0: 8 ports detected
[ 10.979851][ T1] vhci_hcd vhci_hcd.10: USB/IP Virtual Host Controller
[ 10.980777][ T1] vhci_hcd vhci_hcd.10: new USB bus registered, assigned bus number 53
[ 10.981705][ T1] usb usb53: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 10.982274][ T1] usb usb53: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.982779][ T1] usb usb53: Product: USB/IP Virtual Host Controller
[ 10.983194][ T1] usb usb53: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.983615][ T1] usb usb53: SerialNumber: vhci_hcd.10
[ 10.985305][ T1] hub 53-0:1.0: USB hub found
[ 10.985730][ T1] hub 53-0:1.0: 8 ports detected
[ 10.989638][ T1] vhci_hcd vhci_hcd.10: USB/IP Virtual Host Controller
[ 10.990963][ T1] vhci_hcd vhci_hcd.10: new USB bus registered, assigned bus number 54
[ 10.991736][ T1] usb usb54: We don't know the algorithms for LPM for this host, disabling LPM.
[ 10.992644][ T1] usb usb54: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 10.993215][ T1] usb usb54: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 10.993744][ T1] usb usb54: Product: USB/IP Virtual Host Controller
[ 10.994166][ T1] usb usb54: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 10.994607][ T1] usb usb54: SerialNumber: vhci_hcd.10
[ 10.996383][ T1] hub 54-0:1.0: USB hub found
[ 10.996830][ T1] hub 54-0:1.0: 8 ports detected
[ 11.002153][ T1] vhci_hcd vhci_hcd.11: USB/IP Virtual Host Controller
[ 11.003149][ T1] vhci_hcd vhci_hcd.11: new USB bus registered, assigned bus number 55
[ 11.004170][ T1] usb usb55: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 11.004813][ T1] usb usb55: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.005377][ T1] usb usb55: Product: USB/IP Virtual Host Controller
[ 11.005859][ T1] usb usb55: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.006306][ T1] usb usb55: SerialNumber: vhci_hcd.11
[ 11.008149][ T1] hub 55-0:1.0: USB hub found
[ 11.008559][ T1] hub 55-0:1.0: 8 ports detected
[ 11.012548][ T1] vhci_hcd vhci_hcd.11: USB/IP Virtual Host Controller
[ 11.013466][ T1] vhci_hcd vhci_hcd.11: new USB bus registered, assigned bus number 56
[ 11.014154][ T1] usb usb56: We don't know the algorithms for LPM for this host, disabling LPM.
[ 11.015047][ T1] usb usb56: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 11.015609][ T1] usb usb56: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.016107][ T1] usb usb56: Product: USB/IP Virtual Host Controller
[ 11.016520][ T1] usb usb56: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.016931][ T1] usb usb56: SerialNumber: vhci_hcd.11
[ 11.020977][ T1] hub 56-0:1.0: USB hub found
[ 11.021410][ T1] hub 56-0:1.0: 8 ports detected
[ 11.026321][ T1] vhci_hcd vhci_hcd.12: USB/IP Virtual Host Controller
[ 11.027244][ T1] vhci_hcd vhci_hcd.12: new USB bus registered, assigned bus number 57
[ 11.028210][ T1] usb usb57: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 11.028784][ T1] usb usb57: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.029289][ T1] usb usb57: Product: USB/IP Virtual Host Controller
[ 11.029711][ T1] usb usb57: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.030119][ T1] usb usb57: SerialNumber: vhci_hcd.12
[ 11.031814][ T1] hub 57-0:1.0: USB hub found
[ 11.032238][ T1] hub 57-0:1.0: 8 ports detected
[ 11.036126][ T1] vhci_hcd vhci_hcd.12: USB/IP Virtual Host Controller
[ 11.037276][ T1] vhci_hcd vhci_hcd.12: new USB bus registered, assigned bus number 58
[ 11.038117][ T1] usb usb58: We don't know the algorithms for LPM for this host, disabling LPM.
[ 11.039060][ T1] usb usb58: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 11.039641][ T1] usb usb58: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.040148][ T1] usb usb58: Product: USB/IP Virtual Host Controller
[ 11.040568][ T1] usb usb58: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.040980][ T1] usb usb58: SerialNumber: vhci_hcd.12
[ 11.042747][ T1] hub 58-0:1.0: USB hub found
[ 11.043172][ T1] hub 58-0:1.0: 8 ports detected
[ 11.048324][ T1] vhci_hcd vhci_hcd.13: USB/IP Virtual Host Controller
[ 11.049317][ T1] vhci_hcd vhci_hcd.13: new USB bus registered, assigned bus number 59
[ 11.050300][ T1] usb usb59: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 11.050945][ T1] usb usb59: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.051507][ T1] usb usb59: Product: USB/IP Virtual Host Controller
[ 11.051949][ T1] usb usb59: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.052387][ T1] usb usb59: SerialNumber: vhci_hcd.13
[ 11.054267][ T1] hub 59-0:1.0: USB hub found
[ 11.054735][ T1] hub 59-0:1.0: 8 ports detected
[ 11.059011][ T1] vhci_hcd vhci_hcd.13: USB/IP Virtual Host Controller
[ 11.059980][ T1] vhci_hcd vhci_hcd.13: new USB bus registered, assigned bus number 60
[ 11.060751][ T1] usb usb60: We don't know the algorithms for LPM for this host, disabling LPM.
[ 11.061686][ T1] usb usb60: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 11.062293][ T1] usb usb60: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.062832][ T1] usb usb60: Product: USB/IP Virtual Host Controller
[ 11.063260][ T1] usb usb60: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.063695][ T1] usb usb60: SerialNumber: vhci_hcd.13
[ 11.065531][ T1] hub 60-0:1.0: USB hub found
[ 11.065975][ T1] hub 60-0:1.0: 8 ports detected
[ 11.071231][ T1] vhci_hcd vhci_hcd.14: USB/IP Virtual Host Controller
[ 11.072212][ T1] vhci_hcd vhci_hcd.14: new USB bus registered, assigned bus number 61
[ 11.073170][ T1] usb usb61: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 11.073821][ T1] usb usb61: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.074327][ T1] usb usb61: Product: USB/IP Virtual Host Controller
[ 11.074752][ T1] usb usb61: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.075179][ T1] usb usb61: SerialNumber: vhci_hcd.14
[ 11.076916][ T1] hub 61-0:1.0: USB hub found
[ 11.077374][ T1] hub 61-0:1.0: 8 ports detected
[ 11.081880][ T1] vhci_hcd vhci_hcd.14: USB/IP Virtual Host Controller
[ 11.082847][ T1] vhci_hcd vhci_hcd.14: new USB bus registered, assigned bus number 62
[ 11.083607][ T1] usb usb62: We don't know the algorithms for LPM for this host, disabling LPM.
[ 11.084570][ T1] usb usb62: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
[ 11.085150][ T1] usb usb62: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.085678][ T1] usb usb62: Product: USB/IP Virtual Host Controller
[ 11.086096][ T1] usb usb62: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.086541][ T1] usb usb62: SerialNumber: vhci_hcd.14
[ 11.088424][ T1] hub 62-0:1.0: USB hub found
[ 11.088879][ T1] hub 62-0:1.0: 8 ports detected
[ 11.094074][ T1] vhci_hcd vhci_hcd.15: USB/IP Virtual Host Controller
[ 11.095026][ T1] vhci_hcd vhci_hcd.15: new USB bus registered, assigned bus number 63
[ 11.096023][ T1] usb usb63: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
[ 11.096611][ T1] usb usb63: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 11.097131][ T1] usb usb63: Product: USB/IP Virtual Host Controller
[ 11.097562][ T1] usb usb63: Manufacturer: Linux 6.19.0-rc6 vhci_hcd
[ 11.098039][ T1] usb usb63: SerialNumber: vhci_hcd.15
[ 11.099851][ T1] hub 63-0:1.0: USB hub found
[ 11.100394][ T1] hub 63-0:1.0: 8 ports detected
[ 11.104770][ T1] vhci_hcd vhci_hcd.15: USB/IP Virtual Host Controller
[ 11.105261][ T1] usbcore: failed to get bus number
[ 11.105598][ T1] vhci_hcd vhci_hcd.15: error -E2BIG: usb_add_hcd ss failed
[ 11.106065][ T1] vhci_hcd vhci_hcd.15: remove, state 4
[ 11.106424][ T1] usb usb63: USB disconnect, device number 1
[ 11.111256][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.111643][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.112005][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.112419][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.112764][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.113113][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.113563][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.113906][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.114258][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.114638][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.114975][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.115324][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.115711][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.116050][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.116399][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.116783][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.117130][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.117510][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.117945][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.118312][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.118689][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.119077][ T13] vhci_hcd vhci_hcd.15: stop threads
[ 11.119460][ T13] vhci_hcd vhci_hcd.15: release socket
[ 11.119800][ T13] vhci_hcd vhci_hcd.15: disconnect device
[ 11.120165][ T1] vhci_hcd vhci_hcd.15: USB bus 63 deregistered
[ 11.121484][ T1] vhci_hcd vhci_hcd.15: probe with driver vhci_hcd failed with error -7
[ 11.122381][ T1] usbcore: registered new device driver usbip-host
[ 11.126320][ T1] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
[ 11.130837][ T1] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 11.132051][ T1] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 11.135386][ T1] mousedev: PS/2 mouse device common for all mice
[ 11.138275][ T1] usbcore: registered new interface driver appletouch
[ 11.138927][ T1] usbcore: registered new interface driver bcm5974
[ 11.139726][ T1] usbcore: registered new interface driver synaptics_usb
[ 11.140387][ T1] usbcore: registered new interface driver iforce
[ 11.140954][ T1] usbcore: registered new interface driver pxrc
[ 11.141619][ T1] usbcore: registered new interface driver xpad
[ 11.142176][ T1] usbcore: registered new interface driver usb_acecad
[ 11.142883][ T1] usbcore: registered new interface driver aiptek
[ 11.143470][ T1] usbcore: registered new interface driver hanwang
[ 11.144028][ T1] usbcore: registered new interface driver kbtab
[ 11.144613][ T1] usbcore: registered new interface driver pegasus_notetaker
[ 11.145294][ T1] usbcore: registered new interface driver usbtouchscreen
[ 11.145890][ T1] usbcore: registered new interface driver sur40
[ 11.146418][ T1] usbcore: registered new interface driver ati_remote2
[ 11.146879][ T1] cm109: Keymap for Komunikate KIP1000 phone loaded
[ 11.147449][ T1] usbcore: registered new interface driver cm109
[ 11.148010][ T119] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
[ 11.155282][ T1] cm109: CM109 phone driver: 20080805 (C) Alfred E. Heggestad
[ 11.156259][ T1] usbcore: registered new interface driver ims_pcu
[ 11.156976][ T1] usbcore: registered new interface driver keyspan_remote
[ 11.157802][ T1] usbcore: registered new interface driver powermate
[ 11.158912][ T1] usbcore: registered new interface driver yealink
[ 11.160882][ T1] rtc_cmos 00:05: RTC can wake from S4
[ 11.164206][ T1] rtc_cmos 00:05: registered as rtc0
[ 11.164624][ T1] rtc_cmos 00:05: alarms up to one day, y3k, 242 bytes nvram, hpet irqs
[ 11.165813][ T1] i2c_dev: i2c /dev entries driver
[ 11.166811][ T1] usbcore: registered new interface driver i2c-diolan-u2c
[ 11.168705][ T1] usbcore: registered new interface driver i2c-cp2615
[ 11.169427][ T1] usbcore: registered new interface driver RobotFuzz Open Source InterFace, OSIF
[ 11.170382][ T1] usbcore: registered new interface driver i2c-tiny-usb
[ 11.173262][ T1] usbcore: registered new interface driver igorplugusb
[ 11.174034][ T1] usbcore: registered new interface driver iguanair
[ 11.174770][ T1] usbcore: registered new interface driver imon
[ 11.175404][ T1] usbcore: registered new interface driver imon_raw
[ 11.176109][ T1] usbcore: registered new interface driver mceusb
[ 11.176789][ T1] usbcore: registered new interface driver redrat3
[ 11.177484][ T1] usbcore: registered new interface driver streamzap
[ 11.179114][ T1] usbcore: registered new interface driver ir_toy
[ 11.179784][ T1] usbcore: registered new interface driver ttusbir
[ 11.181773][ T1] usbcore: registered new interface driver ati_remote
[ 11.182643][ T1] usbcore: registered new interface driver xbox_remote
[ 11.184798][ T1] b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded successfully
[ 11.185979][ T1] usbcore: registered new interface driver b2c2_flexcop_usb
[ 11.186750][ T1] usbcore: registered new interface driver dvb_usb_vp7045
[ 11.187483][ T1] usbcore: registered new interface driver dvb_usb_vp702x
[ 11.188619][ T1] usbcore: registered new interface driver dvb_usb_gp8psk
[ 11.189343][ T1] usbcore: registered new interface driver dvb_usb_dtt200u
[ 11.190034][ T1] usbcore: registered new interface driver dvb_usb_a800
[ 11.190751][ T1] usbcore: registered new interface driver dvb_usb_dibusb_mb
[ 11.191505][ T1] usbcore: registered new interface driver dvb_usb_dibusb_mc
[ 11.192246][ T1] usbcore: registered new interface driver dvb_usb_nova_t_usb2
[ 11.193019][ T1] usbcore: registered new interface driver dvb_usb_umt_010
[ 11.193833][ T1] usbcore: registered new interface driver dvb_usb_m920x
[ 11.194532][ T1] usbcore: registered new interface driver dvb_usb_digitv
[ 11.195242][ T1] usbcore: registered new interface driver dvb_usb_cxusb
[ 11.195924][ T1] usbcore: registered new interface driver dvb_usb_ttusb2
[ 11.196670][ T1] usbcore: registered new interface driver dvb_usb_dib0700
[ 11.197375][ T1] usbcore: registered new interface driver opera1
[ 11.198167][ T1] usbcore: registered new interface driver dvb_usb_af9005
[ 11.198684][ T1] failing symbol_get of non-GPLONLY symbol af9005_rc_decode.
[ 11.199544][ T1] failing symbol_get of non-GPLONLY symbol af9005_rc_decode.
[ 11.200059][ T1] failing symbol_get of non-GPLONLY symbol rc_map_af9005_table.
[ 11.200867][ T1] failing symbol_get of non-GPLONLY symbol rc_map_af9005_table.
[ 11.201396][ T1] failing symbol_get of non-GPLONLY symbol rc_map_af9005_table_size.
[ 11.202310][ T1] failing symbol_get of non-GPLONLY symbol rc_map_af9005_table_size.
[ 11.202881][ T1] af9005: af9005_rc_decode function not found, disabling remote
[ 11.203742][ T1] usbcore: registered new interface driver pctv452e
[ 11.204483][ T1] usbcore: registered new interface driver dw2102
[ 11.205156][ T1] usbcore: registered new interface driver dvb_usb_dtv5100
[ 11.205897][ T1] usbcore: registered new interface driver cinergyT2
[ 11.206571][ T1] usbcore: registered new interface driver dvb_usb_az6027
[ 11.207293][ T1] usbcore: registered new interface driver dvb_usb_technisat_usb2
[ 11.208189][ T1] usbcore: registered new interface driver dvb_usb_af9015
[ 11.208952][ T1] usbcore: registered new interface driver dvb_usb_af9035
[ 11.209644][ T1] usbcore: registered new interface driver dvb_usb_anysee
[ 11.210314][ T1] usbcore: registered new interface driver dvb_usb_au6610
[ 11.211029][ T1] usbcore: registered new interface driver dvb_usb_az6007
[ 11.211769][ T1] usbcore: registered new interface driver dvb_usb_ce6230
[ 11.212518][ T1] usbcore: registered new interface driver dvb_usb_ec168
[ 11.213241][ T1] usbcore: registered new interface driver dvb_usb_lmedm04
[ 11.213920][ T1] usbcore: registered new interface driver dvb_usb_gl861
[ 11.214614][ T1] usbcore: registered new interface driver dvb_usb_mxl111sf
[ 11.215305][ T1] usbcore: registered new interface driver dvb_usb_rtl28xxu
[ 11.215981][ T1] usbcore: registered new interface driver dvb_usb_dvbsky
[ 11.216657][ T1] usbcore: registered new interface driver zd1301
[ 11.217317][ T1] usbcore: registered new interface driver s2255
[ 11.218029][ T1] usbcore: registered new interface driver smsusb
[ 11.218689][ T1] usbcore: registered new interface driver ttusb
[ 11.219316][ T1] usbcore: registered new interface driver ttusb-dec
[ 11.219991][ T1] usbcore: registered new interface driver Abilis Systems as10x usb driver
[ 11.220821][ T1] usbcore: registered new interface driver airspy
[ 11.221253][ T1] gspca_main: v2.14.0 registered
[ 11.221863][ T1] usbcore: registered new interface driver benq
[ 11.222497][ T1] usbcore: registered new interface driver conex
[ 11.223139][ T1] usbcore: registered new interface driver cpia1
[ 11.223776][ T1] usbcore: registered new interface driver dtcs033
[ 11.224496][ T1] usbcore: registered new interface driver etoms
[ 11.225224][ T1] usbcore: registered new interface driver finepix
[ 11.225898][ T1] usbcore: registered new interface driver jeilinj
[ 11.226564][ T1] usbcore: registered new interface driver jl2005bcd
[ 11.227246][ T1] usbcore: registered new interface driver kinect
[ 11.228288][ T1] usbcore: registered new interface driver konica
[ 11.230225][ T1] usbcore: registered new interface driver mars
[ 11.230886][ T1] usbcore: registered new interface driver mr97310a
[ 11.231579][ T1] usbcore: registered new interface driver nw80x
[ 11.232249][ T1] usbcore: registered new interface driver ov519
[ 11.232926][ T1] usbcore: registered new interface driver ov534
[ 11.233606][ T1] usbcore: registered new interface driver ov534_9
[ 11.234270][ T1] usbcore: registered new interface driver pac207
[ 11.234941][ T1] usbcore: registered new interface driver gspca_pac7302
[ 11.235647][ T1] usbcore: registered new interface driver pac7311
[ 11.236309][ T1] usbcore: registered new interface driver se401
[ 11.236965][ T1] usbcore: registered new interface driver sn9c2028
[ 11.237663][ T1] usbcore: registered new interface driver gspca_sn9c20x
[ 11.238505][ T1] usbcore: registered new interface driver sonixb
[ 11.239193][ T1] usbcore: registered new interface driver sonixj
[ 11.239849][ T1] usbcore: registered new interface driver spca500
[ 11.240507][ T1] usbcore: registered new interface driver spca501
[ 11.241203][ T1] usbcore: registered new interface driver spca505
[ 11.241873][ T1] usbcore: registered new interface driver spca506
[ 11.242535][ T1] usbcore: registered new interface driver spca508
[ 11.243225][ T1] usbcore: registered new interface driver spca561
[ 11.243900][ T1] usbcore: registered new interface driver spca1528
[ 11.244544][ T1] usbcore: registered new interface driver sq905
[ 11.245175][ T1] usbcore: registered new interface driver sq905c
[ 11.245828][ T1] usbcore: registered new interface driver sq930x
[ 11.246565][ T1] usbcore: registered new interface driver sunplus
[ 11.247242][ T1] usbcore: registered new interface driver stk014
[ 11.247996][ T1] usbcore: registered new interface driver stk1135
[ 11.250040][ T1] usbcore: registered new interface driver stv0680
[ 11.250717][ T1] usbcore: registered new interface driver t613
[ 11.251291][ T1] usbcore: registered new interface driver gspca_topro
[ 11.251910][ T1] usbcore: registered new interface driver touptek
[ 11.252462][ T1] usbcore: registered new interface driver tv8532
[ 11.253036][ T1] usbcore: registered new interface driver vc032x
[ 11.253583][ T1] usbcore: registered new interface driver vicam
[ 11.254127][ T1] usbcore: registered new interface driver xirlink-cit
[ 11.254742][ T1] usbcore: registered new interface driver gspca_zc3xx
[ 11.255318][ T1] usbcore: registered new interface driver ALi m5602
[ 11.255885][ T1] usbcore: registered new interface driver STV06xx
[ 11.256422][ T1] usbcore: registered new interface driver gspca_gl860
[ 11.256995][ T1] usbcore: registered new interface driver hackrf
[ 11.257539][ T1] usbcore: registered new interface driver msi2500
[ 11.259520][ T1] usbcore: registered new interface driver Philips webcam
[ 11.260399][ T1] usbcore: registered new interface driver uvcvideo
[ 11.260828][ T1] au0828: au0828 driver loaded
[ 11.261422][ T1] usbcore: registered new interface driver au0828
[ 11.262114][ T1] usbcore: registered new interface driver cx231xx
[ 11.262933][ T1] usbcore: registered new interface driver em28xx
[ 11.263373][ T1] em28xx: Registered (Em28xx v4l2 Extension) extension
[ 11.263819][ T1] em28xx: Registered (Em28xx Audio Extension) extension
[ 11.264268][ T1] em28xx: Registered (Em28xx dvb Extension) extension
[ 11.264728][ T1] em28xx: Registered (Em28xx Input Extension) extension
[ 11.265464][ T1] usbcore: registered new interface driver go7007
[ 11.266125][ T1] usbcore: registered new interface driver go7007-loader
[ 11.266954][ T1] usbcore: registered new interface driver hdpvr
[ 11.268341][ T1] usbcore: registered new interface driver pvrusb2
[ 11.268804][ T1] pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner
[ 11.269347][ T1] pvrusb2: Debug mask is 31 (0x1f)
[ 11.269958][ T1] usbcore: registered new interface driver stk1160
[ 11.270749][ T1] usbcore: registered new interface driver usbtv
[ 11.272977][ T1] dvbdev: DVB: registering new adapter (dvb_vidtv_bridge)
[ 11.275199][ T1] i2c i2c-0: DVB: registering adapter 0 frontend 0 (Dummy demod for DVB-T/T2/C/S/S2)...
[ 11.276013][ T1] dvbdev: dvb_create_media_entity: media entity 'Dummy demod for DVB-T/T2/C/S/S2' registered.
[ 11.279778][ T1] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[ 11.283122][ T1] vidtv vidtv.0: Successfully initialized vidtv!
[ 11.284876][ T1] vicodec vicodec.0: Device 'stateful-encoder' registered as /dev/video0
[ 11.285918][ T1] vicodec vicodec.0: Device 'stateful-decoder' registered as /dev/video1
[ 11.286857][ T1] vicodec vicodec.0: Device 'stateless-decoder' registered as /dev/video2
[ 11.290461][ T1] vim2m vim2m.0: Device registered as /dev/video3
[ 11.303413][ T1] vivid-000: using single planar format API
[ 11.313278][ T1] vivid-000: CEC adapter cec0 registered for HDMI input
[ 11.314326][ T1] vivid-000: V4L2 capture device registered as video7
[ 11.315188][ T1] vivid-000: CEC adapter cec1 registered for HDMI output 0
[ 11.316045][ T1] vivid-000: V4L2 output device registered as video8
[ 11.316821][ T1] vivid-000: V4L2 capture device registered as vbi0, supports raw and sliced VBI
[ 11.317824][ T1] vivid-000: V4L2 output device registered as vbi1, supports raw and sliced VBI
[ 11.318967][ T1] vivid-000: V4L2 capture device registered as swradio0
[ 11.319841][ T1] vivid-000: V4L2 receiver device registered as radio0
[ 11.320660][ T1] vivid-000: V4L2 transmitter device registered as radio1
[ 11.321532][ T1] vivid-000: V4L2 metadata capture device registered as video9
[ 11.322411][ T1] vivid-000: V4L2 metadata output device registered as video10
[ 11.323292][ T1] vivid-000: V4L2 touch capture device registered as v4l-touch0
[ 11.324189][ T1] vivid-001: using multiplanar format API
[ 11.330840][ T1] vivid-001: CEC adapter cec2 registered for HDMI input
[ 11.331784][ T1] vivid-001: V4L2 capture device registered as video11
[ 11.332583][ T1] vivid-001: CEC adapter cec3 registered for HDMI output 0
[ 11.333425][ T1] vivid-001: V4L2 output device registered as video12
[ 11.334228][ T1] vivid-001: V4L2 capture device registered as vbi2, supports raw and sliced VBI
[ 11.335195][ T1] vivid-001: V4L2 output device registered as vbi3, supports raw and sliced VBI
[ 11.336215][ T1] vivid-001: V4L2 capture device registered as swradio1
[ 11.337094][ T1] vivid-001: V4L2 receiver device registered as radio2
[ 11.338018][ T1] vivid-001: V4L2 transmitter device registered as radio3
[ 11.338851][ T1] vivid-001: V4L2 metadata capture device registered as video13
[ 11.339660][ T1] vivid-001: V4L2 metadata output device registered as video14
[ 11.340545][ T1] vivid-001: V4L2 touch capture device registered as v4l-touch1
[ 11.341654][ T1] vivid-002: using single planar format API
[ 11.348153][ T1] vivid-002: CEC adapter cec4 registered for HDMI input
[ 11.349069][ T1] vivid-002: V4L2 capture device registered as video15
[ 11.350270][ T1] vivid-002: CEC adapter cec5 registered for HDMI output 0
[ 11.351205][ T1] vivid-002: V4L2 output device registered as video16
[ 11.352166][ T1] vivid-002: V4L2 capture device registered as vbi4, supports raw and sliced VBI
[ 11.353110][ T1] vivid-002: V4L2 output device registered as vbi5, supports raw and sliced VBI
[ 11.354095][ T1] vivid-002: V4L2 capture device registered as swradio2
[ 11.354904][ T1] vivid-002: V4L2 receiver device registered as radio4
[ 11.355703][ T1] vivid-002: V4L2 transmitter device registered as radio5
[ 11.356530][ T1] vivid-002: V4L2 metadata capture device registered as video17
[ 11.357388][ T1] vivid-002: V4L2 metadata output device registered as video18
[ 11.358617][ T1] vivid-002: V4L2 touch capture device registered as v4l-touch2
[ 11.359392][ T1] vivid-003: using multiplanar format API
[ 11.365678][ T1] vivid-003: CEC adapter cec6 registered for HDMI input
[ 11.366545][ T1] vivid-003: V4L2 capture device registered as video19
[ 11.367343][ T1] vivid-003: CEC adapter cec7 registered for HDMI output 0
[ 11.368210][ T1] vivid-003: V4L2 output device registered as video20
[ 11.369137][ T1] vivid-003: V4L2 capture device registered as vbi6, supports raw and sliced VBI
[ 11.371487][ T1] vivid-003: V4L2 output device registered as vbi7, supports raw and sliced VBI
[ 11.372560][ T1] vivid-003: V4L2 capture device registered as swradio3
[ 11.373364][ T1] vivid-003: V4L2 receiver device registered as radio6
[ 11.374147][ T1] vivid-003: V4L2 transmitter device registered as radio7
[ 11.374959][ T1] vivid-003: V4L2 metadata capture device registered as video21
[ 11.375810][ T1] vivid-003: V4L2 metadata output device registered as video22
[ 11.376616][ T1] vivid-003: V4L2 touch capture device registered as v4l-touch3
[ 11.377459][ T1] vivid-004: using single planar format API
[ 11.384007][ T1] vivid-004: CEC adapter cec8 registered for HDMI input
[ 11.384961][ T1] vivid-004: V4L2 capture device registered as video23
[ 11.385788][ T1] vivid-004: CEC adapter cec9 registered for HDMI output 0
[ 11.386615][ T1] vivid-004: V4L2 output device registered as video24
[ 11.387399][ T1] vivid-004: V4L2 capture device registered as vbi8, supports raw and sliced VBI
[ 11.388399][ T1] vivid-004: V4L2 output device registered as vbi9, supports raw and sliced VBI
[ 11.389492][ T1] vivid-004: V4L2 capture device registered as swradio4
[ 11.390365][ T1] vivid-004: V4L2 receiver device registered as radio8
[ 11.391140][ T1] vivid-004: V4L2 transmitter device registered as radio9
[ 11.393203][ T1] vivid-004: V4L2 metadata capture device registered as video25
[ 11.394083][ T1] vivid-004: V4L2 metadata output device registered as video26
[ 11.394929][ T1] vivid-004: V4L2 touch capture device registered as v4l-touch4
[ 11.395717][ T1] vivid-005: using multiplanar format API
[ 11.401897][ T1] vivid-005: CEC adapter cec10 registered for HDMI input
[ 11.402800][ T1] vivid-005: V4L2 capture device registered as video27
[ 11.403663][ T1] vivid-005: CEC adapter cec11 registered for HDMI output 0
[ 11.404526][ T1] vivid-005: V4L2 output device registered as video28
[ 11.405327][ T1] vivid-005: V4L2 capture device registered as vbi10, supports raw and sliced VBI
[ 11.406304][ T1] vivid-005: V4L2 output device registered as vbi11, supports raw and sliced VBI
[ 11.407295][ T1] vivid-005: V4L2 capture device registered as swradio5
[ 11.408344][ T1] vivid-005: V4L2 receiver device registered as radio10
[ 11.409171][ T1] vivid-005: V4L2 transmitter device registered as radio11
[ 11.410016][ T1] vivid-005: V4L2 metadata capture device registered as video29
[ 11.410876][ T1] vivid-005: V4L2 metadata output device registered as video30
[ 11.411821][ T1] vivid-005: V4L2 touch capture device registered as v4l-touch5
[ 11.412680][ T1] vivid-006: using single planar format API
[ 11.419541][ T1] vivid-006: CEC adapter cec12 registered for HDMI input
[ 11.420465][ T1] vivid-006: V4L2 capture device registered as video31
[ 11.421261][ T1] vivid-006: CEC adapter cec13 registered for HDMI output 0
[ 11.422166][ T1] vivid-006: V4L2 output device registered as video32
[ 11.423044][ T1] vivid-006: V4L2 capture device registered as vbi12, supports raw and sliced VBI
[ 11.424044][ T1] vivid-006: V4L2 output device registered as vbi13, supports raw and sliced VBI
[ 11.425166][ T1] vivid-006: V4L2 capture device registered as swradio6
[ 11.426009][ T1] vivid-006: V4L2 receiver device registered as radio12
[ 11.426858][ T1] vivid-006: V4L2 transmitter device registered as radio13
[ 11.427678][ T1] vivid-006: V4L2 metadata capture device registered as video33
[ 11.428589][ T1] vivid-006: V4L2 metadata output device registered as video34
[ 11.429440][ T1] vivid-006: V4L2 touch capture device registered as v4l-touch6
[ 11.430368][ T1] vivid-007: using multiplanar format API
[ 11.436897][ T1] vivid-007: CEC adapter cec14 registered for HDMI input
[ 11.437952][ T1] vivid-007: V4L2 capture device registered as video35
[ 11.438816][ T1] vivid-007: CEC adapter cec15 registered for HDMI output 0
[ 11.439619][ T1] vivid-007: V4L2 output device registered as video36
[ 11.440353][ T1] vivid-007: V4L2 capture device registered as vbi14, supports raw and sliced VBI
[ 11.441276][ T1] vivid-007: V4L2 output device registered as vbi15, supports raw and sliced VBI
[ 11.442247][ T1] vivid-007: V4L2 capture device registered as swradio7
[ 11.443272][ T1] vivid-007: V4L2 receiver device registered as radio14
[ 11.444148][ T1] vivid-007: V4L2 transmitter device registered as radio15
[ 11.444978][ T1] vivid-007: V4L2 metadata capture device registered as video37
[ 11.445894][ T1] vivid-007: V4L2 metadata output device registered as video38
[ 11.446795][ T1] vivid-007: V4L2 touch capture device registered as v4l-touch7
[ 11.447708][ T1] vivid-008: using single planar format API
[ 11.454207][ T1] vivid-008: CEC adapter cec16 registered for HDMI input
[ 11.455110][ T1] vivid-008: V4L2 capture device registered as video39
[ 11.455898][ T1] vivid-008: CEC adapter cec17 registered for HDMI output 0
[ 11.456715][ T1] vivid-008: V4L2 output device registered as video40
[ 11.457590][ T1] vivid-008: V4L2 capture device registered as vbi16, supports raw and sliced VBI
[ 11.458574][ T1] vivid-008: V4L2 output device registered as vbi17, supports raw and sliced VBI
[ 11.459513][ T1] vivid-008: V4L2 capture device registered as swradio8
[ 11.460322][ T1] vivid-008: V4L2 receiver device registered as radio16
[ 11.461260][ T1] vivid-008: V4L2 transmitter device registered as radio17
[ 11.462112][ T1] vivid-008: V4L2 metadata capture device registered as video41
[ 11.462964][ T1] vivid-008: V4L2 metadata output device registered as video42
[ 11.463855][ T1] vivid-008: V4L2 touch capture device registered as v4l-touch8
[ 11.464861][ T1] vivid-009: using multiplanar format API
[ 11.471498][ T1] vivid-009: CEC adapter cec18 registered for HDMI input
[ 11.472463][ T1] vivid-009: V4L2 capture device registered as video43
[ 11.473272][ T1] vivid-009: CEC adapter cec19 registered for HDMI output 0
[ 11.474150][ T1] vivid-009: V4L2 output device registered as video44
[ 11.475005][ T1] vivid-009: V4L2 capture device registered as vbi18, supports raw and sliced VBI
[ 11.475979][ T1] vivid-009: V4L2 output device registered as vbi19, supports raw and sliced VBI
[ 11.476957][ T1] vivid-009: V4L2 capture device registered as swradio9
[ 11.477793][ T1] vivid-009: V4L2 receiver device registered as radio18
[ 11.478808][ T1] vivid-009: V4L2 transmitter device registered as radio19
[ 11.479658][ T1] vivid-009: V4L2 metadata capture device registered as video45
[ 11.480541][ T1] vivid-009: V4L2 metadata output device registered as video46
[ 11.481335][ T1] vivid-009: V4L2 touch capture device registered as v4l-touch9
[ 11.482154][ T1] vivid-010: using single planar format API
[ 11.489381][ T1] vivid-010: CEC adapter cec20 registered for HDMI input
[ 11.490249][ T1] vivid-010: V4L2 capture device registered as video47
[ 11.491130][ T1] vivid-010: CEC adapter cec21 registered for HDMI output 0
[ 11.492040][ T1] vivid-010: V4L2 output device registered as video48
[ 11.492846][ T1] vivid-010: V4L2 capture device registered as vbi20, supports raw and sliced VBI
[ 11.493755][ T1] vivid-010: V4L2 output device registered as vbi21, supports raw and sliced VBI
[ 11.494650][ T1] vivid-010: V4L2 capture device registered as swradio10
[ 11.495417][ T1] vivid-010: V4L2 receiver device registered as radio20
[ 11.496212][ T1] vivid-010: V4L2 transmitter device registered as radio21
[ 11.497005][ T1] vivid-010: V4L2 metadata capture device registered as video49
[ 11.497816][ T1] vivid-010: V4L2 metadata output device registered as video50
[ 11.498673][ T1] vivid-010: V4L2 touch capture device registered as v4l-touch10
[ 11.499559][ T1] vivid-011: using multiplanar format API
[ 11.505857][ T1] vivid-011: CEC adapter cec22 registered for HDMI input
[ 11.506757][ T1] vivid-011: V4L2 capture device registered as video51
[ 11.507532][ T1] vivid-011: CEC adapter cec23 registered for HDMI output 0
[ 11.508600][ T1] vivid-011: V4L2 output device registered as video52
[ 11.509625][ T1] vivid-011: V4L2 capture device registered as vbi22, supports raw and sliced VBI
[ 11.510581][ T1] vivid-011: V4L2 output device registered as vbi23, supports raw and sliced VBI
[ 11.511562][ T1] vivid-011: V4L2 capture device registered as swradio11
[ 11.512374][ T1] vivid-011: V4L2 receiver device registered as radio22
[ 11.513254][ T1] vivid-011: V4L2 transmitter device registered as radio23
[ 11.514171][ T1] vivid-011: V4L2 metadata capture device registered as video53
[ 11.514979][ T1] vivid-011: V4L2 metadata output device registered as video54
[ 11.515779][ T1] vivid-011: V4L2 touch capture device registered as v4l-touch11
[ 11.516590][ T1] vivid-012: using single planar format API
[ 11.522463][ T1] vivid-012: CEC adapter cec24 registered for HDMI input
[ 11.523353][ T1] vivid-012: V4L2 capture device registered as video55
[ 11.524164][ T1] vivid-012: CEC adapter cec25 registered for HDMI output 0
[ 11.524984][ T1] vivid-012: V4L2 output device registered as video56
[ 11.525739][ T1] vivid-012: V4L2 capture device registered as vbi24, supports raw and sliced VBI
[ 11.526670][ T1] vivid-012: V4L2 output device registered as vbi25, supports raw and sliced VBI
[ 11.527669][ T1] vivid-012: V4L2 capture device registered as swradio12
[ 11.528668][ T1] vivid-012: V4L2 receiver device registered as radio24
[ 11.529440][ T1] vivid-012: V4L2 transmitter device registered as radio25
[ 11.530288][ T1] vivid-012: V4L2 metadata capture device registered as video57
[ 11.531196][ T1] vivid-012: V4L2 metadata output device registered as video58
[ 11.532023][ T1] vivid-012: V4L2 touch capture device registered as v4l-touch12
[ 11.533049][ T1] vivid-013: using multiplanar format API
[ 11.539622][ T1] vivid-013: CEC adapter cec26 registered for HDMI input
[ 11.540556][ T1] vivid-013: V4L2 capture device registered as video59
[ 11.541365][ T1] vivid-013: CEC adapter cec27 registered for HDMI output 0
[ 11.542241][ T1] vivid-013: V4L2 output device registered as video60
[ 11.543050][ T1] vivid-013: V4L2 capture device registered as vbi26, supports raw and sliced VBI
[ 11.544012][ T1] vivid-013: V4L2 output device registered as vbi27, supports raw and sliced VBI
[ 11.545076][ T1] vivid-013: V4L2 capture device registered as swradio13
[ 11.545951][ T1] vivid-013: V4L2 receiver device registered as radio26
[ 11.546766][ T1] vivid-013: V4L2 transmitter device registered as radio27
[ 11.547634][ T1] vivid-013: V4L2 metadata capture device registered as video61
[ 11.548674][ T1] vivid-013: V4L2 metadata output device registered as video62
[ 11.549541][ T1] vivid-013: V4L2 touch capture device registered as v4l-touch13
[ 11.550404][ T1] vivid-014: using single planar format API
[ 11.556867][ T1] vivid-014: CEC adapter cec28 registered for HDMI input
[ 11.557812][ T1] vivid-014: V4L2 capture device registered as video63
[ 11.558773][ T1] vivid-014: CEC adapter cec29 registered for HDMI output 0
[ 11.559661][ T1] vivid-014: V4L2 output device registered as video64
[ 11.560422][ T1] vivid-014: V4L2 capture device registered as vbi28, supports raw and sliced VBI
[ 11.561460][ T1] vivid-014: V4L2 output device registered as vbi29, supports raw and sliced VBI
[ 11.562421][ T1] vivid-014: V4L2 capture device registered as swradio14
[ 11.563272][ T1] vivid-014: V4L2 receiver device registered as radio28
[ 11.564085][ T1] vivid-014: V4L2 transmitter device registered as radio29
[ 11.564901][ T1] vivid-014: V4L2 metadata capture device registered as video65
[ 11.565737][ T1] vivid-014: V4L2 metadata output device registered as video66
[ 11.566628][ T1] vivid-014: V4L2 touch capture device registered as v4l-touch14
[ 11.567499][ T1] vivid-015: using multiplanar format API
[ 11.575695][ T119] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input3
[ 11.577981][ T1] vivid-015: CEC adapter cec30 registered for HDMI input
[ 11.578997][ T1] vivid-015: V4L2 capture device registered as video67
[ 11.579890][ T1] vivid-015: CEC adapter cec31 registered for HDMI output 0
[ 11.580772][ T1] vivid-015: V4L2 output device registered as video68
[ 11.581578][ T1] vivid-015: V4L2 capture device registered as vbi30, supports raw and sliced VBI
[ 11.582606][ T1] vivid-015: V4L2 output device registered as vbi31, supports raw and sliced VBI
[ 11.583528][ T1] vivid-015: V4L2 capture device registered as swradio15
[ 11.584414][ T1] vivid-015: V4L2 receiver device registered as radio30
[ 11.585262][ T1] vivid-015: V4L2 transmitter device registered as radio31
[ 11.586122][ T1] vivid-015: V4L2 metadata capture device registered as video69
[ 11.587001][ T1] vivid-015: V4L2 metadata output device registered as video70
[ 11.587965][ T1] vivid-015: V4L2 touch capture device registered as v4l-touch15
[ 11.588875][ T1] vivid-016: using single planar format API
[ 11.595033][ T1] vivid-016: CEC adapter cec32 registered for HDMI input
[ 11.595901][ T1] vivid-016: V4L2 capture device registered as video71
[ 11.596735][ T1] vivid-016: CEC adapter cec33 registered for HDMI output 0
[ 11.597618][ T1] vivid-016: V4L2 output device registered as video72
[ 11.598530][ T1] vivid-016: V4L2 capture device registered as vbi32, supports raw and sliced VBI
[ 11.599476][ T1] vivid-016: V4L2 output device registered as vbi33, supports raw and sliced VBI
[ 11.600430][ T1] vivid-016: V4L2 capture device registered as swradio16
[ 11.601241][ T1] vivid-016: V4L2 receiver device registered as radio32
[ 11.602236][ T1] vivid-016: V4L2 transmitter device registered as radio33
[ 11.603135][ T1] vivid-016: V4L2 metadata capture device registered as video73
[ 11.603996][ T1] vivid-016: V4L2 metadata output device registered as video74
[ 11.604844][ T1] vivid-016: V4L2 touch capture device registered as v4l-touch16
[ 11.605699][ T1] vivid-017: using multiplanar format API
[ 11.612135][ T1] vivid-017: CEC adapter cec34 registered for HDMI input
[ 11.613020][ T1] vivid-017: V4L2 capture device registered as video75
[ 11.613866][ T1] vivid-017: CEC adapter cec35 registered for HDMI output 0
[ 11.614772][ T1] vivid-017: V4L2 output device registered as video76
[ 11.615574][ T1] vivid-017: V4L2 capture device registered as vbi34, supports raw and sliced VBI
[ 11.616546][ T1] vivid-017: V4L2 output device registered as vbi35, supports raw and sliced VBI
[ 11.617497][ T1] vivid-017: V4L2 capture device registered as swradio17
[ 11.618336][ T1] vivid-017: V4L2 receiver device registered as radio34
[ 11.619133][ T1] vivid-017: V4L2 transmitter device registered as radio35
[ 11.619929][ T1] vivid-017: V4L2 metadata capture device registered as video77
[ 11.620794][ T1] vivid-017: V4L2 metadata output device registered as video78
[ 11.621657][ T1] vivid-017: V4L2 touch capture device registered as v4l-touch17
[ 11.622529][ T1] vivid-018: using single planar format API
[ 11.630085][ T1] vivid-018: CEC adapter cec36 registered for HDMI input
[ 11.630974][ T1] vivid-018: V4L2 capture device registered as video79
[ 11.631788][ T1] vivid-018: CEC adapter cec37 registered for HDMI output 0
[ 11.632681][ T1] vivid-018: V4L2 output device registered as video80
[ 11.633513][ T1] vivid-018: V4L2 capture device registered as vbi36, supports raw and sliced VBI
[ 11.634480][ T1] vivid-018: V4L2 output device registered as vbi37, supports raw and sliced VBI
[ 11.635421][ T1] vivid-018: V4L2 capture device registered as swradio18
[ 11.636240][ T1] vivid-018: V4L2 receiver device registered as radio36
[ 11.637012][ T1] vivid-018: V4L2 transmitter device registered as radio37
[ 11.637894][ T1] vivid-018: V4L2 metadata capture device registered as video81
[ 11.638991][ T1] vivid-018: V4L2 metadata output device registered as video82
[ 11.639924][ T1] vivid-018: V4L2 touch capture device registered as v4l-touch18
[ 11.640773][ T1] vivid-019: using multiplanar format API
[ 11.647052][ T1] vivid-019: CEC adapter cec38 registered for HDMI input
[ 11.648028][ T1] vivid-019: V4L2 capture device registered as video83
[ 11.649053][ T1] vivid-019: CEC adapter cec39 registered for HDMI output 0
[ 11.649969][ T1] vivid-019: V4L2 output device registered as video84
[ 11.650975][ T1] vivid-019: V4L2 capture device registered as vbi38, supports raw and sliced VBI
[ 11.652103][ T1] vivid-019: V4L2 output device registered as vbi39, supports raw and sliced VBI
[ 11.653143][ T1] vivid-019: V4L2 capture device registered as swradio19
[ 11.654049][ T1] vivid-019: V4L2 receiver device registered as radio38
[ 11.654888][ T1] vivid-019: V4L2 transmitter device registered as radio39
[ 11.655727][ T1] vivid-019: V4L2 metadata capture device registered as video85
[ 11.656564][ T1] vivid-019: V4L2 metadata output device registered as video86
[ 11.657421][ T1] vivid-019: V4L2 touch capture device registered as v4l-touch19
[ 11.658319][ T1] vivid-020: using single planar format API
[ 11.664899][ T1] vivid-020: CEC adapter cec40 registered for HDMI input
[ 11.665810][ T1] vivid-020: V4L2 capture device registered as video87
[ 11.666870][ T1] vivid-020: CEC adapter cec41 registered for HDMI output 0
[ 11.667794][ T1] vivid-020: V4L2 output device registered as video88
[ 11.668866][ T1] vivid-020: V4L2 capture device registered as vbi40, supports raw and sliced VBI
[ 11.669852][ T1] vivid-020: V4L2 output device registered as vbi41, supports raw and sliced VBI
[ 11.670839][ T1] vivid-020: V4L2 capture device registered as swradio20
[ 11.671694][ T1] vivid-020: V4L2 receiver device registered as radio40
[ 11.672574][ T1] vivid-020: V4L2 transmitter device registered as radio41
[ 11.673437][ T1] vivid-020: V4L2 metadata capture device registered as video89
[ 11.674315][ T1] vivid-020: V4L2 metadata output device registered as video90
[ 11.675198][ T1] vivid-020: V4L2 touch capture device registered as v4l-touch20
[ 11.676064][ T1] vivid-021: using multiplanar format API
[ 11.682264][ T1] vivid-021: CEC adapter cec42 registered for HDMI input
[ 11.683149][ T1] vivid-021: V4L2 capture device registered as video91
[ 11.683961][ T1] vivid-021: CEC adapter cec43 registered for HDMI output 0
[ 11.684833][ T1] vivid-021: V4L2 output device registered as video92
[ 11.685673][ T1] vivid-021: V4L2 capture device registered as vbi42, supports raw and sliced VBI
[ 11.686689][ T1] vivid-021: V4L2 output device registered as vbi43, supports raw and sliced VBI
[ 11.687712][ T1] vivid-021: V4L2 capture device registered as swradio21
[ 11.688761][ T1] vivid-021: V4L2 receiver device registered as radio42
[ 11.689714][ T1] vivid-021: V4L2 transmitter device registered as radio43
[ 11.690664][ T1] vivid-021: V4L2 metadata capture device registered as video93
[ 11.691753][ T1] vivid-021: V4L2 metadata output device registered as video94
[ 11.692753][ T1] vivid-021: V4L2 touch capture device registered as v4l-touch21
[ 11.693670][ T1] vivid-022: using single planar format API
[ 11.700168][ T1] vivid-022: CEC adapter cec44 registered for HDMI input
[ 11.701071][ T1] vivid-022: V4L2 capture device registered as video95
[ 11.701921][ T1] vivid-022: CEC adapter cec45 registered for HDMI output 0
[ 11.702821][ T1] vivid-022: V4L2 output device registered as video96
[ 11.703692][ T1] vivid-022: V4L2 capture device registered as vbi44, supports raw and sliced VBI
[ 11.704738][ T1] vivid-022: V4L2 output device registered as vbi45, supports raw and sliced VBI
[ 11.705789][ T1] vivid-022: V4L2 capture device registered as swradio22
[ 11.706722][ T1] vivid-022: V4L2 receiver device registered as radio44
[ 11.707565][ T1] vivid-022: V4L2 transmitter device registered as radio45
[ 11.708525][ T1] vivid-022: V4L2 metadata capture device registered as video97
[ 11.709471][ T1] vivid-022: V4L2 metadata output device registered as video98
[ 11.710498][ T1] vivid-022: V4L2 touch capture device registered as v4l-touch22
[ 11.711477][ T1] vivid-023: using multiplanar format API
[ 11.718182][ T1] vivid-023: CEC adapter cec46 registered for HDMI input
[ 11.719088][ T1] vivid-023: V4L2 capture device registered as video99
[ 11.719892][ T1] vivid-023: CEC adapter cec47 registered for HDMI output 0
[ 11.720711][ T1] vivid-023: V4L2 output device registered as video100
[ 11.721502][ T1] vivid-023: V4L2 capture device registered as vbi46, supports raw and sliced VBI
[ 11.722559][ T1] vivid-023: V4L2 output device registered as vbi47, supports raw and sliced VBI
[ 11.723517][ T1] vivid-023: V4L2 capture device registered as swradio23
[ 11.724354][ T1] vivid-023: V4L2 receiver device registered as radio46
[ 11.725249][ T1] vivid-023: V4L2 transmitter device registered as radio47
[ 11.726079][ T1] vivid-023: V4L2 metadata capture device registered as video101
[ 11.727067][ T1] vivid-023: V4L2 metadata output device registered as video102
[ 11.728103][ T1] vivid-023: V4L2 touch capture device registered as v4l-touch23
[ 11.729050][ T1] vivid-024: using single planar format API
[ 11.735253][ T1] vivid-024: CEC adapter cec48 registered for HDMI input
[ 11.736171][ T1] vivid-024: V4L2 capture device registered as video103
[ 11.737048][ T1] vivid-024: CEC adapter cec49 registered for HDMI output 0
[ 11.737553][ T1] videodev: could not get a free minor
[ 11.746907][ T1] usbcore: registered new interface driver radioshark2
[ 11.747737][ T1] usbcore: registered new interface driver radioshark
[ 11.748660][ T1] usbcore: registered new interface driver radio-si470x
[ 11.749520][ T1] usbcore: registered new interface driver radio-usb-si4713
[ 11.750234][ T1] usbcore: registered new interface driver dsbr100
[ 11.750903][ T1] usbcore: registered new interface driver radio-keene
[ 11.751595][ T1] usbcore: registered new interface driver radio-ma901
[ 11.752285][ T1] usbcore: registered new interface driver radio-mr800
[ 11.752961][ T1] usbcore: registered new interface driver radio-raremono
[ 11.754225][ T1] pps_ldisc: PPS line discipline registered
[ 11.757130][ T1] usbcore: registered new interface driver powerz
[ 11.757927][ T1] usbcore: registered new interface driver pcwd_usb
[ 11.759572][ T1] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.
[ 11.760453][ T1] device-mapper: uevent: version 1.0.3
[ 11.761365][ T1] device-mapper: ioctl: 4.50.0-ioctl (2025-04-28) initialised: dm-devel@lists.linux.dev
[ 11.762613][ T1] device-mapper: multipath round-robin: version 1.2.0 loaded
[ 11.763129][ T1] device-mapper: multipath queue-length: version 0.2.0 loaded
[ 11.763627][ T1] device-mapper: multipath service-time: version 0.3.0 loaded
[ 11.764762][ T1] Bluetooth: HCI UART driver ver 2.3
[ 11.765117][ T1] Bluetooth: HCI UART protocol H4 registered
[ 11.765502][ T1] Bluetooth: HCI UART protocol BCSP registered
[ 11.766052][ T1] Bluetooth: HCI UART protocol LL registered
[ 11.766615][ T1] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 11.767215][ T1] Bluetooth: HCI UART protocol QCA registered
[ 11.767614][ T1] Bluetooth: HCI UART protocol AG6XX registered
[ 11.768307][ T1] Bluetooth: HCI UART protocol Marvell registered
[ 11.769216][ T1] usbcore: registered new interface driver bcm203x
[ 11.769902][ T1] usbcore: registered new interface driver bpa10x
[ 11.770558][ T1] usbcore: registered new interface driver bfusb
[ 11.771318][ T1] usbcore: registered new interface driver btusb
[ 11.772061][ T1] usbcore: registered new interface driver ath3k
[ 11.772868][ T1] Modular ISDN core version 1.1.29
[ 11.773700][ T1] NET: Registered PF_ISDN protocol family
[ 11.774075][ T1] DSP module 2.0
[ 11.774303][ T1] mISDN_dsp: DSP clocks every 80 samples. This equals 1 jiffies.
[ 11.776592][ T1] mISDN: Layer-1-over-IP driver Rev. 2.00
[ 11.777149][ T1] 0 virtual devices registered
[ 11.777802][ T1] usbcore: registered new interface driver HFC-S_USB
[ 11.778291][ T1] intel_pstate: CPU model not supported
[ 11.778671][ T1] VUB300 Driver rom wait states = 1C irqpoll timeout = 0400
[ 11.779510][ T1] usbcore: registered new interface driver vub300
[ 11.780669][ T1] usbcore: registered new interface driver ushc
[ 11.784477][ T1] iscsi: registered transport (iser)
[ 11.785570][ T1] SoftiWARP attached
[ 11.793778][ T1] hid: raw HID events driver (C) Jiri Kosina
[ 11.815863][ T1] usbcore: registered new interface driver usbhid
[ 11.816340][ T1] usbhid: USB HID core driver
[ 11.825937][ T1] usbcore: registered new interface driver es2_ap_driver
[ 11.826460][ T1] comedi: version 0.7.76 - http://www.comedi.org
[ 11.829314][ T1] comedi comedi0: comedi_test: 1000000 microvolt, 100000 microsecond waveform attached
[ 11.835393][ T1] comedi comedi0: driver 'comedi_test' has successfully auto-configured 'comedi_test'.
[ 11.836486][ T1] usbcore: registered new interface driver dt9812
[ 11.837174][ T1] usbcore: registered new interface driver ni6501
[ 11.837937][ T1] usbcore: registered new interface driver usbdux
[ 11.838628][ T1] usbcore: registered new interface driver usbduxfast
[ 11.839281][ T1] usbcore: registered new interface driver usbduxsigma
[ 11.839959][ T1] usbcore: registered new interface driver vmk80xx
[ 11.840592][ T1] greybus: registered new driver hid
[ 11.841311][ T1] greybus: registered new driver gbphy
[ 11.841916][ T1] gb_gbphy: registered new driver usb
[ 11.842496][ T1] asus_wmi: ASUS WMI generic driver loaded
[ 11.845131][ T1] gnss: GNSS driver registered with major 492
[ 11.845803][ T1] usbcore: registered new interface driver gnss-usb
[ 11.846379][ T1] usbcore: registered new interface driver hdm_usb
[ 11.900632][ T1] usbcore: registered new interface driver snd-usb-audio
[ 11.902630][ T1] usbcore: registered new interface driver snd-ua101
[ 11.904592][ T1] usbcore: registered new interface driver snd-usb-usx2y
[ 11.906721][ T1] usbcore: registered new interface driver snd-usb-us122l
[ 11.908795][ T1] usbcore: registered new interface driver snd-usb-caiaq
[ 11.911065][ T1] usbcore: registered new interface driver snd-usb-6fire
[ 11.913071][ T1] usbcore: registered new interface driver snd-usb-hiface
[ 11.915009][ T1] usbcore: registered new interface driver snd-bcd2000
[ 11.916822][ T1] usbcore: registered new interface driver snd_usb_pod
[ 11.918975][ T1] usbcore: registered new interface driver snd_usb_podhd
[ 11.920944][ T1] usbcore: registered new interface driver snd_usb_toneport
[ 11.923309][ T1] usbcore: registered new interface driver snd_usb_variax
[ 11.929969][ T1] drop_monitor: Initializing network drop monitor service
[ 11.931918][ T1] NET: Registered PF_LLC protocol family
[ 11.933311][ T1] GACT probability on
[ 11.934217][ T1] Mirror/redirect action on
[ 11.935306][ T1] Simple TC action Loaded
[ 11.942613][ T1] netem: version 1.3
[ 11.943545][ T1] u32 classifier
[ 11.944453][ T1] Performance counters on
[ 11.945500][ T1] input device check on
[ 11.946432][ T1] Actions configured
[ 11.948380][ T1] nf_conntrack_irc: failed to register helpers
[ 11.949716][ T1] nf_conntrack_sane: failed to register helpers
[ 12.058620][ T1] nf_conntrack_sip: failed to register helpers
[ 12.063090][ T1] xt_time: kernel timezone is -0000
[ 12.064370][ T1] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
[ 12.066028][ T1] IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
[ 12.068291][ T1] IPVS: ipvs loaded.
[ 12.069146][ T1] IPVS: [rr] scheduler registered.
[ 12.070222][ T1] IPVS: [wrr] scheduler registered.
[ 12.071308][ T1] IPVS: [lc] scheduler registered.
[ 12.072399][ T1] IPVS: [wlc] scheduler registered.
[ 12.073486][ T1] IPVS: [fo] scheduler registered.
[ 12.074559][ T1] IPVS: [ovf] scheduler registered.
[ 12.075739][ T1] IPVS: [lblc] scheduler registered.
[ 12.076788][ T1] IPVS: [lblcr] scheduler registered.
[ 12.078094][ T1] IPVS: [dh] scheduler registered.
[ 12.079166][ T1] IPVS: [sh] scheduler registered.
[ 12.080219][ T1] IPVS: [mh] scheduler registered.
[ 12.081272][ T1] IPVS: [sed] scheduler registered.
[ 12.082406][ T1] IPVS: [nq] scheduler registered.
[ 12.083491][ T1] IPVS: [twos] scheduler registered.
[ 12.084762][ T1] IPVS: [sip] pe registered.
[ 12.085917][ T1] ipip: IPv4 and MPLS over IPv4 tunneling driver
[ 12.090582][ T1] gre: GRE over IPv4 demultiplexer driver
[ 12.091816][ T1] ip_gre: GRE over IPv4 tunneling driver
[ 12.099992][ T1] IPv4 over IPsec tunneling driver
[ 12.114479][ T1] Initializing XFRM netlink socket
[ 12.115683][ T1] IPsec XFRM device driver
[ 12.117004][ T1] NET: Registered PF_INET6 protocol family
[ 12.144961][ T1] Segment Routing with IPv6
[ 12.145963][ T1] RPL Segment Routing with IPv6
[ 12.147094][ T1] In-situ OAM (IOAM) with IPv6
[ 12.148302][ T1] mip6: Mobile IPv6
[ 12.151949][ T1] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 12.158866][ T1] ip6_gre: GRE over IPv6 tunneling driver
[ 12.162829][ T1] NET: Registered PF_PACKET protocol family
[ 12.164097][ T1] PFKEY is deprecated and scheduled to be removed in 2027, please contact the netdev mailing list
[ 12.166387][ T1] NET: Registered PF_KEY protocol family
[ 12.167912][ T1] Bridge firewalling registered
[ 12.179628][ T1] NET: Registered PF_X25 protocol family
[ 12.180850][ T1] X25: Linux Version 0.2
[ 12.221231][ T1] NET: Registered PF_NETROM protocol family
[ 12.259627][ T1] NET: Registered PF_ROSE protocol family
[ 12.260162][ T1] NET: Registered PF_AX25 protocol family
[ 12.260576][ T1] can: controller area network core
[ 12.261022][ T1] NET: Registered PF_CAN protocol family
[ 12.261387][ T1] can: raw protocol
[ 12.261692][ T1] can: broadcast manager protocol
[ 12.262056][ T1] can: netlink gateway - max_hops=1
[ 12.262437][ T1] can: SAE J1939
[ 12.262706][ T1] can: isotp protocol (max_pdu_size 8300)
[ 12.263611][ T1] Bluetooth: RFCOMM TTY layer initialized
[ 12.264076][ T1] Bluetooth: RFCOMM socket layer initialized
[ 12.264657][ T1] Bluetooth: RFCOMM ver 1.11
[ 12.265113][ T1] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 12.265542][ T1] Bluetooth: BNEP filters: protocol multicast
[ 12.265956][ T1] Bluetooth: BNEP socket layer initialized
[ 12.266345][ T1] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 12.266801][ T1] Bluetooth: HIDP socket layer initialized
[ 12.279715][ T1] NET: Registered PF_RXRPC protocol family
[ 12.280123][ T1] Key type rxrpc registered
[ 12.280409][ T1] Key type rxrpc_s registered
[ 12.291978][ T1] NET: Registered PF_KCM protocol family
[ 12.293685][ T1] lec:lane_module_init: lec.c: initialized
[ 12.294938][ T1] mpoa:atm_mpoa_init: mpc.c: initialized
[ 12.295817][ T1] l2tp_core: L2TP core driver, V2.0
[ 12.296178][ T1] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[ 12.296581][ T1] l2tp_ip: L2TP IP encapsulation support (L2TPv3)
[ 12.297087][ T1] l2tp_netlink: L2TP netlink interface
[ 12.297526][ T1] l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
[ 12.298028][ T1] l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
[ 12.298632][ T1] NET: Registered PF_PHONET protocol family
[ 12.299125][ T1] 8021q: 802.1Q VLAN Support v1.8
[ 12.299611][ T1] sctp: Hash tables configured (bind 32/56)
[ 12.310781][ T1] NET: Registered PF_RDS protocol family
[ 12.321694][ T1] Registered RDS/infiniband transport
[ 12.322525][ T1] Registered RDS/tcp transport
[ 12.322868][ T1] tipc: Activated (version 2.0.0)
[ 12.323453][ T1] NET: Registered PF_TIPC protocol family
[ 12.324188][ T1] tipc: Started in single node mode
[ 12.324587][ T1] 9pnet: Installing 9P2000 support
[ 12.325284][ T1] NET: Registered PF_CAIF protocol family
[ 12.327330][ T1] NET: Registered PF_IEEE802154 protocol family
[ 12.328057][ T1] Key type dns_resolver registered
[ 12.328484][ T1] Key type ceph registered
[ 12.339615][ T1] libceph: loaded (mon/osd proto 15/24)
[ 12.351877][ T1] batman_adv: B.A.T.M.A.N. advanced 2025.5 (compatibility version 15) loaded
[ 12.353863][ T1] openvswitch: Open vSwitch switching datapath
[ 12.356779][ T1] NET: Registered PF_VSOCK protocol family
[ 12.358751][ T1] mpls_gso: MPLS GSO support
[ 12.371956][ T1] IPI shorthand broadcast: enabled
[ 12.775417][ T1] sched_clock: Marking stable (12760012484, 7830616)->(12786791142, -18948042)
[ 12.792776][ T1] registered taskstats version 1
[ 12.797714][ T1] Loading compiled-in X.509 certificates
[ 12.813682][ T1] Loaded X.509 cert 'Build time autogenerated kernel key: c26b3edd4e3d6bc43cd28d65c9fae6a71021842d'
[ 12.929721][ T1] zswap: loaded using pool 842
[ 12.931855][ T1] Demotion targets for Node 0: null
[ 12.932243][ T1] Demotion targets for Node 1: null
[ 12.932686][ T1] debug_vm_pgtable: [debug_vm_pgtable ]: Validating architecture page table helpers
[ 12.934617][ T1] Key type .fscrypt registered
[ 12.935008][ T1] Key type fscrypt-provisioning registered
[ 12.936801][ T1] kAFS: Red Hat AFS client v0.1 registering.
[ 12.966551][ T1] Btrfs loaded, assert=on, zoned=yes, fsverity=yes
[ 12.967358][ T1] Key type big_key registered
[ 12.967714][ T1] Key type encrypted registered
[ 12.968116][ T1] AppArmor: AppArmor sha256 policy hashing enabled
[ 12.968577][ T1] ima: No TPM chip found, activating TPM-bypass!
[ 12.969099][ T1] Loading compiled-in module X.509 certificates
[ 12.979167][ T1] Loaded X.509 cert 'Build time autogenerated kernel key: c26b3edd4e3d6bc43cd28d65c9fae6a71021842d'
[ 12.979937][ T1] ima: Allocated hash algorithm: sha256
[ 12.980471][ T1] ima: No architecture policies found
[ 12.981124][ T1] evm: Initialising EVM extended attributes:
[ 12.981521][ T1] evm: security.selinux (disabled)
[ 12.981845][ T1] evm: security.SMACK64 (disabled)
[ 12.982174][ T1] evm: security.SMACK64EXEC (disabled)
[ 12.982553][ T1] evm: security.SMACK64TRANSMUTE (disabled)
[ 12.982967][ T1] evm: security.SMACK64MMAP (disabled)
[ 12.983346][ T1] evm: security.apparmor
[ 12.983695][ T1] evm: security.ima
[ 12.983958][ T1] evm: security.capability
[ 12.984252][ T1] evm: HMAC attrs: 0x1
[ 12.985570][ T1] PM: Magic number: 10:866:980
[ 12.985900][ T1] net rose18: hash matches
[ 12.986382][ T1] tty ttyc7: hash matches
[ 12.986816][ T1] netconsole: network logging started
[ 12.987453][ T1] gtp: GTP module loaded (pdp ctx size 128 bytes)
[ 12.999464][ T1] rdma_rxe: loaded
[ 13.000307][ T1] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 13.001788][ T1] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 13.002682][ T1] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
[ 13.003315][ T1] clk: Disabling unused clocks
[ 13.004068][ T1] ALSA device list:
[ 13.004316][ T1] #0: Dummy 1
[ 13.004552][ T1] #1: Loopback 1
[ 13.004782][ T1] #2: Virtual MIDI Card 1
[ 13.005982][ T1] check access for rdinit=/init failed: -2, ignoring
[ 13.006286][ T1] md: Waiting for all devices to be available before autodetect
[ 13.006617][ T1] md: If you don't use raid, use raid=noautodetect
[ 13.006890][ T1] md: Autodetecting RAID arrays.
[ 13.007119][ T1] md: autorun ...
[ 13.007279][ T1] md: ... autorun DONE.
[ 13.012613][ T24] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2
[ 13.013047][ T24] faux_driver regulatory: Falling back to sysfs fallback for: regulatory.db
[ 13.033438][ T1] EXT4-fs (sda): mounted filesystem 06d0679e-cae9-4a12-8b2f-e888be35acf1 ro with ordered data mode. Quota mode: none.
[ 13.034186][ T1] VFS: Mounted root (ext4 filesystem) readonly on device 8:0.
[ 13.035446][ T1] devtmpfs: mounted
[ 13.060919][ T1] Freeing unused kernel image (initmem) memory: 25944K
[ 13.061378][ T1] Write protecting the kernel read-only data: 208896k
[ 13.066081][ T1] Freeing unused kernel image (text/rodata gap) memory: 532K
[ 13.067446][ T1] Freeing unused kernel image (rodata/data gap) memory: 356K
[ 13.110526][ T1] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 13.112984][ T1] Failed to set sysctl parameter 'max_rcu_stall_to_panic=1': parameter not found
[ 13.113601][ T1] Run /sbin/init as init process
[ 13.239761][ T5213] modprobe (5213) used greatest stack depth: 22264 bytes left
[ 13.245601][ T1] systemd[1]: systemd 247.3-7+deb11u5 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[ 13.247664][ T1] systemd[1]: Detected virtualization kvm.
[ 13.248705][ T1] systemd[1]: Detected architecture x86-64.
Welcome to [1mDebian GNU/Linux 11 (bullseye)[0m!
[ 13.253322][ T1] systemd[1]: Set hostname to <syzkaller>.
[ 13.529278][ T5220] systemd-fstab-g (5220) used greatest stack depth: 20104 bytes left
[ 13.752059][ T1] systemd[1]: Queued start job for default target Graphical Interface.
[ 13.758741][ T1] systemd[1]: Created slice system-getty.slice.
[[0;32m OK [0m] Created slice [0;1;39msystem-getty.slice[0m.
[ 13.761997][ T1] systemd[1]: Created slice system-modprobe.slice.
[[0;32m OK [0m] Created slice [0;1;39msystem-modprobe.slice[0m.
[ 13.765021][ T1] systemd[1]: Created slice system-serial\x2dgetty.slice.
[[0;32m OK [0m] Created slice [0;1;39msystem-serial\x2dgetty.slice[0m.
[ 13.766623][ T1] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[[0;32m OK [0m] Started [0;1;39mDispatch Password …ts to Console Directory Watch[0m.
[ 13.769869][ T1] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[[0;32m OK [0m] Started [0;1;39mForward Password R…uests to Wall Directory Watch[0m.
[ 13.772512][ T1] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[[0;32m OK [0m] Set up automount [0;1;39mArbitrary…s File System Automount Point[0m.
[ 13.773886][ T1] systemd[1]: Reached target Local Encrypted Volumes.
[[0;32m OK [0m] Reached target [0;1;39mLocal Encrypted Volumes[0m.
[ 13.774943][ T1] systemd[1]: Reached target Paths.
[[0;32m OK [0m] Reached target [0;1;39mPaths[0m.
[ 13.775794][ T1] systemd[1]: Reached target Remote File Systems.
[[0;32m OK [0m] Reached target [0;1;39mRemote File Systems[0m.
[ 13.776743][ T1] systemd[1]: Reached target Slices.
[[0;32m OK [0m] Reached target [0;1;39mSlices[0m.
[ 13.777725][ T1] systemd[1]: Reached target Swap.
[[0;32m OK [0m] Reached target [0;1;39mSwap[0m.
[ 13.779318][ T1] systemd[1]: Listening on Syslog Socket.
[[0;32m OK [0m] Listening on [0;1;39mSyslog Socket[0m.
[ 13.781061][ T1] systemd[1]: Listening on initctl Compatibility Named Pipe.
[[0;32m OK [0m] Listening on [0;1;39minitctl Compatibility Named Pipe[0m.
[ 13.783650][ T1] systemd[1]: Listening on Journal Audit Socket.
[[0;32m OK [0m] Listening on [0;1;39mJournal Audit Socket[0m.
[ 13.785315][ T1] systemd[1]: Listening on Journal Socket (/dev/log).
[[0;32m OK [0m] Listening on [0;1;39mJournal Socket (/dev/log)[0m.
[ 13.787120][ T1] systemd[1]: Listening on Journal Socket.
[[0;32m OK [0m] Listening on [0;1;39mJournal Socket[0m.
[ 13.789433][ T1] systemd[1]: Listening on udev Control Socket.
[[0;32m OK [0m] Listening on [0;1;39mudev Control Socket[0m.
[ 13.791278][ T1] systemd[1]: Listening on udev Kernel Socket.
[[0;32m OK [0m] Listening on [0;1;39mudev Kernel Socket[0m.
[ 13.792290][ T1] systemd[1]: Reached target Sockets.
[[0;32m OK [0m] Reached target [0;1;39mSockets[0m.
[ 13.799513][ T1] systemd[1]: Mounting Huge Pages File System...
Mounting [0;1;39mHuge Pages File System[0m...
[ 13.806967][ T1] systemd[1]: Mounting POSIX Message Queue File System...
Mounting [0;1;39mPOSIX Message Queue File System[0m...
[ 13.814484][ T1] systemd[1]: Mounting /proc/sys/fs/binfmt_misc...
Mounting [0;1;39m/proc/sys/fs/binfmt_misc[0m...
[ 13.821441][ T1] systemd[1]: Mounting /sys/kernel/config...
Mounting [0;1;39m/sys/kernel/config[0m...
[ 13.848069][ T1] systemd[1]: Mounting /sys/kernel/debug...
Mounting [0;1;39m/sys/kernel/debug[0m...
[ 13.857148][ T1] systemd[1]: Mounting Kernel Trace File System...
Mounting [0;1;39mKernel Trace File System[0m...
[ 13.861826][ T1] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
[ 13.880313][ T1] systemd[1]: Starting Load Kernel Module fuse...
Starting [0;1;39mLoad Kernel Module fuse[0m...
[ 13.896540][ T1] systemd[1]: Starting Journal Service...
Starting [0;1;39mJournal Service[0m...
[ 13.906983][ T1] systemd[1]: Starting Load Kernel Modules...
Starting [0;1;39mLoad Kernel Modules[0m...
[ 13.914550][ T1] systemd[1]: Starting Remount Root and Kernel File Systems...
Starting [0;1;39mRemount Root and Kernel File Systems[0m...
[ 13.921808][ T1] systemd[1]: Starting Coldplug All udev Devices...
Starting [0;1;39mColdplug All udev Devices[0m...
[ 13.949954][ T1] systemd[1]: Mounted Huge Pages File System.
[[0;32m OK [0m] Mounted [0;1;39mHuge Pages File System[0m.
[ 13.951696][ T1] systemd[1]: Mounted POSIX Message Queue File System.
[[0;32m OK [0m] Mounted [0;1;39mPOSIX Message Queue File System[0m.
[ 13.958713][ T1] systemd[1]: Mounted /proc/sys/fs/binfmt_misc.
[[0;32m OK [0m] Mounted [0;1;39m/proc/sys/fs/binfmt_misc[0m.
[ 13.960324][ T1] systemd[1]: Mounted /sys/kernel/config.
[[0;32m OK [0m] Mounted [0;1;39m/sys/kernel/config[0m.
[ 13.961878][ T1] systemd[1]: Mounted /sys/kernel/debug.
[[0;32m OK [0m] Mounted [0;1;39m/sys/kernel/debug[0m.
[ 13.963419][ T1] systemd[1]: Mounted Kernel Trace File System.
[[0;32m OK [0m] Mounted [0;1;39mKernel Trace File System[0m.
[ 13.966461][ T1] systemd[1]: modprobe@fuse.service: Succeeded.
[ 13.988065][ T1] systemd[1]: Finished Load Kernel Module fuse.
[[0;32m OK [0m] Finished [0;1;39mLoad Kernel Module fuse[0m.
[ 14.018770][ T1] systemd[1]: Mounting FUSE Control File System...
Mounting [0;1;39mFUSE Control File System[0m...
[ 14.021188][ T1] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[ 14.040807][ T1] systemd[1]: Finished Load Kernel Modules.
[[0;32m OK [0m] Finished [0;1;39mLoad Kernel Modules[0m.
[ 14.065435][ T1] systemd[1]: Starting Apply Kernel Variables...
Starting [0;1;39mApply Kernel Variables[0m...
[ 14.088540][ T5241] EXT4-fs (sda): re-mounted 06d0679e-cae9-4a12-8b2f-e888be35acf1 r/w.
[ 14.128070][ T1] systemd[1]: Finished Remount Root and Kernel File Systems.
[[0;32m OK [0m] Finished [0;1;39mRemount Root and Kernel File Systems[0m.
[ 14.130164][ T1] systemd[1]: Mounted FUSE Control File System.
[[0;32m OK [0m] Mounted [0;1;39mFUSE Control File System[0m.
[ 14.132839][ T1] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[ 14.133536][ T1] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[ 14.149849][ T1] systemd[1]: Starting Load/Save Random Seed...
Starting [0;1;39mLoad/Save Random Seed[0m...
[ 14.179602][ T1] systemd[1]: Starting Create System Users...
Starting [0;1;39mCreate System Users[0m...
[ 14.197934][ T1] systemd[1]: Finished Apply Kernel Variables.
[[0;32m OK [0m] Finished [0;1;39mApply Kernel Variables[0m.
[ 14.356152][ T1] systemd[1]: Finished Load/Save Random Seed.
[[0;32m OK [0m] Finished [0;1;39mLoad/Save Random Seed[0m.
[ 14.370194][ T1] systemd[1]: Condition check resulted in First Boot Complete being skipped.
[ 14.416670][ T1] systemd[1]: Finished Create System Users.
[[0;32m OK [0m] Finished [0;1;39mCreate System Users[0m.
[ 14.438468][ T1] systemd[1]: Starting Create Static Device Nodes in /dev...
Starting [0;1;39mCreate Static Device Nodes in /dev[0m...
[ 14.574824][ T1] systemd[1]: Finished Create Static Device Nodes in /dev.
[[0;32m OK [0m] Finished [0;1;39mCreate Static Device Nodes in /dev[0m.
[ 14.576828][ T1] systemd[1]: Reached target Local File Systems (Pre).
[[0;32m OK [0m] Reached target [0;1;39mLocal File Systems (Pre)[0m.
[ 14.578029][ T1] systemd[1]: Reached target Local File Systems.
[[0;32m OK [0m] Reached target [0;1;39mLocal File Systems[0m.
[ 14.598626][ T1] systemd[1]: Starting Mark the need to relabel after reboot...
Starting [0;1;39mMark the need to relabel after reboot[0m...
[ 14.600537][ T1] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
[ 14.601595][ T1] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
[ 14.628368][ T1] systemd[1]: Starting Rule-based Manager for Device Events and Files...
Starting [0;1;39mRule-based Manage…for Device Events and Files[0m...
[ 14.647993][ T1] systemd[1]: Finished Mark the need to relabel after reboot.
[[0;32m OK [0m] Finished [0;1;39mMark the need to relabel after reboot[0m.
[ 14.833003][ T1] systemd[1]: Started Rule-based Manager for Device Events and Files.
[[0;32m OK [0m] Started [0;1;39mRule-based Manager for Device Events and Files[0m.
[ 14.903407][ T1] systemd[1]: Started Journal Service.
[[0;32m OK [0m] Started [0;1;39mJournal Service[0m.
Starting [0;1;39mFlush Journal to Persistent Storage[0m...
[ 14.972138][ T5236] systemd-journald[5236]: Received client request to flush runtime journal.
[[0;32m OK [0m] Finished [0;1;39mFlush Journal to Persistent Storage[0m.
Starting [0;1;39mCreate Volatile Files and Directories[0m...
[[0;32m OK [0m] Finished [0;1;39mCreate Volatile Files and Directories[0m.
Starting [0;1;39mUpdate UTMP about System Boot/Shutdown[0m...
[[0;32m OK [0m] Finished [0;1;39mUpdate UTMP about System Boot/Shutdown[0m.
[[0m[0;31m* [0m] (1 of 2) A start job is running for…g All udev Devices (3s / no limit)
[ 17.897970][ T24] cfg80211: failed to load regulatory.db
M
[K[[0;1;31m*[0m[0;31m* [0m] (1 of 2) A start job is running for…g All udev Devices (4s / no limit)
M
[K[[0;32m OK [0m] Reached target [0;1;39mHardware activated USB gadget[0m.
[K[[0;32m OK [0m] Reached target [0;1;39mSound Card[0m.
[[0;32m OK [0m] Finished [0;1;39mColdplug All udev Devices[0m.
[[0;32m OK [0m] Reached target [0;1;39mSystem Initialization[0m.
[[0;32m OK [0m] Started [0;1;39mDaily apt download activities[0m.
[[0;32m OK [0m] Started [0;1;39mDaily apt upgrade and clean activities[0m.
[[0;32m OK [0m] Started [0;1;39mPeriodic ext4 Onli…ata Check for All Filesystems[0m.
[[0;32m OK [0m] Started [0;1;39mDiscard unused blocks once a week[0m.
[[0;32m OK [0m] Started [0;1;39mDaily rotation of log files[0m.
[[0;32m OK [0m] Started [0;1;39mDaily Cleanup of Temporary Directories[0m.
[[0;32m OK [0m] Reached target [0;1;39mBasic System[0m.
[[0;32m OK [0m] Reached target [0;1;39mTimers[0m.
[[0;32m OK [0m] Started [0;1;39mRegular background program processing daemon[0m.
Starting [0;1;39mRemove Stale Onli…t4 Metadata Check Snapshots[0m...
Starting [0;1;39mgetty on tty2-tty…nd logind are not available[0m...
Starting [0;1;39mHelper to synchronize boot up for ifupdown[0m...
Starting [0;1;39mSystem Logging Service[0m...
[[0;32m OK [0m] Finished [0;1;39mgetty on tty2-tty… and logind are not available[0m.
[[0;32m OK [0m] Started [0;1;39mSystem Logging Service[0m.
[[0;32m OK [0m] Found device [0;1;39m/dev/ttyS0[0m.
[[0;32m OK [0m] Listening on [0;1;39mLoad/Save RF …itch Status /dev/rfkill Watch[0m.
Starting [0;1;39mLoad/Save RF Kill Switch Status[0m...
[[0;31m*[0;1;31m*[0m[0;31m* [0m] (1 of 3) A start job is running for…ot up for ifupdown (10s / 3min 5s)
M
[K[ [0;31m*[0;1;31m*[0m[0;31m* [0m] (2 of 3) A start job is running for…e RF Kill Switch Status (2s / 30s)
M
[K[[0;32m OK [0m] Started [0;1;39mLoad/Save RF Kill Switch Status[0m.
[K[[0;32m OK [0m] Finished [0;1;39mRemove Stale Onli…ext4 Metadata Check Snapshots[0m.
[[0;32m OK [0m] Finished [0;1;39mHelper to synchronize boot up for ifupdown[0m.
Starting [0;1;39mRaise network interfaces[0m...
[ 25.855920][ T9686] 8021q: adding VLAN 0 to HW filter on device eth0
[ 25.873924][ T24] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[[0;32m OK [0m] Finished [0;1;39mRaise network interfaces[0m.
[[0;32m OK [0m] Reached target [0;1;39mNetwork[0m.
Starting [0;1;39mOpenBSD Secure Shell server[0m...
Starting [0;1;39mPermit User Sessions[0m...
[[0;32m OK [0m] Finished [0;1;39mPermit User Sessions[0m.
[[0;32m OK [0m] Started [0;1;39mGetty on tty1[0m.
[[0;32m OK [0m] Started [0;1;39mGetty on tty2[0m.
[[0;32m OK [0m] Started [0;1;39mGetty on tty3[0m.
[[0;32m OK [0m] Started [0;1;39mGetty on tty4[0m.
[[0;32m OK [0m] Started [0;1;39mGetty on tty5[0m.
[[0;32m OK [0m] Started [0;1;39mGetty on tty6[0m.
[[0;32m OK [0m] Started [0;1;39mSerial Getty on ttyS0[0m.
[[0;32m OK [0m] Reached target [0;1;39mLogin Prompts[0m.
[[0;32m OK [0m] Started [0;1;39mOpenBSD Secure Shell server[0m.
[[0;32m OK [0m] Reached target [0;1;39mMulti-User System[0m.
[[0;32m OK [0m] Reached target [0;1;39mGraphical Interface[0m.
Starting [0;1;39mUpdate UTMP about System Runlevel Changes[0m...
[[0;32m OK [0m] Finished [0;1;39mUpdate UTMP about System Runlevel Changes[0m.
Debian GNU/Linux 11 syzkaller ttyS0
syzkaller login: [ 81.338752][ T9807] cgroup: Unknown subsys name 'net'
[ 81.420246][ T9807] cgroup: Unknown subsys name 'cpuset'
[ 81.428003][ T9807] cgroup: Unknown subsys name 'rlimit'
[ 81.837608][ T9807] Adding 124996k swap on ./swap-file. Priority:0 extents:1 across:124996k
[ 83.191637][ T8961] wlan0: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 83.192031][ T8961] wlan0: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 83.300802][T10120] Bluetooth: hci0: unexpected cc 0x0c03 length: 249 > 1
[ 83.301512][T10120] Bluetooth: hci0: unexpected cc 0x1003 length: 249 > 9
[ 83.302101][T10120] Bluetooth: hci0: unexpected cc 0x1001 length: 249 > 9
[ 83.302949][T10120] Bluetooth: hci0: unexpected cc 0x0c23 length: 249 > 4
[ 83.303592][T10120] Bluetooth: hci0: unexpected cc 0x0c38 length: 249 > 2
[ 83.417719][ T9835] chnl_net:caif_netlink_parms(): no params data found
[ 83.465738][ T5654] wlan1: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 83.466109][ T5654] wlan1: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 83.750866][ T9835] bridge0: port 1(bridge_slave_0) entered blocking state
[ 83.751653][ T9835] bridge0: port 1(bridge_slave_0) entered disabled state
[ 83.752020][ T9835] bridge_slave_0: entered allmulticast mode
[ 83.752658][ T9835] bridge_slave_0: entered promiscuous mode
[ 83.753954][ T9835] bridge0: port 2(bridge_slave_1) entered blocking state
[ 83.754292][ T9835] bridge0: port 2(bridge_slave_1) entered disabled state
[ 83.754647][ T9835] bridge_slave_1: entered allmulticast mode
[ 83.755235][ T9835] bridge_slave_1: entered promiscuous mode
[ 83.792494][ T9835] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 83.808487][ T9835] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 83.862155][ T9835] team0: Port device team_slave_0 added
[ 83.863060][ T9835] team0: Port device team_slave_1 added
[ 83.888811][ T9835] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 83.889153][ T9835] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 83.890226][ T9835] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 83.897305][ T9835] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 83.897637][ T9835] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 83.899100][ T9835] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 83.975577][ T9835] hsr_slave_0: entered promiscuous mode
[ 83.976137][ T9835] hsr_slave_1: entered promiscuous mode
[ 84.051108][ T9835] netdevsim netdevsim4 netdevsim0: renamed from eth0
[ 84.053561][ T9835] netdevsim netdevsim4 netdevsim1: renamed from eth1
[ 84.054822][ T9835] netdevsim netdevsim4 netdevsim2: renamed from eth2
[ 84.056524][ T9835] netdevsim netdevsim4 netdevsim3: renamed from eth3
[ 84.068968][ T9835] bridge0: port 2(bridge_slave_1) entered blocking state
[ 84.069386][ T9835] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 84.069986][ T9835] bridge0: port 1(bridge_slave_0) entered blocking state
[ 84.070306][ T9835] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 84.085737][ T9835] 8021q: adding VLAN 0 to HW filter on device bond0
[ 84.091592][ T4981] bridge0: port 1(bridge_slave_0) entered disabled state
[ 84.092448][ T4981] bridge0: port 2(bridge_slave_1) entered disabled state
[ 84.095155][ T9835] 8021q: adding VLAN 0 to HW filter on device team0
[ 84.097267][ T4981] bridge0: port 1(bridge_slave_0) entered blocking state
[ 84.097633][ T4981] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 84.100570][ T4981] bridge0: port 2(bridge_slave_1) entered blocking state
[ 84.100924][ T4981] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 84.145925][ T9835] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 84.197419][ T9835] veth0_vlan: entered promiscuous mode
[ 84.200976][ T9835] veth1_vlan: entered promiscuous mode
[ 84.208400][ T9835] veth0_macvtap: entered promiscuous mode
[ 84.211225][ T9835] veth1_macvtap: entered promiscuous mode
[ 84.214846][ T9835] batman_adv: batadv0: Interface activated: batadv_slave_0
[ 84.217128][ T9835] batman_adv: batadv0: Interface activated: batadv_slave_1
[ 84.221638][T10075] netdevsim netdevsim4 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
[ 84.223647][T10075] netdevsim netdevsim4 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
[ 84.226899][ T13] netdevsim netdevsim4 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
[ 84.227657][ T13] netdevsim netdevsim4 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
[ 84.342071][T10120] Bluetooth: hci1: unexpected cc 0x0c03 length: 249 > 1
[ 84.342833][T10120] Bluetooth: hci1: unexpected cc 0x1003 length: 249 > 9
[ 84.343375][T10120] Bluetooth: hci1: unexpected cc 0x1001 length: 249 > 9
[ 84.343918][T10120] Bluetooth: hci1: unexpected cc 0x0c23 length: 249 > 4
[ 84.344400][T10120] Bluetooth: hci1: unexpected cc 0x0c38 length: 249 > 2
[ 84.381932][ T56] Bluetooth: hci2: unexpected cc 0x0c03 length: 249 > 1
[ 84.382730][ T56] Bluetooth: hci2: unexpected cc 0x1003 length: 249 > 9
[ 84.383179][ T56] Bluetooth: hci2: unexpected cc 0x1001 length: 249 > 9
[ 84.383712][ T56] Bluetooth: hci2: unexpected cc 0x0c23 length: 249 > 4
[ 84.384202][ T56] Bluetooth: hci2: unexpected cc 0x0c38 length: 249 > 2
[ 84.411078][T10120] Bluetooth: hci3: unexpected cc 0x0c03 length: 249 > 1
[ 84.413990][T10120] Bluetooth: hci3: unexpected cc 0x1003 length: 249 > 9
[ 84.414674][T10120] Bluetooth: hci3: unexpected cc 0x1001 length: 249 > 9
[ 84.423244][T10120] Bluetooth: hci3: unexpected cc 0x0c23 length: 249 > 4
[ 84.443942][ T5199] Bluetooth: hci3: unexpected cc 0x0c38 length: 249 > 2
[ 84.445740][ T5199] Bluetooth: hci4: unexpected cc 0x0c03 length: 249 > 1
[ 84.446508][ T5199] Bluetooth: hci4: unexpected cc 0x1003 length: 249 > 9
[ 84.447131][ T5199] Bluetooth: hci4: unexpected cc 0x1001 length: 249 > 9
[ 84.450214][ T5199] Bluetooth: hci4: unexpected cc 0x0c23 length: 249 > 4
[ 84.452571][ T5199] Bluetooth: hci4: unexpected cc 0x0c38 length: 249 > 2
[ 84.496075][T10120] Bluetooth: hci5: unexpected cc 0x0c03 length: 249 > 1
[ 84.497065][T10120] Bluetooth: hci5: unexpected cc 0x1003 length: 249 > 9
[ 84.497548][T10120] Bluetooth: hci5: unexpected cc 0x1001 length: 249 > 9
[ 84.498262][T10120] Bluetooth: hci5: unexpected cc 0x0c23 length: 249 > 4
[ 84.498922][T10120] Bluetooth: hci5: unexpected cc 0x0c38 length: 249 > 2
[ 84.502366][T10120] Bluetooth: hci6: unexpected cc 0x0c03 length: 249 > 1
[ 84.503257][T10120] Bluetooth: hci6: unexpected cc 0x1003 length: 249 > 9
[ 84.503704][T10120] Bluetooth: hci6: unexpected cc 0x1001 length: 249 > 9
[ 84.506418][T10120] Bluetooth: hci6: unexpected cc 0x0c23 length: 249 > 4
[ 84.506884][T10120] Bluetooth: hci6: unexpected cc 0x0c38 length: 249 > 2
[ 84.520931][T10577] Bluetooth: hci7: unexpected cc 0x0c03 length: 249 > 1
[ 84.521626][T10577] Bluetooth: hci7: unexpected cc 0x1003 length: 249 > 9
[ 84.522143][T10577] Bluetooth: hci7: unexpected cc 0x1001 length: 249 > 9
[ 84.523647][T10577] Bluetooth: hci7: unexpected cc 0x0c23 length: 249 > 4
[ 84.524821][T10577] Bluetooth: hci7: unexpected cc 0x0c38 length: 249 > 2
[ 84.533689][T10120] Bluetooth: hci8: unexpected cc 0x0c03 length: 249 > 1
[ 84.534340][T10120] Bluetooth: hci8: unexpected cc 0x1003 length: 249 > 9
[ 84.534861][T10120] Bluetooth: hci8: unexpected cc 0x1001 length: 249 > 9
[ 84.535526][T10120] Bluetooth: hci8: unexpected cc 0x0c23 length: 249 > 4
[ 84.549060][T10120] Bluetooth: hci8: unexpected cc 0x0c38 length: 249 > 2
[ 84.741495][ T13] netdevsim netdevsim4 netdevsim3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
[ 84.801391][ T13] netdevsim netdevsim4 netdevsim2 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
[ 84.852180][ T13] netdevsim netdevsim4 netdevsim1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
[ 84.912992][ T13] netdevsim netdevsim4 netdevsim0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
[ 84.915662][T10551] chnl_net:caif_netlink_parms(): no params data found
[ 84.994663][T10542] chnl_net:caif_netlink_parms(): no params data found
[ 85.012873][T10593] chnl_net:caif_netlink_parms(): no params data found
[ 85.017577][T10554] chnl_net:caif_netlink_parms(): no params data found
[ 85.098698][T10599] chnl_net:caif_netlink_parms(): no params data found
[ 85.164933][T10557] chnl_net:caif_netlink_parms(): no params data found
[ 85.173091][T10580] chnl_net:caif_netlink_parms(): no params data found
[ 85.183458][T10551] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.183884][T10551] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.184264][T10551] bridge_slave_0: entered allmulticast mode
[ 85.184919][T10551] bridge_slave_0: entered promiscuous mode
[ 85.214912][T10551] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.215294][T10551] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.215716][T10551] bridge_slave_1: entered allmulticast mode
[ 85.216394][T10551] bridge_slave_1: entered promiscuous mode
[ 85.217074][T10583] chnl_net:caif_netlink_parms(): no params data found
[ 85.281828][T10542] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.282377][T10542] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.282985][T10542] bridge_slave_0: entered allmulticast mode
[ 85.283780][T10542] bridge_slave_0: entered promiscuous mode
[ 85.318511][T10551] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.319223][T10593] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.319675][T10593] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.320148][T10593] bridge_slave_0: entered allmulticast mode
[ 85.320935][T10593] bridge_slave_0: entered promiscuous mode
[ 85.322411][T10551] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.328589][T10542] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.329008][T10542] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.329396][T10542] bridge_slave_1: entered allmulticast mode
[ 85.330089][T10542] bridge_slave_1: entered promiscuous mode
[ 85.359692][T10593] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.360074][T10593] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.360446][T10593] bridge_slave_1: entered allmulticast mode
[ 85.361191][T10593] bridge_slave_1: entered promiscuous mode
[ 85.382998][T10554] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.383499][T10554] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.383893][T10554] bridge_slave_0: entered allmulticast mode
[ 85.384613][T10554] bridge_slave_0: entered promiscuous mode
[ 85.385386][T10599] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.385754][T10599] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.386114][T10599] bridge_slave_0: entered allmulticast mode
[ 85.387074][T10599] bridge_slave_0: entered promiscuous mode
[ 85.406195][T10551] team0: Port device team_slave_0 added
[ 85.408663][T10593] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.414625][T10542] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.418745][T10554] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.419167][T10554] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.419572][T10554] bridge_slave_1: entered allmulticast mode
[ 85.420261][T10554] bridge_slave_1: entered promiscuous mode
[ 85.426054][T10599] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.426451][T10599] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.426813][T10599] bridge_slave_1: entered allmulticast mode
[ 85.427575][T10599] bridge_slave_1: entered promiscuous mode
[ 85.436978][T10551] team0: Port device team_slave_1 added
[ 85.439562][T10593] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.441048][T10542] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.480277][T10554] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.485085][T10583] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.485824][T10583] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.486218][T10583] bridge_slave_0: entered allmulticast mode
[ 85.486888][T10583] bridge_slave_0: entered promiscuous mode
[ 85.487599][T10557] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.488304][T10557] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.488707][T10557] bridge_slave_0: entered allmulticast mode
[ 85.489680][T10557] bridge_slave_0: entered promiscuous mode
[ 85.504935][T10580] bridge0: port 1(bridge_slave_0) entered blocking state
[ 85.505326][T10580] bridge0: port 1(bridge_slave_0) entered disabled state
[ 85.505735][T10580] bridge_slave_0: entered allmulticast mode
[ 85.506417][T10580] bridge_slave_0: entered promiscuous mode
[ 85.508798][T10554] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.510385][T10599] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.510887][T10583] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.511264][T10583] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.511655][T10583] bridge_slave_1: entered allmulticast mode
[ 85.512299][T10583] bridge_slave_1: entered promiscuous mode
[ 85.513125][T10557] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.513484][T10557] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.513856][T10557] bridge_slave_1: entered allmulticast mode
[ 85.514517][T10557] bridge_slave_1: entered promiscuous mode
[ 85.515279][T10551] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.515632][T10551] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.516797][T10551] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.522827][T10593] team0: Port device team_slave_0 added
[ 85.528360][T10542] team0: Port device team_slave_0 added
[ 85.528721][T10580] bridge0: port 2(bridge_slave_1) entered blocking state
[ 85.529075][T10580] bridge0: port 2(bridge_slave_1) entered disabled state
[ 85.529437][T10580] bridge_slave_1: entered allmulticast mode
[ 85.530720][T10580] bridge_slave_1: entered promiscuous mode
[ 85.536368][T10599] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.543243][T10593] team0: Port device team_slave_1 added
[ 85.543753][T10551] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.544080][T10551] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.545260][T10551] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.546505][T10542] team0: Port device team_slave_1 added
[ 85.548423][T10557] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.576431][T10557] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.582017][T10554] team0: Port device team_slave_0 added
[ 85.589167][T10583] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.594876][T10593] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.595248][T10593] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.596637][T10593] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.610204][T10580] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
[ 85.611484][T10554] team0: Port device team_slave_1 added
[ 85.612299][T10599] team0: Port device team_slave_0 added
[ 85.613387][T10583] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.619899][T10593] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.620248][T10593] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.621367][T10593] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.622162][T10542] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.622506][T10542] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.623627][T10542] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.630721][T10557] team0: Port device team_slave_0 added
[ 85.632738][T10580] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
[ 85.638449][T10599] team0: Port device team_slave_1 added
[ 85.651490][T10542] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.651837][T10542] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.652969][T10542] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.670442][T10557] team0: Port device team_slave_1 added
[ 85.672242][T10551] hsr_slave_0: entered promiscuous mode
[ 85.672757][T10551] hsr_slave_1: entered promiscuous mode
[ 85.673821][T10551] debugfs: 'hsr0' already exists in 'hsr'
[ 85.674117][T10551] Cannot create hsr debugfs directory
[ 85.693688][T10583] team0: Port device team_slave_0 added
[ 85.694716][T10583] team0: Port device team_slave_1 added
[ 85.721168][T10554] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.721532][T10554] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.722651][T10554] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.748677][T10580] team0: Port device team_slave_0 added
[ 85.749137][T10554] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.749463][T10554] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.750605][T10554] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.751707][T10580] team0: Port device team_slave_1 added
[ 85.756141][T10599] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.756509][T10599] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.757660][T10599] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.759184][T10583] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.759529][T10583] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.760647][T10583] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.761911][T10599] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.762240][T10599] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.763470][T10599] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.770691][T10593] hsr_slave_0: entered promiscuous mode
[ 85.771310][T10593] hsr_slave_1: entered promiscuous mode
[ 85.771774][T10593] debugfs: 'hsr0' already exists in 'hsr'
[ 85.772028][T10593] Cannot create hsr debugfs directory
[ 85.772519][T10557] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.772869][T10557] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.773987][T10557] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.789717][T10583] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.790107][T10583] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.791257][T10583] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.792689][T10557] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.793014][T10557] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.794101][T10557] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.810249][T10542] hsr_slave_0: entered promiscuous mode
[ 85.810813][T10542] hsr_slave_1: entered promiscuous mode
[ 85.811265][T10542] debugfs: 'hsr0' already exists in 'hsr'
[ 85.811542][T10542] Cannot create hsr debugfs directory
[ 85.845516][T10599] hsr_slave_0: entered promiscuous mode
[ 85.846016][T10599] hsr_slave_1: entered promiscuous mode
[ 85.846430][T10599] debugfs: 'hsr0' already exists in 'hsr'
[ 85.846690][T10599] Cannot create hsr debugfs directory
[ 85.859564][T10580] batman_adv: batadv0: Adding interface: batadv_slave_0
[ 85.860011][T10580] batman_adv: batadv0: The MTU of interface batadv_slave_0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.861232][T10580] batman_adv: batadv0: Not using interface batadv_slave_0 (retrying later): interface not active
[ 85.894860][T10580] batman_adv: batadv0: Adding interface: batadv_slave_1
[ 85.895190][T10580] batman_adv: batadv0: The MTU of interface batadv_slave_1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 85.896260][T10580] batman_adv: batadv0: Not using interface batadv_slave_1 (retrying later): interface not active
[ 85.941817][T10554] hsr_slave_0: entered promiscuous mode
[ 85.942383][T10554] hsr_slave_1: entered promiscuous mode
[ 85.942804][T10554] debugfs: 'hsr0' already exists in 'hsr'
[ 85.943047][T10554] Cannot create hsr debugfs directory
[ 85.970048][T10557] hsr_slave_0: entered promiscuous mode
[ 85.970645][T10557] hsr_slave_1: entered promiscuous mode
[ 85.971161][T10557] debugfs: 'hsr0' already exists in 'hsr'
[ 85.971476][T10557] Cannot create hsr debugfs directory
[ 85.981542][T10583] hsr_slave_0: entered promiscuous mode
[ 85.989640][T10583] hsr_slave_1: entered promiscuous mode
[ 85.990166][T10583] debugfs: 'hsr0' already exists in 'hsr'
[ 85.990449][T10583] Cannot create hsr debugfs directory
[ 86.091384][T10580] hsr_slave_0: entered promiscuous mode
[ 86.091945][T10580] hsr_slave_1: entered promiscuous mode
[ 86.092366][T10580] debugfs: 'hsr0' already exists in 'hsr'
[ 86.092622][T10580] Cannot create hsr debugfs directory
[ 86.276808][ T13] bridge_slave_1: left allmulticast mode
[ 86.277145][ T13] bridge_slave_1: left promiscuous mode
[ 86.277814][ T13] bridge0: port 2(bridge_slave_1) entered disabled state
[ 86.280498][ T13] bridge_slave_0: left allmulticast mode
[ 86.280787][ T13] bridge_slave_0: left promiscuous mode
[ 86.281116][ T13] bridge0: port 1(bridge_slave_0) entered disabled state
[ 86.349350][T10577] Bluetooth: hci1: command tx timeout
[ 86.428009][T10577] Bluetooth: hci2: command tx timeout
[ 86.434414][ T13] bond0 (unregistering): (slave bond_slave_0): Releasing backup interface
[ 86.436264][ T13] bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
[ 86.437196][ T13] bond0 (unregistering): Released all slaves
[ 86.519103][T10577] Bluetooth: hci4: command tx timeout
[ 86.519623][T10120] Bluetooth: hci3: command tx timeout
[ 86.579465][T10551] netdevsim netdevsim2 netdevsim0: renamed from eth0
[ 86.598731][T10120] Bluetooth: hci8: command tx timeout
[ 86.598756][T10577] Bluetooth: hci7: command tx timeout
[ 86.599209][ T56] Bluetooth: hci6: command tx timeout
[ 86.599684][ T5199] Bluetooth: hci5: command tx timeout
[ 86.607820][T10551] netdevsim netdevsim2 netdevsim1: renamed from eth1
[ 86.619568][T10551] netdevsim netdevsim2 netdevsim2: renamed from eth2
[ 86.634335][T10551] netdevsim netdevsim2 netdevsim3: renamed from eth3
[ 86.678262][ T13] hsr_slave_0: left promiscuous mode
[ 86.678836][ T13] hsr_slave_1: left promiscuous mode
[ 86.679240][ T13] batman_adv: batadv0: Interface deactivated: batadv_slave_0
[ 86.679585][ T13] batman_adv: batadv0: Removing interface: batadv_slave_0
[ 86.680643][ T13] batman_adv: batadv0: Interface deactivated: batadv_slave_1
[ 86.681018][ T13] batman_adv: batadv0: Removing interface: batadv_slave_1
[ 86.684753][ T13] veth1_macvtap: left promiscuous mode
[ 86.685328][ T13] veth0_macvtap: left promiscuous mode
[ 86.685622][ T13] veth1_vlan: left promiscuous mode
[ 86.685898][ T13] veth0_vlan: left promiscuous mode
[ 86.815661][ T13] team0 (unregistering): Port device team_slave_1 removed
[ 86.826723][ T13] team0 (unregistering): Port device team_slave_0 removed
[ 87.051421][T10551] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.069961][T10551] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.072802][ T5455] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.073160][ T5455] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.075490][ T8532] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.075887][ T8532] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.133634][T10593] netdevsim netdevsim4 netdevsim0: renamed from eth0
[ 87.136597][T10593] netdevsim netdevsim4 netdevsim1: renamed from eth1
[ 87.138765][T10593] netdevsim netdevsim4 netdevsim2: renamed from eth2
[ 87.140613][T10593] netdevsim netdevsim4 netdevsim3: renamed from eth3
[ 87.179071][T10599] netdevsim netdevsim7 netdevsim0: renamed from eth0
[ 87.186747][T10599] netdevsim netdevsim7 netdevsim1: renamed from eth1
[ 87.196006][T10599] netdevsim netdevsim7 netdevsim2: renamed from eth2
[ 87.204072][T10599] netdevsim netdevsim7 netdevsim3: renamed from eth3
[ 87.226709][T10551] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 87.228935][T10554] netdevsim netdevsim1 netdevsim0: renamed from eth0
[ 87.230804][T10554] netdevsim netdevsim1 netdevsim1: renamed from eth1
[ 87.236409][T10554] netdevsim netdevsim1 netdevsim2: renamed from eth2
[ 87.238389][T10554] netdevsim netdevsim1 netdevsim3: renamed from eth3
[ 87.257611][T10593] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.274667][T10593] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.278910][T10542] netdevsim netdevsim0 netdevsim0: renamed from eth0
[ 87.281823][T10542] netdevsim netdevsim0 netdevsim1: renamed from eth1
[ 87.293746][T10542] netdevsim netdevsim0 netdevsim2: renamed from eth2
[ 87.295916][ T27] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.296260][ T27] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.305760][T10542] netdevsim netdevsim0 netdevsim3: renamed from eth3
[ 87.316387][ T5455] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.316851][ T5455] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.328958][T10551] veth0_vlan: entered promiscuous mode
[ 87.341568][T10557] netdevsim netdevsim3 netdevsim0: renamed from eth0
[ 87.343575][T10557] netdevsim netdevsim3 netdevsim1: renamed from eth1
[ 87.353241][T10557] netdevsim netdevsim3 netdevsim2: renamed from eth2
[ 87.355207][T10557] netdevsim netdevsim3 netdevsim3: renamed from eth3
[ 87.367468][T10551] veth1_vlan: entered promiscuous mode
[ 87.399702][T10583] netdevsim netdevsim6 netdevsim0: renamed from eth0
[ 87.404567][T10583] netdevsim netdevsim6 netdevsim1: renamed from eth1
[ 87.407321][T10599] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.412884][T10583] netdevsim netdevsim6 netdevsim2: renamed from eth2
[ 87.423083][T10583] netdevsim netdevsim6 netdevsim3: renamed from eth3
[ 87.431026][T10554] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.447216][T10599] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.476795][ T6988] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.477299][ T6988] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.480971][T10551] veth0_macvtap: entered promiscuous mode
[ 87.489605][ T6988] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.489966][ T6988] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.491116][T10580] netdevsim netdevsim5 netdevsim0: renamed from eth0
[ 87.493655][T10554] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.494229][T10551] veth1_macvtap: entered promiscuous mode
[ 87.497187][T10580] netdevsim netdevsim5 netdevsim1: renamed from eth1
[ 87.502013][T10580] netdevsim netdevsim5 netdevsim2: renamed from eth2
[ 87.504497][T10580] netdevsim netdevsim5 netdevsim3: renamed from eth3
[ 87.510563][T10593] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 87.530650][ T6988] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.531018][ T6988] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.544774][T10542] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.547365][T10542] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.550125][ T5455] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.550498][ T5455] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.571321][T10551] batman_adv: batadv0: Interface activated: batadv_slave_0
[ 87.586772][T10551] batman_adv: batadv0: Interface activated: batadv_slave_1
[ 87.596162][ T6988] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.596618][ T6988] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.606720][T11630] netdevsim netdevsim2 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
[ 87.608898][T11630] netdevsim netdevsim2 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
[ 87.615104][T11630] netdevsim netdevsim2 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
[ 87.620638][ T6988] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.621028][ T6988] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.622632][T11630] netdevsim netdevsim2 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
[ 87.643170][T10557] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.694644][T10557] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.732546][ T8532] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.733003][ T8532] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.734295][ T8532] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.734780][ T8532] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.750907][T10583] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.787549][T10593] veth0_vlan: entered promiscuous mode
[ 87.788863][ T27] wlan0: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 87.789220][ T27] wlan0: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 87.795978][T10583] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.797115][T10580] 8021q: adding VLAN 0 to HW filter on device bond0
[ 87.816104][T10593] veth1_vlan: entered promiscuous mode
[ 87.823686][ T8532] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.824067][ T8532] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.824137][ T27] wlan1: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 87.825033][ T27] wlan1: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 87.835972][T10580] 8021q: adding VLAN 0 to HW filter on device team0
[ 87.840262][T10599] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 87.843444][ T27] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.843803][ T27] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.845461][ T27] bridge0: port 1(bridge_slave_0) entered blocking state
[ 87.845796][ T27] bridge0: port 1(bridge_slave_0) entered forwarding state
[ 87.846824][ T27] bridge0: port 2(bridge_slave_1) entered blocking state
[ 87.847159][ T27] bridge0: port 2(bridge_slave_1) entered forwarding state
[ 87.889844][T10583] hsr0: Slave A (hsr_slave_0) is not up; please bring it up to get a fully working HSR network
[ 87.890334][T10583] hsr0: Slave B (hsr_slave_1) is not up; please bring it up to get a fully working HSR network
[ 87.930477][T10554] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 87.965785][T10593] veth0_macvtap: entered promiscuous mode
[ 87.967478][T10542] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 87.971713][T10599] veth0_vlan: entered promiscuous mode
[ 87.973399][T10599] veth1_vlan: entered promiscuous mode
[ 87.998885][T10593] veth1_macvtap: entered promiscuous mode
[ 88.005811][T10599] veth0_macvtap: entered promiscuous mode
[ 88.012931][T10599] veth1_macvtap: entered promiscuous mode
[ 88.035614][T10554] veth0_vlan: entered promiscuous mode
[ 88.041548][T10599] batman_adv: batadv0: Interface activated: batadv_slave_0
[ 88.042794][T10599] batman_adv: batadv0: Interface activated: batadv_slave_1
[ 88.059649][T10593] batman_adv: batadv0: Interface activated: batadv_slave_0
[ 88.060022][ T9662] netdevsim netdevsim7 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.060420][ T9662] netdevsim netdevsim7 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.063928][T12843] loop2: detected capacity change from 0 to 32768
[ 88.072625][ T9662] netdevsim netdevsim7 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.073157][ T9662] netdevsim netdevsim7 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.080850][T10593] batman_adv: batadv0: Interface activated: batadv_slave_1
[ 88.081365][T10554] veth1_vlan: entered promiscuous mode
[ 88.095711][T10542] veth0_vlan: entered promiscuous mode
[ 88.106511][T12843] XFS (loop2): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
[ 88.115211][T10583] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 88.115720][ T9662] netdevsim netdevsim4 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.116389][ T9662] netdevsim netdevsim4 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.124895][T10557] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 88.135370][ T9662] netdevsim netdevsim4 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.143108][T12843] XFS (loop2): Ending clean mount
[ 88.153267][T12843] XFS (loop2): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line 309, on filesystem "loop2"
[ 88.154049][T10580] 8021q: adding VLAN 0 to HW filter on device batadv0
[ 88.154875][ T9662] netdevsim netdevsim4 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.155831][T10554] veth0_macvtap: entered promiscuous mode
[ 88.157117][T10542] veth1_vlan: entered promiscuous mode
[ 88.172757][T10554] veth1_macvtap: entered promiscuous mode
[ 88.184559][ T6988] wlan0: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 88.185177][ T6988] wlan0: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 88.211772][T10554] batman_adv: batadv0: Interface activated: batadv_slave_0
[ 88.228218][T10551] XFS (loop2): Unmounting Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
[ 88.229804][T10551] XFS (loop2): Uncorrected metadata errors detected; please run xfs_repair.
[ 88.261687][T10554] batman_adv: batadv0: Interface activated: batadv_slave_1
[ 88.294843][ T4888] wlan1: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 88.295249][ T4888] wlan1: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 88.297493][T10542] veth0_macvtap: entered promiscuous mode
[ 88.301753][T10542] veth1_macvtap: entered promiscuous mode
[ 88.335572][T10557] veth0_vlan: entered promiscuous mode
[ 88.336022][ T9662] netdevsim netdevsim1 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.336457][ T9662] netdevsim netdevsim1 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.336872][ T9662] netdevsim netdevsim1 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.337279][ T9662] netdevsim netdevsim1 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.342226][T10542] batman_adv: batadv0: Interface activated: batadv_slave_0
[ 88.356600][T10542] batman_adv: batadv0: Interface activated: batadv_slave_1
[ 88.379581][T10580] veth0_vlan: entered promiscuous mode
[ 88.402165][ T9662] netdevsim netdevsim0 netdevsim0: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.402772][ T9662] netdevsim netdevsim0 netdevsim1: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.403322][ T9662] netdevsim netdevsim0 netdevsim2: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.403769][ T9662] netdevsim netdevsim0 netdevsim3: set [1, 0] type 2 family 0 port 6081 - 0
[ 88.404190][ T7810] wlan0: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 88.404578][ T7810] wlan0: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 88.411649][T10557] veth1_vlan: entered promiscuous mode
[ 88.439757][ T7810] wlan0: Created IBSS using preconfigured BSSID 50:50:50:50:50:50
[ 88.440133][ T7810] wlan0: Creating new IBSS network, BSSID 50:50:50:50:50:50
[ 88.445747][T10577] Bluetooth: hci1: command tx timeout
[ 88.464253][T10580] veth1_vlan: entered promiscuous mode
[ 88.484164][T12918] loop2: detected capacity change from 0 to 32768
[ 88.497523][T12918] XFS (loop2): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
[ 88.507683][T12918] XFS (loop2): Ending clean mount
[ 88.508532][T10577] Bluetooth: hci2: command tx timeout
[ 88.513190][T12918] XFS (loop2): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line 309, on filesystem "loop2"
[ 88.513763][T12918] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI
[ 88.514313][T12918] KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]
[ 88.514698][T12918] CPU: 0 UID: 0 PID: 12918 Comm: syz.2.25 Not tainted 6.19.0-rc6 #31 PREEMPT(full)
[ 88.515113][T12918] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
[ 88.515522][T12918] RIP: 0010:xchk_btree+0xb9/0x1380
[ 88.515757][T12918] Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
[ 88.516607][T12918] RSP: 0018:ffffc9000a37f360 EFLAGS: 00010206
[ 88.516878][T12918] RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888011dadc40
[ 88.517229][T12918] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88804b59b600
[ 88.517594][T12918] RBP: ffffc9000a37f510 R08: ffffc9000a37f540 R09: 0000000000000002
[ 88.517964][T12918] R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
[ 88.518339][T12918] R13: 1ffff9200146fe88 R14: dffffc0000000000 R15: ffffffff8ba6c880
[ 88.518711][T12918] FS: 00007f141ad1a640(0000) GS:ffff888098fe0000(0000) knlGS:0000000000000000
[ 88.519121][T12918] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 88.519431][T12918] CR2: 00007f1419f54028 CR3: 000000006763f000 CR4: 0000000000752ef0
[ 88.519808][T12918] PKRU: 00000000
[ 88.519969][T12918] Call Trace:
[ 88.520119][T12918] <TASK>
[ 88.520255][T12918] ? __pfx_xchk_btree+0x10/0x10
[ 88.520477][T12918] ? __lock_acquire+0xad0/0xd50
[ 88.520695][T12918] ? ktime_get+0x3e/0x1f0
[ 88.520889][T12918] xchk_allocbt+0x112/0x190
[ 88.521092][T12918] ? __pfx_xchk_allocbt+0x10/0x10
[ 88.521319][T12918] ? seqcount_lockdep_reader_access+0xaa/0x100
[ 88.521596][T12918] xrep_revalidate_allocbt+0xf3/0x160
[ 88.521835][T12918] ? __pfx_xrep_revalidate_allocbt+0x10/0x10
[ 88.522103][T12918] xfs_scrub_metadata+0xc08/0x1920
[ 88.522334][T12918] ? __pfx_xfs_scrub_metadata+0x10/0x10
[ 88.522586][T12918] xfs_ioc_scrubv_metadata+0x74a/0xaf0
[ 88.522830][T12918] ? __pfx_xfs_ioc_scrubv_metadata+0x10/0x10
[ 88.523102][T12918] ? __pfx_stack_trace_consume_entry+0x10/0x10
[ 88.523377][T12918] ? arch_stack_walk+0xfc/0x150
[ 88.523596][T12918] ? stack_trace_save+0x9c/0xe0
[ 88.523826][T12918] xfs_file_ioctl+0x751/0x1560
[ 88.524045][T12918] ? __pfx_xfs_file_ioctl+0x10/0x10
[ 88.524272][T12918] ? kfree+0x1c0/0x660
[ 88.524454][T12918] ? tomoyo_path_number_perm+0x50f/0x680
[ 88.524701][T12918] ? security_file_ioctl+0xcb/0x2d0
[ 88.524929][T12918] ? __se_sys_ioctl+0x47/0x170
[ 88.525181][T12918] ? do_syscall_64+0xe8/0xf80
[ 88.525406][T12918] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 88.525696][T12918] ? file_ioctl+0x22d/0x780
[ 88.525907][T12918] ? __pfx_file_ioctl+0x10/0x10
[ 88.526129][T12918] ? kasan_quarantine_put+0xbb/0x1f0
[ 88.526373][T12918] ? tomoyo_path_number_perm+0x1ca/0x680
[ 88.526628][T12918] ? tomoyo_path_number_perm+0x1ca/0x680
[ 88.526879][T12918] ? do_vfs_ioctl+0xb5b/0x13b0
[ 88.527099][T12918] ? __pfx_do_vfs_ioctl+0x10/0x10
[ 88.527357][T12918] ? __lock_acquire+0xad0/0xd50
[ 88.527584][T12918] ? __fget_files+0x2a/0x420
[ 88.527797][T12918] ? __fget_files+0x2a/0x420
[ 88.528013][T12918] ? __fget_files+0x3a0/0x420
[ 88.528228][T12918] ? __fget_files+0x2a/0x420
[ 88.528447][T12918] ? bpf_lsm_file_ioctl+0x9/0x20
[ 88.528689][T12918] ? __pfx_xfs_file_ioctl+0x10/0x10
[ 88.528993][T12918] __se_sys_ioctl+0xfc/0x170
[ 88.529255][T12918] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 88.529608][T12918] do_syscall_64+0xe8/0xf80
[ 88.529868][T12918] ? trace_irq_disable+0x37/0x100
[ 88.530162][T12918] ? clear_bhb_loop+0x60/0xb0
[ 88.530445][T12918] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 88.530779][T12918] RIP: 0033:0x7f1419db459d
[ 88.531053][T12918] Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
[ 88.532187][T12918] RSP: 002b:00007f141ad19f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 88.532662][T12918] RAX: ffffffffffffffda RBX: 00007f141a045fa0 RCX: 00007f1419db459d
[ 88.533109][T12918] RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005
[ 88.533569][T12918] RBP: 00007f1419e52610 R08: 0000000000000000 R09: 0000000000000000
[ 88.534032][T12918] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[ 88.534507][T12918] R13: 00007f141a046038 R14: 00007f141a045fa0 R15: 00007f141acfa000
[ 88.534996][T12918] </TASK>
[ 88.535185][T12918] Modules linked in:
[ 88.535537][T12918] ---[ end trace 0000000000000000 ]---
[ 88.536136][T12918] RIP: 0010:xchk_btree+0xb9/0x1380
[ 88.536456][T12918] Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
[ 88.537602][T12918] RSP: 0018:ffffc9000a37f360 EFLAGS: 00010206
[ 88.538117][T12918] RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888011dadc40
[ 88.538707][T12918] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88804b59b600
[ 88.539192][T12918] RBP: ffffc9000a37f510 R08: ffffc9000a37f540 R09: 0000000000000002
[ 88.539673][T12918] R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
[ 88.540140][T12918] R13: 1ffff9200146fe88 R14: dffffc0000000000 R15: ffffffff8ba6c880
[ 88.540707][T12918] FS: 00007f141ad1a640(0000) GS:ffff888098fe0000(0000) knlGS:0000000000000000
[ 88.541255][T12918] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 88.541654][T12918] CR2: 00007f1419f54028 CR3: 000000006763f000 CR4: 0000000000752ef0
[ 88.542127][T12918] PKRU: 00000000
[ 88.542347][T12918] Kernel panic - not syncing: Fatal exception
[ 88.542814][T12918] Kernel Offset: disabled
[ 88.543068][T12918] Rebooting in 86400 seconds..
loop2: detected capacity change from 0 to 32768
XFS (loop2): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
XFS (loop2): Ending clean mount
XFS (loop2): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line 309, on filesystem "loop2"
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]
CPU: 0 UID: 0 PID: 12918 Comm: syz.2.25 Not tainted 6.19.0-rc6 #31 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701
Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
RSP: 0018:ffffc9000a37f360 EFLAGS: 00010206
RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888011dadc40
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88804b59b600
RBP: ffffc9000a37f510 R08: ffffc9000a37f540 R09: 0000000000000002
R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
R13: 1ffff9200146fe88 R14: dffffc0000000000 R15: ffffffff8ba6c880
FS: 00007f141ad1a640(0000) GS:ffff888098fe0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f1419f54028 CR3: 000000006763f000 CR4: 0000000000752ef0
PKRU: 00000000
Call Trace:
<TASK>
xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930
xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f1419db459d
Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f141ad19f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f141a045fa0 RCX: 00007f1419db459d
RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005
RBP: 00007f1419e52610 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f141a046038 R14: 00007f141a045fa0 R15: 00007f141acfa000
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701
Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
RSP: 0018:ffffc9000a37f360 EFLAGS: 00010206
RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888011dadc40
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88804b59b600
RBP: ffffc9000a37f510 R08: ffffc9000a37f540 R09: 0000000000000002
R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
R13: 1ffff9200146fe88 R14: dffffc0000000000 R15: ffffffff8ba6c880
FS: 00007f141ad1a640(0000) GS:ffff888098fe0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f1419f54028 CR3: 000000006763f000 CR4: 0000000000752ef0
PKRU: 00000000
----------------
Code disassembly (best guess):
0: f2 00 66 43 repnz add %ah,0x43(%rsi)
4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1)
b: c6
c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax
12: 44 39 fe cmp %r15d,%esi
15: 48 89 5c 24 40 mov %rbx,0x40(%rsp)
1a: 48 83 c3 48 add $0x48,%rbx
1e: 48 89 d8 mov %rbx,%rax
21: 48 c1 e8 03 shr $0x3,%rax
25: 48 89 44 24 30 mov %rax,0x30(%rsp)
* 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction
2f: 84 c0 test %al,%al
31: 0f 85 d6 11 00 00 jne 0x120d
37: 44 0f b6 33 movzbl (%rbx),%r14d
3b: 41 ff ce dec %r14d
3e: bf .byte 0xbf
3f: 53 push %rbx
syz_mount_image$xfs(&(0x7f0000009680), &(0x7f00000096c0)='./file0\x00', 0x0, &(0x7f0000009700), 0x1, 0x965c, &(0x7f0000009740)="$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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGawc/8xXtcFHMc/d3B3CAUiRki9gaACwePkjl+CilY0z8ZZYevXJJicAh2peDNAFpRa1NzSyZa1SP2DtFZrbMZaTcpsi9mKmvbDuQUl/Rjr1IpskXXuC9/veff1uPl9n+83f/B4/HH3/XyO1+eA7Xmfz3f+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOC1095xec+IugGnRvQ/CD/vPPF5/r8/tG7Pnn3jK5/LX37PIJes73/Q29vbu23CL24pHzYVRVH6bpeVj0dVj0vX375/6tnl717cd/dts5duWf7Y7o09Y366YPuRhhNnG4rV163v6rywvijCiIZic+lgXl1RhMaG4q7SQWvpoKmheKh00Hbi4KziR6WDudfe0LW2dOIV3xrOOO0dO4oRA4otBvw06N//9v2XvrfyeYhLVq42sij3f8X3n2iq+lrFKfqvXD/UVfdf8x8QOKXa+l/xfOXzEJd8xf2/9W8fOzzY107df+X6oV7/kM4gz/8DGq1+7q96/p82yCX79s0tj48q9b9k8X0byqdGvprn/5evH0ZU918/4Pm/9Bw/svL831QUoWGYfx1wRmnv+HTPUPf/ofsfOblqU9e//63HDq0q9d+84ZPPlU811Nj/yCHu/3VPVv1egdq0dzzQW3X/r6H/YuYgl+zrv+fWp4+X+v/T/mfO7/e1WvpvqO6/pXvjjS03b9navH7jmus7r+/8ROv8hYsWti6+qG1By4lHgpMfh/m3AmeG4d3/i9FVm7qi6OzbX/Dcyp2l/qevX/nZ8qlRNfbfOOT9f5r7Pwxqen3R2FhsXtPdvWneyY+Vw9aTH0/+skH6r+H9/4xZ5V9Wed9dVxST+vZzblywutT/g8c+93j5VGON/TcN2f9lhff7MAzDvP+vrdoM6P/oirHPlvr/0sOzusunan3/P2rI/g+7/8NwtHdU/Qs/r7FS/5eM3f33uHU4yz//g3Ry9D/++J1Xxa3DaP1DOjn6/8jtM5+KW4cx+od0cvT/vbXvXBi3Dq/TP6STo/9/Tv7r/XHr8Hr9Qzo5+j/07H+mxK3DWP1DOjn633XX+3fGrcM4/UM6Ofqfse3IHXHrcLb+IZ0c/a+rv2pC3DqM1z+kk6P/d72w6ttx63CO/iGdHP2P2/mvpXHrMEH/kE6O/nvW3f1k3Dqcq39IJ0f/X5+45B1x6/AG/UM6Ofr/wh/nvBi3DhP1D+nk6P/Rr+7YELcOb9Q/pJOj/x9+YOxg/5+wVyFM0j+kk6P/Y3P27I1bh/P0D+nk6P93hx4eF7cOk/UP6eTo/54Hpn45bh3epH9IJ0f/N11+6y1x6/Bm/UM6OfpfsuyXh+PWIegf0snR/8SfPboqbh2m6B/SydH/Nd/dcCBuHabqH9LJ0f/mc761PG4dpukf0snRf1tX0xNx6/AW/UM6Ofqfeu/EjXHrMF3/kE6O/q/+8yP/jVuHGfqHdHL0v6/xqXPj1uGt+od0cvT/v82bPhO3Dm/TP6STo/9f3XntxXHr8Hb9Qzo5+v/KPw58M24dZuof0snR/5Gl7/5L3DrM0j+kk6P/7yzvuSluHc7XP6STo//b9r54MG4dZusf0snR/4GDH/xw3DrM0T+kk6P/2S1t++LW4QL9Qzo5+l/zvnunxa1Ds/4hnRz9r9jz+a/FrcNc/UM6OfpvfHr6qLh1aNE/pJOj/72LdjXErcOF+od0cvR/vH3ZPXHrME//kE6O/n/zyNzmuHVo1T+kk6P/3Y/d8YO4dWjTP6STo//tM/5wddw6zNc/pJOj//nXXPnjuHVYoH9IJ0f/k77x0W1x67BQ/5BOjv5X/vb5o3HrsEj/kE6O/punfOrBuHVYrH9IJ0f/163+9by4dbhI/5BOjv6v3PWTL8atwxL9Qzo5+q87esN5ceuwVP+QTo7+nxk95oW4dbhY/5BOjv4f6r5/ddw6XKJ/SCdH/7fv2Pv7uHW4VP+QTo7+D/5/8hVx67BM/5DOzVu2fnxNV1fnJi+88MKLvhen+ycTkNrL0Z/u3wkAAAAAAAAAAAAAAHAqOf5zotP9ZwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgJXbgQAAAAAAAyP+1EaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwAwckAAAAAIL+v25HoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8FQAAAD//0x8Hu0=")
r0 = openat(0xffffffffffffff9c, &(0x7f0000000040)='./file1\x00', 0x101042, 0x1c6)
ioctl$XFS_IOC_ERROR_INJECTION(r0, 0x40085874, &(0x7f0000000000)={0x5, 0x9})
r1 = openat(0xffffffffffffff9c, &(0x7f0000000040)='./file1\x00', 0x42, 0x1ff)
ioctl$XFS_IOC_SCRUBV_METADATA(r1, 0xc0285840, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x0, 0xfff9, 0x1, 0x0, &(0x7f0000002700)=[{0x5, 0x101, 0xfffffff1}]})
creat(0x0, 0x30)
On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote: > Dear Linux kernel developers and maintainers, > > We are writing to report a general protection fault discovered in the > xfs subsystem with our generated syzkaller specifications. This issue > is reproducible on the latest version of linux (v6.19-rc6, commit > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from > kernel is listed below (formatted by syz-symbolize): > > --- > > loop0: detected capacity change from 0 to 32768 > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > XFS (loop0): Ending clean mount > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line > 309, on filesystem "loop0" > Oops: general protection fault, probably for non-canonical address > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full) > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0 > PKRU: 55555554 > Call Trace: > <TASK> > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930 > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > vfs_ioctl fs/ioctl.c:51 [inline] > __do_sys_ioctl fs/ioctl.c:597 [inline] > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > RIP: 0033:0x45a879 > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48 > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879 > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005 > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990 > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8 > </TASK> > Modules linked in: > ---[ end trace 0000000000000000 ]--- > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0 > PKRU: 55555554 > ---------------- > Code disassembly (best guess): > 0: f2 00 66 43 repnz add %ah,0x43(%rsi) > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1) > b: c6 > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax > 12: 44 39 fe cmp %r15d,%esi > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp) > 1a: 48 83 c3 48 add $0x48,%rbx > 1e: 48 89 d8 mov %rbx,%rax > 21: 48 c1 e8 03 shr $0x3,%rax > 25: 48 89 44 24 30 mov %rax,0x30(%rsp) > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction > 2f: 84 c0 test %al,%al > 31: 0f 85 d6 11 00 00 jne 0x120d > 37: 44 0f b6 33 movzbl (%rbx),%r14d > 3b: 41 ff ce dec %r14d > 3e: bf .byte 0xbf > 3f: 53 push %rbx > > --- > > The root cause of this issue is that in xchk_btree(), where the > argument cur can be NULL but the function assume cur is not NULL, > leading to a NULL pointer dereference when accessing member > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701). > > We can add a NULL check at the beginning of xchk_btree() to fix this issue: > ``` > --- a/fs/xfs/scrub/btree.c > +++ b/fs/xfs/scrub/btree.c > @@ -693,6 +693,9 @@ xchk_btree( > int level; > int error = 0; > > + if (!cur) > + return -EINVAL; Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt revalidation in xrep_revalidate_allocbt. Why is that pointer 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we fail to attach the AGF to sc->sa.agf_bp? > /* > * Allocate the btree scrub context from the heap, because this > * structure can get rather large. Don't let a caller feed us a > ``` > > After applying changes above and re-running reproducer, another issues > is triggered: > > --- > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner > > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > XFS (loop6): Ending clean mount > ================================================================== > BUG: KASAN: slab-use-after-free in > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096 > > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty > #30 PREEMPT(full) > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > Call Trace: > <TASK> > __dump_stack lib/dump_stack.c:94 [inline] > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120 > print_address_description mm/kasan/report.c:378 [inline] > print_report+0x17e/0x810 mm/kasan/report.c:482 > kasan_report+0x147/0x180 mm/kasan/report.c:595 > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > vfs_ioctl fs/ioctl.c:51 [inline] > __do_sys_ioctl fs/ioctl.c:597 [inline] > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > RIP: 0033:0x7f71bddb459d > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000 > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000 > </TASK> > > Allocated by task 14096: > kasan_save_stack mm/kasan/common.c:57 [inline] > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > unpoison_slab_object mm/kasan/common.c:340 [inline] > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366 > kasan_slab_alloc include/linux/kasan.h:253 [inline] > slab_post_alloc_hook mm/slub.c:4953 [inline] > slab_alloc_node mm/slub.c:5263 [inline] > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270 > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485 > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612 > xchk_ag_init fs/xfs/scrub/common.c:698 [inline] > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943 > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35 > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709 > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > vfs_ioctl fs/ioctl.c:51 [inline] > __do_sys_ioctl fs/ioctl.c:597 [inline] > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > Freed by task 14096: > kasan_save_stack mm/kasan/common.c:57 [inline] > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584 > poison_slab_object mm/kasan/common.c:253 [inline] > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285 > kasan_slab_free include/linux/kasan.h:235 [inline] > slab_free_hook mm/slub.c:2540 [inline] > slab_free mm/slub.c:6670 [inline] > kmem_cache_free+0x197/0x620 mm/slub.c:6781 > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351 > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190 > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395 > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > vfs_ioctl fs/ioctl.c:51 [inline] > __do_sys_ioctl fs/ioctl.c:597 [inline] > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > The buggy address belongs to the object at ffff88806af035c8 > which belongs to the cache xfs_bnobt_cur of size 232 > The buggy address is located 16 bytes inside of > freed 232-byte region [ffff88806af035c8, ffff88806af036b0) > > The buggy address belongs to the physical page: > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03 > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff) > page_type: f5(slab) > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003 > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000 > page dumped because: kasan: bad access detected > page_owner tracks the page as allocated > page last allocated via order 0, migratetype Unmovable, gfp_mask > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP), > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822 > set_page_owner include/linux/page_owner.h:32 [inline] > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884 > prep_new_page mm/page_alloc.c:1892 [inline] > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945 > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240 > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 > alloc_slab_page mm/slub.c:3075 [inline] > allocate_slab+0x86/0x3b0 mm/slub.c:3248 > new_slab mm/slub.c:3302 [inline] > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656 > __slab_alloc+0x65/0x100 mm/slub.c:4779 > __slab_alloc_node mm/slub.c:4855 [inline] > slab_alloc_node mm/slub.c:5251 [inline] > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270 > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511 > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149 > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047 > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555 > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595 > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707 > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741 > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242 > page last free pid 785 tgid 785 stack trace: > reset_page_owner include/linux/page_owner.h:25 [inline] > free_pages_prepare mm/page_alloc.c:1433 [inline] > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973 > vfree+0x25a/0x400 mm/vmalloc.c:3466 > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385 > process_one_work kernel/workqueue.c:3257 [inline] > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340 > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421 > kthread+0x711/0x8a0 kernel/kthread.c:463 > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 > > Memory state around the buggy address: > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb > ^ > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb > ================================================================== > --- > > I also analyzed the root cause of this issue. In > xchk_btree_check_block_owner(), bs->cur is an alias for > bs->sc->sa.bnocur (or rmap_cur, > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400). > The issue occurs when error injection triggers a failure path: > > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space() > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a > non-zero error due to error injection > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which > points to bs->sc->sa.bnocur). > 4. Memory pointed to by bs->cur is freed. > > Control returns to xchk_btree_check_block_owner(), which subsequently > accesses bs->cur->bc_ops, triggering the UAF. > > P.S. this issue can also be triggered independently by syzkaller using > our generated specs. > > To fix this issue, we can cache values of > xfs_btree_is_bno(bs->cur->bc_ops) and > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function: > ``` > --- a/fs/xfs/scrub/btree.c > +++ b/fs/xfs/scrub/btree.c > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner( > xfs_agnumber_t agno; > xfs_agblock_t agbno; > bool init_sa; > + bool is_bno; > + bool is_rmap; > int error = 0; > > if (!bs->cur) > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner( > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr); > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr); > > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops); > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops); > + > /* > * If the btree being examined is not itself a per-AG btree, initialize > * sc->sa so that we can check for the presence of an ownership record > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner( > * have to nullify it (to shut down further block owner checks) if > * self-xref encounters problems. > */ > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops)) > + if (!bs->sc->sa.bno_cur && is_bno) > bs->cur = NULL; > > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo); > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops)) > + if (!bs->sc->sa.rmap_cur && is_rmap) Indentation problems notwithstanding, that looks like a correct resolution to the UAF problem. > bs->cur = NULL; > > out_free: > ``` > > After applying above changes, reproducer ran for ~35 minutes without > triggering any issues. > > If above solutions are acceptable, we are happy to submit patches :) > > The kernel console output, kernel config, syzkaller reproducer, and C > reproducer are also attached to help with analysis. > > Please let me know if any further information is required. > > Best Regards, > Jiaming Zhang Please just link to your dashboard, don't send a 1MB email to dozens of people. --D
Darrick J. Wong <djwong@kernel.org> 于2026年1月21日周三 03:17写道:
>
> On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote:
> > Dear Linux kernel developers and maintainers,
> >
> > We are writing to report a general protection fault discovered in the
> > xfs subsystem with our generated syzkaller specifications. This issue
> > is reproducible on the latest version of linux (v6.19-rc6, commit
> > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from
> > kernel is listed below (formatted by syz-symbolize):
> >
> > ---
> >
> > loop0: detected capacity change from 0 to 32768
> > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
> > XFS (loop0): Ending clean mount
> > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line
> > 309, on filesystem "loop0"
> > Oops: general protection fault, probably for non-canonical address
> > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI
> > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]
> > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full)
> > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
> > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701
> > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe
> > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f
> > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
> > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206
> > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80
> > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00
> > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002
> > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
> > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880
> > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0
> > PKRU: 55555554
> > Call Trace:
> > <TASK>
> > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
> > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930
> > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
> > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
> > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
> > vfs_ioctl fs/ioctl.c:51 [inline]
> > __do_sys_ioctl fs/ioctl.c:597 [inline]
> > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
> > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
> > entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > RIP: 0033:0x45a879
> > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48
> > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d
> > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
> > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879
> > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005
> > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005
> > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990
> > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8
> > </TASK>
> > Modules linked in:
> > ---[ end trace 0000000000000000 ]---
> > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701
> > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe
> > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f
> > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53
> > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206
> > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80
> > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00
> > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002
> > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20
> > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880
> > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0
> > PKRU: 55555554
> > ----------------
> > Code disassembly (best guess):
> > 0: f2 00 66 43 repnz add %ah,0x43(%rsi)
> > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1)
> > b: c6
> > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax
> > 12: 44 39 fe cmp %r15d,%esi
> > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp)
> > 1a: 48 83 c3 48 add $0x48,%rbx
> > 1e: 48 89 d8 mov %rbx,%rax
> > 21: 48 c1 e8 03 shr $0x3,%rax
> > 25: 48 89 44 24 30 mov %rax,0x30(%rsp)
> > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction
> > 2f: 84 c0 test %al,%al
> > 31: 0f 85 d6 11 00 00 jne 0x120d
> > 37: 44 0f b6 33 movzbl (%rbx),%r14d
> > 3b: 41 ff ce dec %r14d
> > 3e: bf .byte 0xbf
> > 3f: 53 push %rbx
> >
> > ---
> >
> > The root cause of this issue is that in xchk_btree(), where the
> > argument cur can be NULL but the function assume cur is not NULL,
> > leading to a NULL pointer dereference when accessing member
> > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701).
> >
> > We can add a NULL check at the beginning of xchk_btree() to fix this issue:
> > ```
> > --- a/fs/xfs/scrub/btree.c
> > +++ b/fs/xfs/scrub/btree.c
> > @@ -693,6 +693,9 @@ xchk_btree(
> > int level;
> > int error = 0;
> >
> > + if (!cur)
> > + return -EINVAL;
>
> Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt
> revalidation in xrep_revalidate_allocbt. Why is that pointer
> 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in
> xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we
> fail to attach the AGF to sc->sa.agf_bp?
Thanks for the feedback! I dug deeper into the root cause as you
suggested, here is what I found:
(1) The program executes XFS_IOC_ERROR_INJECTION branch in
xfs_file_ioctl(), causes xfs_btree_check_block() to return
-EFSCORRUPTED, which consequently marks the AG as sick (via
xfs_btree_mark_sick).
(2) Then, the program executes XFS_IOC_SCRUBV_METADATA branch in
xfs_file_ioctl(), the setup function (xchk_setup_ag_allocbt())
attempts to initialize the cursor. However, the sick flag makes kernel
executes xchk_ag_btree_del_cursor_if_sick(), the cursor is freed and
nullified.
(3) Lastly, the repair_eval function (xrep_revalidate_allocbt()) calls
xchk_allocbt(). Since xchk_allocbt() assumes the cursor is valid, it
passes the NULL pointer to xchk_btree, leading to the null-ptr-deref.
Based on above analysis, I think sc->sa.cnt_cur being NULL is expected
when the AG is sick. I think the appropriate fix is to check NULL
inside xchk_allocbt():
```
--- a/fs/xfs/scrub/alloc.c
+++ b/fs/xfs/scrub/alloc.c
@@ -170,6 +170,9 @@ xchk_allocbt(
return -EIO;
}
+ if (!cur)
+ return -ENOENT;
+
return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca);
}
```
What do you think? :)
>
> > /*
> > * Allocate the btree scrub context from the heap, because this
> > * structure can get rather large. Don't let a caller feed us a
> > ```
> >
> > After applying changes above and re-running reproducer, another issues
> > is triggered:
> >
> > ---
> > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner
> >
> > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4
> > XFS (loop6): Ending clean mount
> > ==================================================================
> > BUG: KASAN: slab-use-after-free in
> > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401
> > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096
> >
> > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty
> > #30 PREEMPT(full)
> > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
> > Call Trace:
> > <TASK>
> > __dump_stack lib/dump_stack.c:94 [inline]
> > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120
> > print_address_description mm/kasan/report.c:378 [inline]
> > print_report+0x17e/0x810 mm/kasan/report.c:482
> > kasan_report+0x147/0x180 mm/kasan/report.c:595
> > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401
> > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797
> > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
> > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925
> > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
> > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
> > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
> > vfs_ioctl fs/ioctl.c:51 [inline]
> > __do_sys_ioctl fs/ioctl.c:597 [inline]
> > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
> > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
> > entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > RIP: 0033:0x7f71bddb459d
> > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48
> > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d
> > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
> > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d
> > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005
> > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000
> > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000
> > </TASK>
> >
> > Allocated by task 14096:
> > kasan_save_stack mm/kasan/common.c:57 [inline]
> > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78
> > unpoison_slab_object mm/kasan/common.c:340 [inline]
> > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366
> > kasan_slab_alloc include/linux/kasan.h:253 [inline]
> > slab_post_alloc_hook mm/slub.c:4953 [inline]
> > slab_alloc_node mm/slub.c:5263 [inline]
> > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270
> > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline]
> > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485
> > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612
> > xchk_ag_init fs/xfs/scrub/common.c:698 [inline]
> > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943
> > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35
> > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709
> > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
> > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
> > vfs_ioctl fs/ioctl.c:51 [inline]
> > __do_sys_ioctl fs/ioctl.c:597 [inline]
> > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
> > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
> > entry_SYSCALL_64_after_hwframe+0x77/0x7f
> >
> > Freed by task 14096:
> > kasan_save_stack mm/kasan/common.c:57 [inline]
> > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78
> > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584
> > poison_slab_object mm/kasan/common.c:253 [inline]
> > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285
> > kasan_slab_free include/linux/kasan.h:235 [inline]
> > slab_free_hook mm/slub.c:2540 [inline]
> > slab_free mm/slub.c:6670 [inline]
> > kmem_cache_free+0x197/0x620 mm/slub.c:6781
> > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351
> > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190
> > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395
> > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797
> > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173
> > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925
> > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1
> > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981
> > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266
> > vfs_ioctl fs/ioctl.c:51 [inline]
> > __do_sys_ioctl fs/ioctl.c:597 [inline]
> > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
> > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94
> > entry_SYSCALL_64_after_hwframe+0x77/0x7f
> >
> > The buggy address belongs to the object at ffff88806af035c8
> > which belongs to the cache xfs_bnobt_cur of size 232
> > The buggy address is located 16 bytes inside of
> > freed 232-byte region [ffff88806af035c8, ffff88806af036b0)
> >
> > The buggy address belongs to the physical page:
> > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03
> > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff)
> > page_type: f5(slab)
> > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003
> > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000
> > page dumped because: kasan: bad access detected
> > page_owner tracks the page as allocated
> > page last allocated via order 0, migratetype Unmovable, gfp_mask
> > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP),
> > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822
> > set_page_owner include/linux/page_owner.h:32 [inline]
> > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884
> > prep_new_page mm/page_alloc.c:1892 [inline]
> > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945
> > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240
> > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486
> > alloc_slab_page mm/slub.c:3075 [inline]
> > allocate_slab+0x86/0x3b0 mm/slub.c:3248
> > new_slab mm/slub.c:3302 [inline]
> > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656
> > __slab_alloc+0x65/0x100 mm/slub.c:4779
> > __slab_alloc_node mm/slub.c:4855 [inline]
> > slab_alloc_node mm/slub.c:5251 [inline]
> > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270
> > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline]
> > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511
> > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149
> > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047
> > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555
> > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595
> > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707
> > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741
> > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242
> > page last free pid 785 tgid 785 stack trace:
> > reset_page_owner include/linux/page_owner.h:25 [inline]
> > free_pages_prepare mm/page_alloc.c:1433 [inline]
> > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973
> > vfree+0x25a/0x400 mm/vmalloc.c:3466
> > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385
> > process_one_work kernel/workqueue.c:3257 [inline]
> > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340
> > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421
> > kthread+0x711/0x8a0 kernel/kthread.c:463
> > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158
> > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
> >
> > Memory state around the buggy address:
> > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb
> > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
> > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb
> > ^
> > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
> > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb
> > ==================================================================
> > ---
> >
> > I also analyzed the root cause of this issue. In
> > xchk_btree_check_block_owner(), bs->cur is an alias for
> > bs->sc->sa.bnocur (or rmap_cur,
> > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400).
> > The issue occurs when error injection triggers a failure path:
> >
> > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space()
> > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a
> > non-zero error due to error injection
> > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which
> > points to bs->sc->sa.bnocur).
> > 4. Memory pointed to by bs->cur is freed.
> >
> > Control returns to xchk_btree_check_block_owner(), which subsequently
> > accesses bs->cur->bc_ops, triggering the UAF.
> >
> > P.S. this issue can also be triggered independently by syzkaller using
> > our generated specs.
> >
> > To fix this issue, we can cache values of
> > xfs_btree_is_bno(bs->cur->bc_ops) and
> > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function:
> > ```
> > --- a/fs/xfs/scrub/btree.c
> > +++ b/fs/xfs/scrub/btree.c
> > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner(
> > xfs_agnumber_t agno;
> > xfs_agblock_t agbno;
> > bool init_sa;
> > + bool is_bno;
> > + bool is_rmap;
> > int error = 0;
> >
> > if (!bs->cur)
> > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner(
> > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr);
> > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr);
> >
> > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops);
> > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops);
> > +
> > /*
> > * If the btree being examined is not itself a per-AG btree, initialize
> > * sc->sa so that we can check for the presence of an ownership record
> > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner(
> > * have to nullify it (to shut down further block owner checks) if
> > * self-xref encounters problems.
> > */
> > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops))
> > + if (!bs->sc->sa.bno_cur && is_bno)
> > bs->cur = NULL;
> >
> > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo);
> > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops))
> > + if (!bs->sc->sa.rmap_cur && is_rmap)
>
> Indentation problems notwithstanding, that looks like a correct
> resolution to the UAF problem.
>
> > bs->cur = NULL;
> >
> > out_free:
> > ```
> >
> > After applying above changes, reproducer ran for ~35 minutes without
> > triggering any issues.
> >
> > If above solutions are acceptable, we are happy to submit patches :)
> >
> > The kernel console output, kernel config, syzkaller reproducer, and C
> > reproducer are also attached to help with analysis.
> >
> > Please let me know if any further information is required.
> >
> > Best Regards,
> > Jiaming Zhang
>
> Please just link to your dashboard, don't send a 1MB email to dozens
> of people.
>
> --D
On Wed, Jan 21, 2026 at 06:14:06PM +0800, Jiaming Zhang wrote: > Darrick J. Wong <djwong@kernel.org> 于2026年1月21日周三 03:17写道: > > > > On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote: > > > Dear Linux kernel developers and maintainers, > > > > > > We are writing to report a general protection fault discovered in the > > > xfs subsystem with our generated syzkaller specifications. This issue > > > is reproducible on the latest version of linux (v6.19-rc6, commit > > > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from > > > kernel is listed below (formatted by syz-symbolize): > > > > > > --- > > > > > > loop0: detected capacity change from 0 to 32768 > > > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > XFS (loop0): Ending clean mount > > > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line > > > 309, on filesystem "loop0" > > > Oops: general protection fault, probably for non-canonical address > > > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI > > > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] > > > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full) > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > PKRU: 55555554 > > > Call Trace: > > > <TASK> > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930 > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > RIP: 0033:0x45a879 > > > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48 > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 > > > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879 > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005 > > > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990 > > > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8 > > > </TASK> > > > Modules linked in: > > > ---[ end trace 0000000000000000 ]--- > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > PKRU: 55555554 > > > ---------------- > > > Code disassembly (best guess): > > > 0: f2 00 66 43 repnz add %ah,0x43(%rsi) > > > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1) > > > b: c6 > > > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax > > > 12: 44 39 fe cmp %r15d,%esi > > > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp) > > > 1a: 48 83 c3 48 add $0x48,%rbx > > > 1e: 48 89 d8 mov %rbx,%rax > > > 21: 48 c1 e8 03 shr $0x3,%rax > > > 25: 48 89 44 24 30 mov %rax,0x30(%rsp) > > > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction > > > 2f: 84 c0 test %al,%al > > > 31: 0f 85 d6 11 00 00 jne 0x120d > > > 37: 44 0f b6 33 movzbl (%rbx),%r14d > > > 3b: 41 ff ce dec %r14d > > > 3e: bf .byte 0xbf > > > 3f: 53 push %rbx > > > > > > --- > > > > > > The root cause of this issue is that in xchk_btree(), where the > > > argument cur can be NULL but the function assume cur is not NULL, > > > leading to a NULL pointer dereference when accessing member > > > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701). > > > > > > We can add a NULL check at the beginning of xchk_btree() to fix this issue: > > > ``` > > > --- a/fs/xfs/scrub/btree.c > > > +++ b/fs/xfs/scrub/btree.c > > > @@ -693,6 +693,9 @@ xchk_btree( > > > int level; > > > int error = 0; > > > > > > + if (!cur) > > > + return -EINVAL; > > > > Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt > > revalidation in xrep_revalidate_allocbt. Why is that pointer > > 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in > > xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we > > fail to attach the AGF to sc->sa.agf_bp? > > Thanks for the feedback! I dug deeper into the root cause as you > suggested, here is what I found: > > (1) The program executes XFS_IOC_ERROR_INJECTION branch in > xfs_file_ioctl(), causes xfs_btree_check_block() to return > -EFSCORRUPTED, which consequently marks the AG as sick (via > xfs_btree_mark_sick). "marks the AG as sick" ... which structure, specifically? I'm guessing XFS_SICK_AG_CNTBT from context, but it'd be useful to state these things from the data you've collected rather than relying on me to infer what's going on. > (2) Then, the program executes XFS_IOC_SCRUBV_METADATA branch in > xfs_file_ioctl(), the setup function (xchk_setup_ag_allocbt()) Which scrub type is it calling, bnobt or cntbt? > attempts to initialize the cursor. However, the sick flag makes kernel > executes xchk_ag_btree_del_cursor_if_sick(), the cursor is freed and > nullified. Are you talking about the ->setup call after we've rebuilt both free space btrees, just prior to step three? When that happens, xchk_ag_btree_del_cursor_if_sick will see the XREP_ALREADY_FIXED flag and mask out sc->sick_mask from mask: /* * If we just repaired some AG metadata, sc->sick_mask will reflect all * the per-AG metadata types that were repaired. Exclude these from * the filesystem health query because we have not yet updated the * health status and we want everything to be scanned. */ if ((sc->flags & XREP_ALREADY_FIXED) && type_to_health_flag[sc->sm->sm_type].group == XHG_AG) mask &= ~sc->sick_mask; > (3) Lastly, the repair_eval function (xrep_revalidate_allocbt()) calls > xchk_allocbt(). Since xchk_allocbt() assumes the cursor is valid, it > passes the NULL pointer to xchk_btree, leading to the null-ptr-deref. Sure, but xrep_allocbt sets sc->sick_mask to XFS_SICK_AG_BNOBT | XFS_SICK_AG so any pre-existing bnobt or cntbt sick state in the xfs_group will be ignored and neither cursor will be deleted when setting up the revalidation. > Based on above analysis, I think sc->sa.cnt_cur being NULL is expected > when the AG is sick. I think the appropriate fix is to check NULL > inside xchk_allocbt(): > ``` > --- a/fs/xfs/scrub/alloc.c > +++ b/fs/xfs/scrub/alloc.c > @@ -170,6 +170,9 @@ xchk_allocbt( > return -EIO; > } > > + if (!cur) > + return -ENOENT; This is not correct either. We've just rebuilt the bnobt and cntbt for the AG which means that cursors for both btrees should be loaded and ready for revalidation. I think you need to look into xchk_ag_btree_del_cursor_if_sick to figure out exactly what the xfs_group's sick state is, what @mask is, and what sc->sick_mask is, and from that figure out if it's really deleting the cntbt cursor. This is made more difficult because XFS error injection is probabilistic so it could trigger on /any/ btree. --D > + > return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca); > } > ``` > What do you think? :) > > > > > > /* > > > * Allocate the btree scrub context from the heap, because this > > > * structure can get rather large. Don't let a caller feed us a > > > ``` > > > > > > After applying changes above and re-running reproducer, another issues > > > is triggered: > > > > > > --- > > > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner > > > > > > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > XFS (loop6): Ending clean mount > > > ================================================================== > > > BUG: KASAN: slab-use-after-free in > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096 > > > > > > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty > > > #30 PREEMPT(full) > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > Call Trace: > > > <TASK> > > > __dump_stack lib/dump_stack.c:94 [inline] > > > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120 > > > print_address_description mm/kasan/report.c:378 [inline] > > > print_report+0x17e/0x810 mm/kasan/report.c:482 > > > kasan_report+0x147/0x180 mm/kasan/report.c:595 > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > RIP: 0033:0x7f71bddb459d > > > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 > > > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000 > > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > > > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000 > > > </TASK> > > > > > > Allocated by task 14096: > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > unpoison_slab_object mm/kasan/common.c:340 [inline] > > > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366 > > > kasan_slab_alloc include/linux/kasan.h:253 [inline] > > > slab_post_alloc_hook mm/slub.c:4953 [inline] > > > slab_alloc_node mm/slub.c:5263 [inline] > > > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270 > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485 > > > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612 > > > xchk_ag_init fs/xfs/scrub/common.c:698 [inline] > > > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943 > > > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35 > > > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709 > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > Freed by task 14096: > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584 > > > poison_slab_object mm/kasan/common.c:253 [inline] > > > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285 > > > kasan_slab_free include/linux/kasan.h:235 [inline] > > > slab_free_hook mm/slub.c:2540 [inline] > > > slab_free mm/slub.c:6670 [inline] > > > kmem_cache_free+0x197/0x620 mm/slub.c:6781 > > > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351 > > > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190 > > > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395 > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > The buggy address belongs to the object at ffff88806af035c8 > > > which belongs to the cache xfs_bnobt_cur of size 232 > > > The buggy address is located 16 bytes inside of > > > freed 232-byte region [ffff88806af035c8, ffff88806af036b0) > > > > > > The buggy address belongs to the physical page: > > > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03 > > > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff) > > > page_type: f5(slab) > > > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003 > > > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000 > > > page dumped because: kasan: bad access detected > > > page_owner tracks the page as allocated > > > page last allocated via order 0, migratetype Unmovable, gfp_mask > > > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP), > > > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822 > > > set_page_owner include/linux/page_owner.h:32 [inline] > > > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884 > > > prep_new_page mm/page_alloc.c:1892 [inline] > > > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945 > > > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240 > > > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 > > > alloc_slab_page mm/slub.c:3075 [inline] > > > allocate_slab+0x86/0x3b0 mm/slub.c:3248 > > > new_slab mm/slub.c:3302 [inline] > > > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656 > > > __slab_alloc+0x65/0x100 mm/slub.c:4779 > > > __slab_alloc_node mm/slub.c:4855 [inline] > > > slab_alloc_node mm/slub.c:5251 [inline] > > > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270 > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511 > > > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149 > > > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047 > > > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555 > > > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595 > > > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707 > > > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741 > > > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242 > > > page last free pid 785 tgid 785 stack trace: > > > reset_page_owner include/linux/page_owner.h:25 [inline] > > > free_pages_prepare mm/page_alloc.c:1433 [inline] > > > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973 > > > vfree+0x25a/0x400 mm/vmalloc.c:3466 > > > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385 > > > process_one_work kernel/workqueue.c:3257 [inline] > > > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340 > > > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421 > > > kthread+0x711/0x8a0 kernel/kthread.c:463 > > > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 > > > > > > Memory state around the buggy address: > > > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb > > > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb > > > ^ > > > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb > > > ================================================================== > > > --- > > > > > > I also analyzed the root cause of this issue. In > > > xchk_btree_check_block_owner(), bs->cur is an alias for > > > bs->sc->sa.bnocur (or rmap_cur, > > > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400). > > > The issue occurs when error injection triggers a failure path: > > > > > > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space() > > > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a > > > non-zero error due to error injection > > > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which > > > points to bs->sc->sa.bnocur). > > > 4. Memory pointed to by bs->cur is freed. > > > > > > Control returns to xchk_btree_check_block_owner(), which subsequently > > > accesses bs->cur->bc_ops, triggering the UAF. > > > > > > P.S. this issue can also be triggered independently by syzkaller using > > > our generated specs. > > > > > > To fix this issue, we can cache values of > > > xfs_btree_is_bno(bs->cur->bc_ops) and > > > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function: > > > ``` > > > --- a/fs/xfs/scrub/btree.c > > > +++ b/fs/xfs/scrub/btree.c > > > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner( > > > xfs_agnumber_t agno; > > > xfs_agblock_t agbno; > > > bool init_sa; > > > + bool is_bno; > > > + bool is_rmap; > > > int error = 0; > > > > > > if (!bs->cur) > > > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner( > > > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr); > > > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr); > > > > > > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops); > > > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops); > > > + > > > /* > > > * If the btree being examined is not itself a per-AG btree, initialize > > > * sc->sa so that we can check for the presence of an ownership record > > > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner( > > > * have to nullify it (to shut down further block owner checks) if > > > * self-xref encounters problems. > > > */ > > > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops)) > > > + if (!bs->sc->sa.bno_cur && is_bno) > > > bs->cur = NULL; > > > > > > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo); > > > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops)) > > > + if (!bs->sc->sa.rmap_cur && is_rmap) > > > > Indentation problems notwithstanding, that looks like a correct > > resolution to the UAF problem. > > > > > bs->cur = NULL; > > > > > > out_free: > > > ``` > > > > > > After applying above changes, reproducer ran for ~35 minutes without > > > triggering any issues. > > > > > > If above solutions are acceptable, we are happy to submit patches :) > > > > > > The kernel console output, kernel config, syzkaller reproducer, and C > > > reproducer are also attached to help with analysis. > > > > > > Please let me know if any further information is required. > > > > > > Best Regards, > > > Jiaming Zhang > > > > Please just link to your dashboard, don't send a 1MB email to dozens > > of people. > > > > --D >
Darrick J. Wong <djwong@kernel.org> 于2026年1月22日周四 03:23写道: > > On Wed, Jan 21, 2026 at 06:14:06PM +0800, Jiaming Zhang wrote: > > Darrick J. Wong <djwong@kernel.org> 于2026年1月21日周三 03:17写道: > > > > > > On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote: > > > > Dear Linux kernel developers and maintainers, > > > > > > > > We are writing to report a general protection fault discovered in the > > > > xfs subsystem with our generated syzkaller specifications. This issue > > > > is reproducible on the latest version of linux (v6.19-rc6, commit > > > > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from > > > > kernel is listed below (formatted by syz-symbolize): > > > > > > > > --- > > > > > > > > loop0: detected capacity change from 0 to 32768 > > > > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > XFS (loop0): Ending clean mount > > > > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line > > > > 309, on filesystem "loop0" > > > > Oops: general protection fault, probably for non-canonical address > > > > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI > > > > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] > > > > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full) > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > PKRU: 55555554 > > > > Call Trace: > > > > <TASK> > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930 > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > RIP: 0033:0x45a879 > > > > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48 > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 > > > > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879 > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005 > > > > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990 > > > > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8 > > > > </TASK> > > > > Modules linked in: > > > > ---[ end trace 0000000000000000 ]--- > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > PKRU: 55555554 > > > > ---------------- > > > > Code disassembly (best guess): > > > > 0: f2 00 66 43 repnz add %ah,0x43(%rsi) > > > > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1) > > > > b: c6 > > > > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax > > > > 12: 44 39 fe cmp %r15d,%esi > > > > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp) > > > > 1a: 48 83 c3 48 add $0x48,%rbx > > > > 1e: 48 89 d8 mov %rbx,%rax > > > > 21: 48 c1 e8 03 shr $0x3,%rax > > > > 25: 48 89 44 24 30 mov %rax,0x30(%rsp) > > > > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction > > > > 2f: 84 c0 test %al,%al > > > > 31: 0f 85 d6 11 00 00 jne 0x120d > > > > 37: 44 0f b6 33 movzbl (%rbx),%r14d > > > > 3b: 41 ff ce dec %r14d > > > > 3e: bf .byte 0xbf > > > > 3f: 53 push %rbx > > > > > > > > --- > > > > > > > > The root cause of this issue is that in xchk_btree(), where the > > > > argument cur can be NULL but the function assume cur is not NULL, > > > > leading to a NULL pointer dereference when accessing member > > > > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701). > > > > > > > > We can add a NULL check at the beginning of xchk_btree() to fix this issue: > > > > ``` > > > > --- a/fs/xfs/scrub/btree.c > > > > +++ b/fs/xfs/scrub/btree.c > > > > @@ -693,6 +693,9 @@ xchk_btree( > > > > int level; > > > > int error = 0; > > > > > > > > + if (!cur) > > > > + return -EINVAL; > > > > > > Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt > > > revalidation in xrep_revalidate_allocbt. Why is that pointer > > > 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in > > > xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we > > > fail to attach the AGF to sc->sa.agf_bp? > > > > Thanks for the feedback! I dug deeper into the root cause as you > > suggested, here is what I found: > > > > (1) The program executes XFS_IOC_ERROR_INJECTION branch in > > xfs_file_ioctl(), causes xfs_btree_check_block() to return > > -EFSCORRUPTED, which consequently marks the AG as sick (via > > xfs_btree_mark_sick). > > "marks the AG as sick" ... which structure, specifically? I'm guessing > XFS_SICK_AG_CNTBT from context, but it'd be useful to state these things > from the data you've collected rather than relying on me to infer what's > going on. > > > (2) Then, the program executes XFS_IOC_SCRUBV_METADATA branch in > > xfs_file_ioctl(), the setup function (xchk_setup_ag_allocbt()) > > Which scrub type is it calling, bnobt or cntbt? > > > attempts to initialize the cursor. However, the sick flag makes kernel > > executes xchk_ag_btree_del_cursor_if_sick(), the cursor is freed and > > nullified. > > Are you talking about the ->setup call after we've rebuilt both free > space btrees, just prior to step three? When that happens, > xchk_ag_btree_del_cursor_if_sick will see the XREP_ALREADY_FIXED flag > and mask out sc->sick_mask from mask: > > /* > * If we just repaired some AG metadata, sc->sick_mask will reflect all > * the per-AG metadata types that were repaired. Exclude these from > * the filesystem health query because we have not yet updated the > * health status and we want everything to be scanned. > */ > if ((sc->flags & XREP_ALREADY_FIXED) && > type_to_health_flag[sc->sm->sm_type].group == XHG_AG) > mask &= ~sc->sick_mask; > > > (3) Lastly, the repair_eval function (xrep_revalidate_allocbt()) calls > > xchk_allocbt(). Since xchk_allocbt() assumes the cursor is valid, it > > passes the NULL pointer to xchk_btree, leading to the null-ptr-deref. > > Sure, but xrep_allocbt sets sc->sick_mask to XFS_SICK_AG_BNOBT | > XFS_SICK_AG so any pre-existing bnobt or cntbt sick state in the > xfs_group will be ignored and neither cursor will be deleted when > setting up the revalidation. > > > Based on above analysis, I think sc->sa.cnt_cur being NULL is expected > > when the AG is sick. I think the appropriate fix is to check NULL > > inside xchk_allocbt(): > > ``` > > --- a/fs/xfs/scrub/alloc.c > > +++ b/fs/xfs/scrub/alloc.c > > @@ -170,6 +170,9 @@ xchk_allocbt( > > return -EIO; > > } > > > > + if (!cur) > > + return -ENOENT; > > This is not correct either. We've just rebuilt the bnobt and cntbt for > the AG which means that cursors for both btrees should be loaded and > ready for revalidation. > > I think you need to look into xchk_ag_btree_del_cursor_if_sick to figure > out exactly what the xfs_group's sick state is, what @mask is, and what > sc->sick_mask is, and from that figure out if it's really deleting the > cntbt cursor. This is made more difficult because XFS error injection > is probabilistic so it could trigger on /any/ btree. > > --D > > > + > > return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca); > > } > > ``` > > What do you think? :) > > > > > > > > > /* > > > > * Allocate the btree scrub context from the heap, because this > > > > * structure can get rather large. Don't let a caller feed us a > > > > ``` > > > > > > > > After applying changes above and re-running reproducer, another issues > > > > is triggered: > > > > > > > > --- > > > > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner > > > > > > > > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > XFS (loop6): Ending clean mount > > > > ================================================================== > > > > BUG: KASAN: slab-use-after-free in > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096 > > > > > > > > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty > > > > #30 PREEMPT(full) > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > Call Trace: > > > > <TASK> > > > > __dump_stack lib/dump_stack.c:94 [inline] > > > > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120 > > > > print_address_description mm/kasan/report.c:378 [inline] > > > > print_report+0x17e/0x810 mm/kasan/report.c:482 > > > > kasan_report+0x147/0x180 mm/kasan/report.c:595 > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > RIP: 0033:0x7f71bddb459d > > > > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 > > > > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000 > > > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > > > > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000 > > > > </TASK> > > > > > > > > Allocated by task 14096: > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > unpoison_slab_object mm/kasan/common.c:340 [inline] > > > > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366 > > > > kasan_slab_alloc include/linux/kasan.h:253 [inline] > > > > slab_post_alloc_hook mm/slub.c:4953 [inline] > > > > slab_alloc_node mm/slub.c:5263 [inline] > > > > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270 > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485 > > > > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612 > > > > xchk_ag_init fs/xfs/scrub/common.c:698 [inline] > > > > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943 > > > > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35 > > > > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709 > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > Freed by task 14096: > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584 > > > > poison_slab_object mm/kasan/common.c:253 [inline] > > > > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285 > > > > kasan_slab_free include/linux/kasan.h:235 [inline] > > > > slab_free_hook mm/slub.c:2540 [inline] > > > > slab_free mm/slub.c:6670 [inline] > > > > kmem_cache_free+0x197/0x620 mm/slub.c:6781 > > > > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351 > > > > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190 > > > > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395 > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > The buggy address belongs to the object at ffff88806af035c8 > > > > which belongs to the cache xfs_bnobt_cur of size 232 > > > > The buggy address is located 16 bytes inside of > > > > freed 232-byte region [ffff88806af035c8, ffff88806af036b0) > > > > > > > > The buggy address belongs to the physical page: > > > > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03 > > > > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff) > > > > page_type: f5(slab) > > > > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003 > > > > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000 > > > > page dumped because: kasan: bad access detected > > > > page_owner tracks the page as allocated > > > > page last allocated via order 0, migratetype Unmovable, gfp_mask > > > > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP), > > > > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822 > > > > set_page_owner include/linux/page_owner.h:32 [inline] > > > > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884 > > > > prep_new_page mm/page_alloc.c:1892 [inline] > > > > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945 > > > > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240 > > > > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 > > > > alloc_slab_page mm/slub.c:3075 [inline] > > > > allocate_slab+0x86/0x3b0 mm/slub.c:3248 > > > > new_slab mm/slub.c:3302 [inline] > > > > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656 > > > > __slab_alloc+0x65/0x100 mm/slub.c:4779 > > > > __slab_alloc_node mm/slub.c:4855 [inline] > > > > slab_alloc_node mm/slub.c:5251 [inline] > > > > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270 > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511 > > > > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149 > > > > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047 > > > > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555 > > > > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595 > > > > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707 > > > > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741 > > > > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242 > > > > page last free pid 785 tgid 785 stack trace: > > > > reset_page_owner include/linux/page_owner.h:25 [inline] > > > > free_pages_prepare mm/page_alloc.c:1433 [inline] > > > > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973 > > > > vfree+0x25a/0x400 mm/vmalloc.c:3466 > > > > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385 > > > > process_one_work kernel/workqueue.c:3257 [inline] > > > > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340 > > > > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421 > > > > kthread+0x711/0x8a0 kernel/kthread.c:463 > > > > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 > > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 > > > > > > > > Memory state around the buggy address: > > > > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb > > > > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb > > > > ^ > > > > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb > > > > ================================================================== > > > > --- > > > > > > > > I also analyzed the root cause of this issue. In > > > > xchk_btree_check_block_owner(), bs->cur is an alias for > > > > bs->sc->sa.bnocur (or rmap_cur, > > > > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400). > > > > The issue occurs when error injection triggers a failure path: > > > > > > > > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space() > > > > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a > > > > non-zero error due to error injection > > > > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which > > > > points to bs->sc->sa.bnocur). > > > > 4. Memory pointed to by bs->cur is freed. > > > > > > > > Control returns to xchk_btree_check_block_owner(), which subsequently > > > > accesses bs->cur->bc_ops, triggering the UAF. > > > > > > > > P.S. this issue can also be triggered independently by syzkaller using > > > > our generated specs. > > > > > > > > To fix this issue, we can cache values of > > > > xfs_btree_is_bno(bs->cur->bc_ops) and > > > > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function: > > > > ``` > > > > --- a/fs/xfs/scrub/btree.c > > > > +++ b/fs/xfs/scrub/btree.c > > > > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner( > > > > xfs_agnumber_t agno; > > > > xfs_agblock_t agbno; > > > > bool init_sa; > > > > + bool is_bno; > > > > + bool is_rmap; > > > > int error = 0; > > > > > > > > if (!bs->cur) > > > > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner( > > > > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr); > > > > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr); > > > > > > > > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops); > > > > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops); > > > > + > > > > /* > > > > * If the btree being examined is not itself a per-AG btree, initialize > > > > * sc->sa so that we can check for the presence of an ownership record > > > > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner( > > > > * have to nullify it (to shut down further block owner checks) if > > > > * self-xref encounters problems. > > > > */ > > > > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops)) > > > > + if (!bs->sc->sa.bno_cur && is_bno) > > > > bs->cur = NULL; > > > > > > > > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo); > > > > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops)) > > > > + if (!bs->sc->sa.rmap_cur && is_rmap) > > > > > > Indentation problems notwithstanding, that looks like a correct > > > resolution to the UAF problem. > > > > > > > bs->cur = NULL; > > > > > > > > out_free: > > > > ``` > > > > > > > > After applying above changes, reproducer ran for ~35 minutes without > > > > triggering any issues. > > > > > > > > If above solutions are acceptable, we are happy to submit patches :) > > > > > > > > The kernel console output, kernel config, syzkaller reproducer, and C > > > > reproducer are also attached to help with analysis. > > > > > > > > Please let me know if any further information is required. > > > > > > > > Best Regards, > > > > Jiaming Zhang > > > > > > Please just link to your dashboard, don't send a 1MB email to dozens > > > of people. > > > > > > --D > > Hi Darrick, I checked the execution path again and I have to apologize, my analysis yesterday was partly incorrect. I have new findings today that point how the cursor is nullified during the revalidation. I detailed below. In xrep_revalidate_allocbt(), xchk_allocbt() is called twice (first for BNOBT, second for CNTBT). The cause of this issue is that the first call nullified the cursor required by the second call. Let's first enter xrep_revalidate_allocbt() via following call chain: xfs_file_ioctl() -> xfs_ioc_scrubv_metadata() -> xfs_scrub_metadata() -> `sc->ops->repair_eval(sc)` -> xrep_revalidate_allocbt() xchk_allocbt() is called twice in this function. In the first call: /* Note that sc->sm->sm_type is XFS_SCRUB_TYPE_BNOPT now */ xchk_allocbt() -> xchk_btree() -> `bs->scrub_rec(bs, recp)` -> xchk_allocbt_rec() -> xchk_allocbt_xref() -> xchk_allocbt_xref_other() since sm_type is XFS_SCRUB_TYPE_BNOPT, pur is set to &sc->sa.cnt_cur. Kernel called xfs_alloc_get_rec() and returned -EFSCORRUPTED. Call chain: xfs_alloc_get_rec() -> xfs_btree_get_rec() -> xfs_btree_check_block() -> (XFS_IS_CORRUPT || XFS_TEST_ERROR), the former is false and the latter is true, return -EFSCORRUPTED. This should be caused by ioctl$XFS_IOC_ERROR_INJECTION I guess. Back to xchk_allocbt_xref_other(), after receiving -EFSCORRUPTED from xfs_alloc_get_rec(), kernel called xchk_should_check_xref(). In this function, *curpp (points to sc->sa.cnt_cur) is nullified. Back to xrep_revalidate_allocbt(), since sc->sa.cnt_cur has been nullified, it then triggered null-ptr-deref via xchk_allocbt() (second call) -> xchk_btree(). I noticed that at the beginning of xchk_should_check_xref(), it checked whether xref should be skipped. Can this issue be fixed if kernel skips xref in this case? I'm not sure. I hope the analysis is helpful. Feel free to contact me if any further information is needed. Best Regards, Jiaming Zhang
On Thu, Jan 22, 2026 at 07:30:23PM +0800, Jiaming Zhang wrote: > Darrick J. Wong <djwong@kernel.org> 于2026年1月22日周四 03:23写道: > > > > On Wed, Jan 21, 2026 at 06:14:06PM +0800, Jiaming Zhang wrote: > > > Darrick J. Wong <djwong@kernel.org> 于2026年1月21日周三 03:17写道: > > > > > > > > On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote: > > > > > Dear Linux kernel developers and maintainers, > > > > > > > > > > We are writing to report a general protection fault discovered in the > > > > > xfs subsystem with our generated syzkaller specifications. This issue > > > > > is reproducible on the latest version of linux (v6.19-rc6, commit > > > > > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from > > > > > kernel is listed below (formatted by syz-symbolize): > > > > > > > > > > --- > > > > > > > > > > loop0: detected capacity change from 0 to 32768 > > > > > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > > XFS (loop0): Ending clean mount > > > > > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line > > > > > 309, on filesystem "loop0" > > > > > Oops: general protection fault, probably for non-canonical address > > > > > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI > > > > > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] > > > > > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full) > > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > > PKRU: 55555554 > > > > > Call Trace: > > > > > <TASK> > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930 > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > RIP: 0033:0x45a879 > > > > > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48 > > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 > > > > > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879 > > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005 > > > > > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990 > > > > > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8 > > > > > </TASK> > > > > > Modules linked in: > > > > > ---[ end trace 0000000000000000 ]--- > > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > > PKRU: 55555554 > > > > > ---------------- > > > > > Code disassembly (best guess): > > > > > 0: f2 00 66 43 repnz add %ah,0x43(%rsi) > > > > > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1) > > > > > b: c6 > > > > > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax > > > > > 12: 44 39 fe cmp %r15d,%esi > > > > > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp) > > > > > 1a: 48 83 c3 48 add $0x48,%rbx > > > > > 1e: 48 89 d8 mov %rbx,%rax > > > > > 21: 48 c1 e8 03 shr $0x3,%rax > > > > > 25: 48 89 44 24 30 mov %rax,0x30(%rsp) > > > > > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction > > > > > 2f: 84 c0 test %al,%al > > > > > 31: 0f 85 d6 11 00 00 jne 0x120d > > > > > 37: 44 0f b6 33 movzbl (%rbx),%r14d > > > > > 3b: 41 ff ce dec %r14d > > > > > 3e: bf .byte 0xbf > > > > > 3f: 53 push %rbx > > > > > > > > > > --- > > > > > > > > > > The root cause of this issue is that in xchk_btree(), where the > > > > > argument cur can be NULL but the function assume cur is not NULL, > > > > > leading to a NULL pointer dereference when accessing member > > > > > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701). > > > > > > > > > > We can add a NULL check at the beginning of xchk_btree() to fix this issue: > > > > > ``` > > > > > --- a/fs/xfs/scrub/btree.c > > > > > +++ b/fs/xfs/scrub/btree.c > > > > > @@ -693,6 +693,9 @@ xchk_btree( > > > > > int level; > > > > > int error = 0; > > > > > > > > > > + if (!cur) > > > > > + return -EINVAL; > > > > > > > > Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt > > > > revalidation in xrep_revalidate_allocbt. Why is that pointer > > > > 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in > > > > xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we > > > > fail to attach the AGF to sc->sa.agf_bp? > > > > > > Thanks for the feedback! I dug deeper into the root cause as you > > > suggested, here is what I found: > > > > > > (1) The program executes XFS_IOC_ERROR_INJECTION branch in > > > xfs_file_ioctl(), causes xfs_btree_check_block() to return > > > -EFSCORRUPTED, which consequently marks the AG as sick (via > > > xfs_btree_mark_sick). > > > > "marks the AG as sick" ... which structure, specifically? I'm guessing > > XFS_SICK_AG_CNTBT from context, but it'd be useful to state these things > > from the data you've collected rather than relying on me to infer what's > > going on. > > > > > (2) Then, the program executes XFS_IOC_SCRUBV_METADATA branch in > > > xfs_file_ioctl(), the setup function (xchk_setup_ag_allocbt()) > > > > Which scrub type is it calling, bnobt or cntbt? > > > > > attempts to initialize the cursor. However, the sick flag makes kernel > > > executes xchk_ag_btree_del_cursor_if_sick(), the cursor is freed and > > > nullified. > > > > Are you talking about the ->setup call after we've rebuilt both free > > space btrees, just prior to step three? When that happens, > > xchk_ag_btree_del_cursor_if_sick will see the XREP_ALREADY_FIXED flag > > and mask out sc->sick_mask from mask: > > > > /* > > * If we just repaired some AG metadata, sc->sick_mask will reflect all > > * the per-AG metadata types that were repaired. Exclude these from > > * the filesystem health query because we have not yet updated the > > * health status and we want everything to be scanned. > > */ > > if ((sc->flags & XREP_ALREADY_FIXED) && > > type_to_health_flag[sc->sm->sm_type].group == XHG_AG) > > mask &= ~sc->sick_mask; > > > > > (3) Lastly, the repair_eval function (xrep_revalidate_allocbt()) calls > > > xchk_allocbt(). Since xchk_allocbt() assumes the cursor is valid, it > > > passes the NULL pointer to xchk_btree, leading to the null-ptr-deref. > > > > Sure, but xrep_allocbt sets sc->sick_mask to XFS_SICK_AG_BNOBT | > > XFS_SICK_AG so any pre-existing bnobt or cntbt sick state in the > > xfs_group will be ignored and neither cursor will be deleted when > > setting up the revalidation. > > > > > Based on above analysis, I think sc->sa.cnt_cur being NULL is expected > > > when the AG is sick. I think the appropriate fix is to check NULL > > > inside xchk_allocbt(): > > > ``` > > > --- a/fs/xfs/scrub/alloc.c > > > +++ b/fs/xfs/scrub/alloc.c > > > @@ -170,6 +170,9 @@ xchk_allocbt( > > > return -EIO; > > > } > > > > > > + if (!cur) > > > + return -ENOENT; > > > > This is not correct either. We've just rebuilt the bnobt and cntbt for > > the AG which means that cursors for both btrees should be loaded and > > ready for revalidation. > > > > I think you need to look into xchk_ag_btree_del_cursor_if_sick to figure > > out exactly what the xfs_group's sick state is, what @mask is, and what > > sc->sick_mask is, and from that figure out if it's really deleting the > > cntbt cursor. This is made more difficult because XFS error injection > > is probabilistic so it could trigger on /any/ btree. > > > > --D > > > > > + > > > return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca); > > > } > > > ``` > > > What do you think? :) > > > > > > > > > > > > /* > > > > > * Allocate the btree scrub context from the heap, because this > > > > > * structure can get rather large. Don't let a caller feed us a > > > > > ``` > > > > > > > > > > After applying changes above and re-running reproducer, another issues > > > > > is triggered: > > > > > > > > > > --- > > > > > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner > > > > > > > > > > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > > XFS (loop6): Ending clean mount > > > > > ================================================================== > > > > > BUG: KASAN: slab-use-after-free in > > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096 > > > > > > > > > > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty > > > > > #30 PREEMPT(full) > > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > > Call Trace: > > > > > <TASK> > > > > > __dump_stack lib/dump_stack.c:94 [inline] > > > > > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120 > > > > > print_address_description mm/kasan/report.c:378 [inline] > > > > > print_report+0x17e/0x810 mm/kasan/report.c:482 > > > > > kasan_report+0x147/0x180 mm/kasan/report.c:595 > > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > RIP: 0033:0x7f71bddb459d > > > > > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 > > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 > > > > > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d > > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000 > > > > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > > > > > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000 > > > > > </TASK> > > > > > > > > > > Allocated by task 14096: > > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > > unpoison_slab_object mm/kasan/common.c:340 [inline] > > > > > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366 > > > > > kasan_slab_alloc include/linux/kasan.h:253 [inline] > > > > > slab_post_alloc_hook mm/slub.c:4953 [inline] > > > > > slab_alloc_node mm/slub.c:5263 [inline] > > > > > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270 > > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485 > > > > > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612 > > > > > xchk_ag_init fs/xfs/scrub/common.c:698 [inline] > > > > > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943 > > > > > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35 > > > > > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709 > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > > > Freed by task 14096: > > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584 > > > > > poison_slab_object mm/kasan/common.c:253 [inline] > > > > > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285 > > > > > kasan_slab_free include/linux/kasan.h:235 [inline] > > > > > slab_free_hook mm/slub.c:2540 [inline] > > > > > slab_free mm/slub.c:6670 [inline] > > > > > kmem_cache_free+0x197/0x620 mm/slub.c:6781 > > > > > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351 > > > > > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190 > > > > > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395 > > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > > > The buggy address belongs to the object at ffff88806af035c8 > > > > > which belongs to the cache xfs_bnobt_cur of size 232 > > > > > The buggy address is located 16 bytes inside of > > > > > freed 232-byte region [ffff88806af035c8, ffff88806af036b0) > > > > > > > > > > The buggy address belongs to the physical page: > > > > > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03 > > > > > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff) > > > > > page_type: f5(slab) > > > > > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003 > > > > > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000 > > > > > page dumped because: kasan: bad access detected > > > > > page_owner tracks the page as allocated > > > > > page last allocated via order 0, migratetype Unmovable, gfp_mask > > > > > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP), > > > > > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822 > > > > > set_page_owner include/linux/page_owner.h:32 [inline] > > > > > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884 > > > > > prep_new_page mm/page_alloc.c:1892 [inline] > > > > > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945 > > > > > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240 > > > > > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 > > > > > alloc_slab_page mm/slub.c:3075 [inline] > > > > > allocate_slab+0x86/0x3b0 mm/slub.c:3248 > > > > > new_slab mm/slub.c:3302 [inline] > > > > > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656 > > > > > __slab_alloc+0x65/0x100 mm/slub.c:4779 > > > > > __slab_alloc_node mm/slub.c:4855 [inline] > > > > > slab_alloc_node mm/slub.c:5251 [inline] > > > > > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270 > > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511 > > > > > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149 > > > > > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047 > > > > > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555 > > > > > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595 > > > > > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707 > > > > > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741 > > > > > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242 > > > > > page last free pid 785 tgid 785 stack trace: > > > > > reset_page_owner include/linux/page_owner.h:25 [inline] > > > > > free_pages_prepare mm/page_alloc.c:1433 [inline] > > > > > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973 > > > > > vfree+0x25a/0x400 mm/vmalloc.c:3466 > > > > > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385 > > > > > process_one_work kernel/workqueue.c:3257 [inline] > > > > > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340 > > > > > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421 > > > > > kthread+0x711/0x8a0 kernel/kthread.c:463 > > > > > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 > > > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 > > > > > > > > > > Memory state around the buggy address: > > > > > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb > > > > > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb > > > > > ^ > > > > > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb > > > > > ================================================================== > > > > > --- > > > > > > > > > > I also analyzed the root cause of this issue. In > > > > > xchk_btree_check_block_owner(), bs->cur is an alias for > > > > > bs->sc->sa.bnocur (or rmap_cur, > > > > > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400). > > > > > The issue occurs when error injection triggers a failure path: > > > > > > > > > > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space() > > > > > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a > > > > > non-zero error due to error injection > > > > > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which > > > > > points to bs->sc->sa.bnocur). > > > > > 4. Memory pointed to by bs->cur is freed. > > > > > > > > > > Control returns to xchk_btree_check_block_owner(), which subsequently > > > > > accesses bs->cur->bc_ops, triggering the UAF. > > > > > > > > > > P.S. this issue can also be triggered independently by syzkaller using > > > > > our generated specs. > > > > > > > > > > To fix this issue, we can cache values of > > > > > xfs_btree_is_bno(bs->cur->bc_ops) and > > > > > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function: > > > > > ``` > > > > > --- a/fs/xfs/scrub/btree.c > > > > > +++ b/fs/xfs/scrub/btree.c > > > > > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner( > > > > > xfs_agnumber_t agno; > > > > > xfs_agblock_t agbno; > > > > > bool init_sa; > > > > > + bool is_bno; > > > > > + bool is_rmap; > > > > > int error = 0; > > > > > > > > > > if (!bs->cur) > > > > > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner( > > > > > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr); > > > > > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr); > > > > > > > > > > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops); > > > > > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops); > > > > > + > > > > > /* > > > > > * If the btree being examined is not itself a per-AG btree, initialize > > > > > * sc->sa so that we can check for the presence of an ownership record > > > > > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner( > > > > > * have to nullify it (to shut down further block owner checks) if > > > > > * self-xref encounters problems. > > > > > */ > > > > > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops)) > > > > > + if (!bs->sc->sa.bno_cur && is_bno) > > > > > bs->cur = NULL; > > > > > > > > > > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo); > > > > > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops)) > > > > > + if (!bs->sc->sa.rmap_cur && is_rmap) > > > > > > > > Indentation problems notwithstanding, that looks like a correct > > > > resolution to the UAF problem. > > > > > > > > > bs->cur = NULL; > > > > > > > > > > out_free: > > > > > ``` > > > > > > > > > > After applying above changes, reproducer ran for ~35 minutes without > > > > > triggering any issues. > > > > > > > > > > If above solutions are acceptable, we are happy to submit patches :) > > > > > > > > > > The kernel console output, kernel config, syzkaller reproducer, and C > > > > > reproducer are also attached to help with analysis. > > > > > > > > > > Please let me know if any further information is required. > > > > > > > > > > Best Regards, > > > > > Jiaming Zhang > > > > > > > > Please just link to your dashboard, don't send a 1MB email to dozens > > > > of people. > > > > > > > > --D > > > > > Hi Darrick, > > I checked the execution path again and I have to apologize, my > analysis yesterday was partly incorrect. > > I have new findings today that point how the cursor is nullified > during the revalidation. I detailed below. > > In xrep_revalidate_allocbt(), xchk_allocbt() is called twice (first > for BNOBT, second for CNTBT). The cause of this issue is that the > first call nullified the cursor required by the second call. > > Let's first enter xrep_revalidate_allocbt() via following call chain: > > xfs_file_ioctl() -> > xfs_ioc_scrubv_metadata() -> > xfs_scrub_metadata() -> > `sc->ops->repair_eval(sc)` -> > xrep_revalidate_allocbt() > > xchk_allocbt() is called twice in this function. In the first call: > > /* Note that sc->sm->sm_type is XFS_SCRUB_TYPE_BNOPT now */ > xchk_allocbt() -> > xchk_btree() -> > `bs->scrub_rec(bs, recp)` -> > xchk_allocbt_rec() -> > xchk_allocbt_xref() -> > xchk_allocbt_xref_other() > > since sm_type is XFS_SCRUB_TYPE_BNOPT, pur is set to &sc->sa.cnt_cur. > Kernel called xfs_alloc_get_rec() and returned -EFSCORRUPTED. Call > chain: > > xfs_alloc_get_rec() -> > xfs_btree_get_rec() -> > xfs_btree_check_block() -> > (XFS_IS_CORRUPT || XFS_TEST_ERROR), the former is false and the latter > is true, return -EFSCORRUPTED. This should be caused by > ioctl$XFS_IOC_ERROR_INJECTION I guess. Ah, that's how it happens. The error gets injected during the revalidation of a bnobt that involved the cntbt btree, so the cntbt cursor gets deleted. > Back to xchk_allocbt_xref_other(), after receiving -EFSCORRUPTED from > xfs_alloc_get_rec(), kernel called xchk_should_check_xref(). In this > function, *curpp (points to sc->sa.cnt_cur) is nullified. > > Back to xrep_revalidate_allocbt(), since sc->sa.cnt_cur has been > nullified, it then triggered null-ptr-deref via xchk_allocbt() (second > call) -> xchk_btree(). Yep. So you're right, the revalidation needs to check for sc->sa.cnt_cur==NULL before calling xchk_allocbt a second time. > I noticed that at the beginning of xchk_should_check_xref(), it > checked whether xref should be skipped. Can this issue be fixed if > kernel skips xref in this case? I'm not sure. > > I hope the analysis is helpful. Feel free to contact me if any further > information is needed. That was very helpful. Could you please take a look at the proposed fixes that I'm about to send? --D > > Best Regards, > Jiaming Zhang
Darrick J. Wong <djwong@kernel.org> 于2026年1月23日周五 07:10写道: > > On Thu, Jan 22, 2026 at 07:30:23PM +0800, Jiaming Zhang wrote: > > Darrick J. Wong <djwong@kernel.org> 于2026年1月22日周四 03:23写道: > > > > > > On Wed, Jan 21, 2026 at 06:14:06PM +0800, Jiaming Zhang wrote: > > > > Darrick J. Wong <djwong@kernel.org> 于2026年1月21日周三 03:17写道: > > > > > > > > > > On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote: > > > > > > Dear Linux kernel developers and maintainers, > > > > > > > > > > > > We are writing to report a general protection fault discovered in the > > > > > > xfs subsystem with our generated syzkaller specifications. This issue > > > > > > is reproducible on the latest version of linux (v6.19-rc6, commit > > > > > > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from > > > > > > kernel is listed below (formatted by syz-symbolize): > > > > > > > > > > > > --- > > > > > > > > > > > > loop0: detected capacity change from 0 to 32768 > > > > > > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > > > XFS (loop0): Ending clean mount > > > > > > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line > > > > > > 309, on filesystem "loop0" > > > > > > Oops: general protection fault, probably for non-canonical address > > > > > > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI > > > > > > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] > > > > > > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full) > > > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > > > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > > > PKRU: 55555554 > > > > > > Call Trace: > > > > > > <TASK> > > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930 > > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > RIP: 0033:0x45a879 > > > > > > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48 > > > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 > > > > > > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > > > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879 > > > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > > > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005 > > > > > > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990 > > > > > > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8 > > > > > > </TASK> > > > > > > Modules linked in: > > > > > > ---[ end trace 0000000000000000 ]--- > > > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > > > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > > > PKRU: 55555554 > > > > > > ---------------- > > > > > > Code disassembly (best guess): > > > > > > 0: f2 00 66 43 repnz add %ah,0x43(%rsi) > > > > > > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1) > > > > > > b: c6 > > > > > > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax > > > > > > 12: 44 39 fe cmp %r15d,%esi > > > > > > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp) > > > > > > 1a: 48 83 c3 48 add $0x48,%rbx > > > > > > 1e: 48 89 d8 mov %rbx,%rax > > > > > > 21: 48 c1 e8 03 shr $0x3,%rax > > > > > > 25: 48 89 44 24 30 mov %rax,0x30(%rsp) > > > > > > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction > > > > > > 2f: 84 c0 test %al,%al > > > > > > 31: 0f 85 d6 11 00 00 jne 0x120d > > > > > > 37: 44 0f b6 33 movzbl (%rbx),%r14d > > > > > > 3b: 41 ff ce dec %r14d > > > > > > 3e: bf .byte 0xbf > > > > > > 3f: 53 push %rbx > > > > > > > > > > > > --- > > > > > > > > > > > > The root cause of this issue is that in xchk_btree(), where the > > > > > > argument cur can be NULL but the function assume cur is not NULL, > > > > > > leading to a NULL pointer dereference when accessing member > > > > > > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701). > > > > > > > > > > > > We can add a NULL check at the beginning of xchk_btree() to fix this issue: > > > > > > ``` > > > > > > --- a/fs/xfs/scrub/btree.c > > > > > > +++ b/fs/xfs/scrub/btree.c > > > > > > @@ -693,6 +693,9 @@ xchk_btree( > > > > > > int level; > > > > > > int error = 0; > > > > > > > > > > > > + if (!cur) > > > > > > + return -EINVAL; > > > > > > > > > > Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt > > > > > revalidation in xrep_revalidate_allocbt. Why is that pointer > > > > > 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in > > > > > xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we > > > > > fail to attach the AGF to sc->sa.agf_bp? > > > > > > > > Thanks for the feedback! I dug deeper into the root cause as you > > > > suggested, here is what I found: > > > > > > > > (1) The program executes XFS_IOC_ERROR_INJECTION branch in > > > > xfs_file_ioctl(), causes xfs_btree_check_block() to return > > > > -EFSCORRUPTED, which consequently marks the AG as sick (via > > > > xfs_btree_mark_sick). > > > > > > "marks the AG as sick" ... which structure, specifically? I'm guessing > > > XFS_SICK_AG_CNTBT from context, but it'd be useful to state these things > > > from the data you've collected rather than relying on me to infer what's > > > going on. > > > > > > > (2) Then, the program executes XFS_IOC_SCRUBV_METADATA branch in > > > > xfs_file_ioctl(), the setup function (xchk_setup_ag_allocbt()) > > > > > > Which scrub type is it calling, bnobt or cntbt? > > > > > > > attempts to initialize the cursor. However, the sick flag makes kernel > > > > executes xchk_ag_btree_del_cursor_if_sick(), the cursor is freed and > > > > nullified. > > > > > > Are you talking about the ->setup call after we've rebuilt both free > > > space btrees, just prior to step three? When that happens, > > > xchk_ag_btree_del_cursor_if_sick will see the XREP_ALREADY_FIXED flag > > > and mask out sc->sick_mask from mask: > > > > > > /* > > > * If we just repaired some AG metadata, sc->sick_mask will reflect all > > > * the per-AG metadata types that were repaired. Exclude these from > > > * the filesystem health query because we have not yet updated the > > > * health status and we want everything to be scanned. > > > */ > > > if ((sc->flags & XREP_ALREADY_FIXED) && > > > type_to_health_flag[sc->sm->sm_type].group == XHG_AG) > > > mask &= ~sc->sick_mask; > > > > > > > (3) Lastly, the repair_eval function (xrep_revalidate_allocbt()) calls > > > > xchk_allocbt(). Since xchk_allocbt() assumes the cursor is valid, it > > > > passes the NULL pointer to xchk_btree, leading to the null-ptr-deref. > > > > > > Sure, but xrep_allocbt sets sc->sick_mask to XFS_SICK_AG_BNOBT | > > > XFS_SICK_AG so any pre-existing bnobt or cntbt sick state in the > > > xfs_group will be ignored and neither cursor will be deleted when > > > setting up the revalidation. > > > > > > > Based on above analysis, I think sc->sa.cnt_cur being NULL is expected > > > > when the AG is sick. I think the appropriate fix is to check NULL > > > > inside xchk_allocbt(): > > > > ``` > > > > --- a/fs/xfs/scrub/alloc.c > > > > +++ b/fs/xfs/scrub/alloc.c > > > > @@ -170,6 +170,9 @@ xchk_allocbt( > > > > return -EIO; > > > > } > > > > > > > > + if (!cur) > > > > + return -ENOENT; > > > > > > This is not correct either. We've just rebuilt the bnobt and cntbt for > > > the AG which means that cursors for both btrees should be loaded and > > > ready for revalidation. > > > > > > I think you need to look into xchk_ag_btree_del_cursor_if_sick to figure > > > out exactly what the xfs_group's sick state is, what @mask is, and what > > > sc->sick_mask is, and from that figure out if it's really deleting the > > > cntbt cursor. This is made more difficult because XFS error injection > > > is probabilistic so it could trigger on /any/ btree. > > > > > > --D > > > > > > > + > > > > return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca); > > > > } > > > > ``` > > > > What do you think? :) > > > > > > > > > > > > > > > /* > > > > > > * Allocate the btree scrub context from the heap, because this > > > > > > * structure can get rather large. Don't let a caller feed us a > > > > > > ``` > > > > > > > > > > > > After applying changes above and re-running reproducer, another issues > > > > > > is triggered: > > > > > > > > > > > > --- > > > > > > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner > > > > > > > > > > > > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > > > XFS (loop6): Ending clean mount > > > > > > ================================================================== > > > > > > BUG: KASAN: slab-use-after-free in > > > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > > > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096 > > > > > > > > > > > > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty > > > > > > #30 PREEMPT(full) > > > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > > > Call Trace: > > > > > > <TASK> > > > > > > __dump_stack lib/dump_stack.c:94 [inline] > > > > > > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120 > > > > > > print_address_description mm/kasan/report.c:378 [inline] > > > > > > print_report+0x17e/0x810 mm/kasan/report.c:482 > > > > > > kasan_report+0x147/0x180 mm/kasan/report.c:595 > > > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > RIP: 0033:0x7f71bddb459d > > > > > > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 > > > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 > > > > > > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > > > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d > > > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > > > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000 > > > > > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > > > > > > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000 > > > > > > </TASK> > > > > > > > > > > > > Allocated by task 14096: > > > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > > > unpoison_slab_object mm/kasan/common.c:340 [inline] > > > > > > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366 > > > > > > kasan_slab_alloc include/linux/kasan.h:253 [inline] > > > > > > slab_post_alloc_hook mm/slub.c:4953 [inline] > > > > > > slab_alloc_node mm/slub.c:5263 [inline] > > > > > > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270 > > > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > > > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485 > > > > > > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612 > > > > > > xchk_ag_init fs/xfs/scrub/common.c:698 [inline] > > > > > > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943 > > > > > > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35 > > > > > > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709 > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > > > > > Freed by task 14096: > > > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > > > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584 > > > > > > poison_slab_object mm/kasan/common.c:253 [inline] > > > > > > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285 > > > > > > kasan_slab_free include/linux/kasan.h:235 [inline] > > > > > > slab_free_hook mm/slub.c:2540 [inline] > > > > > > slab_free mm/slub.c:6670 [inline] > > > > > > kmem_cache_free+0x197/0x620 mm/slub.c:6781 > > > > > > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351 > > > > > > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190 > > > > > > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395 > > > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > > > > > The buggy address belongs to the object at ffff88806af035c8 > > > > > > which belongs to the cache xfs_bnobt_cur of size 232 > > > > > > The buggy address is located 16 bytes inside of > > > > > > freed 232-byte region [ffff88806af035c8, ffff88806af036b0) > > > > > > > > > > > > The buggy address belongs to the physical page: > > > > > > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03 > > > > > > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff) > > > > > > page_type: f5(slab) > > > > > > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003 > > > > > > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000 > > > > > > page dumped because: kasan: bad access detected > > > > > > page_owner tracks the page as allocated > > > > > > page last allocated via order 0, migratetype Unmovable, gfp_mask > > > > > > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP), > > > > > > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822 > > > > > > set_page_owner include/linux/page_owner.h:32 [inline] > > > > > > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884 > > > > > > prep_new_page mm/page_alloc.c:1892 [inline] > > > > > > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945 > > > > > > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240 > > > > > > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 > > > > > > alloc_slab_page mm/slub.c:3075 [inline] > > > > > > allocate_slab+0x86/0x3b0 mm/slub.c:3248 > > > > > > new_slab mm/slub.c:3302 [inline] > > > > > > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656 > > > > > > __slab_alloc+0x65/0x100 mm/slub.c:4779 > > > > > > __slab_alloc_node mm/slub.c:4855 [inline] > > > > > > slab_alloc_node mm/slub.c:5251 [inline] > > > > > > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270 > > > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > > > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511 > > > > > > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149 > > > > > > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047 > > > > > > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555 > > > > > > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595 > > > > > > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707 > > > > > > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741 > > > > > > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242 > > > > > > page last free pid 785 tgid 785 stack trace: > > > > > > reset_page_owner include/linux/page_owner.h:25 [inline] > > > > > > free_pages_prepare mm/page_alloc.c:1433 [inline] > > > > > > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973 > > > > > > vfree+0x25a/0x400 mm/vmalloc.c:3466 > > > > > > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385 > > > > > > process_one_work kernel/workqueue.c:3257 [inline] > > > > > > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340 > > > > > > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421 > > > > > > kthread+0x711/0x8a0 kernel/kthread.c:463 > > > > > > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 > > > > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 > > > > > > > > > > > > Memory state around the buggy address: > > > > > > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb > > > > > > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > > > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb > > > > > > ^ > > > > > > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > > > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb > > > > > > ================================================================== > > > > > > --- > > > > > > > > > > > > I also analyzed the root cause of this issue. In > > > > > > xchk_btree_check_block_owner(), bs->cur is an alias for > > > > > > bs->sc->sa.bnocur (or rmap_cur, > > > > > > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400). > > > > > > The issue occurs when error injection triggers a failure path: > > > > > > > > > > > > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space() > > > > > > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a > > > > > > non-zero error due to error injection > > > > > > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which > > > > > > points to bs->sc->sa.bnocur). > > > > > > 4. Memory pointed to by bs->cur is freed. > > > > > > > > > > > > Control returns to xchk_btree_check_block_owner(), which subsequently > > > > > > accesses bs->cur->bc_ops, triggering the UAF. > > > > > > > > > > > > P.S. this issue can also be triggered independently by syzkaller using > > > > > > our generated specs. > > > > > > > > > > > > To fix this issue, we can cache values of > > > > > > xfs_btree_is_bno(bs->cur->bc_ops) and > > > > > > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function: > > > > > > ``` > > > > > > --- a/fs/xfs/scrub/btree.c > > > > > > +++ b/fs/xfs/scrub/btree.c > > > > > > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner( > > > > > > xfs_agnumber_t agno; > > > > > > xfs_agblock_t agbno; > > > > > > bool init_sa; > > > > > > + bool is_bno; > > > > > > + bool is_rmap; > > > > > > int error = 0; > > > > > > > > > > > > if (!bs->cur) > > > > > > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner( > > > > > > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr); > > > > > > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr); > > > > > > > > > > > > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops); > > > > > > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops); > > > > > > + > > > > > > /* > > > > > > * If the btree being examined is not itself a per-AG btree, initialize > > > > > > * sc->sa so that we can check for the presence of an ownership record > > > > > > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner( > > > > > > * have to nullify it (to shut down further block owner checks) if > > > > > > * self-xref encounters problems. > > > > > > */ > > > > > > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops)) > > > > > > + if (!bs->sc->sa.bno_cur && is_bno) > > > > > > bs->cur = NULL; > > > > > > > > > > > > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo); > > > > > > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops)) > > > > > > + if (!bs->sc->sa.rmap_cur && is_rmap) > > > > > > > > > > Indentation problems notwithstanding, that looks like a correct > > > > > resolution to the UAF problem. > > > > > > > > > > > bs->cur = NULL; > > > > > > > > > > > > out_free: > > > > > > ``` > > > > > > > > > > > > After applying above changes, reproducer ran for ~35 minutes without > > > > > > triggering any issues. > > > > > > > > > > > > If above solutions are acceptable, we are happy to submit patches :) > > > > > > > > > > > > The kernel console output, kernel config, syzkaller reproducer, and C > > > > > > reproducer are also attached to help with analysis. > > > > > > > > > > > > Please let me know if any further information is required. > > > > > > > > > > > > Best Regards, > > > > > > Jiaming Zhang > > > > > > > > > > Please just link to your dashboard, don't send a 1MB email to dozens > > > > > of people. > > > > > > > > > > --D > > > > > > > > Hi Darrick, > > > > I checked the execution path again and I have to apologize, my > > analysis yesterday was partly incorrect. > > > > I have new findings today that point how the cursor is nullified > > during the revalidation. I detailed below. > > > > In xrep_revalidate_allocbt(), xchk_allocbt() is called twice (first > > for BNOBT, second for CNTBT). The cause of this issue is that the > > first call nullified the cursor required by the second call. > > > > Let's first enter xrep_revalidate_allocbt() via following call chain: > > > > xfs_file_ioctl() -> > > xfs_ioc_scrubv_metadata() -> > > xfs_scrub_metadata() -> > > `sc->ops->repair_eval(sc)` -> > > xrep_revalidate_allocbt() > > > > xchk_allocbt() is called twice in this function. In the first call: > > > > /* Note that sc->sm->sm_type is XFS_SCRUB_TYPE_BNOPT now */ > > xchk_allocbt() -> > > xchk_btree() -> > > `bs->scrub_rec(bs, recp)` -> > > xchk_allocbt_rec() -> > > xchk_allocbt_xref() -> > > xchk_allocbt_xref_other() > > > > since sm_type is XFS_SCRUB_TYPE_BNOPT, pur is set to &sc->sa.cnt_cur. > > Kernel called xfs_alloc_get_rec() and returned -EFSCORRUPTED. Call > > chain: > > > > xfs_alloc_get_rec() -> > > xfs_btree_get_rec() -> > > xfs_btree_check_block() -> > > (XFS_IS_CORRUPT || XFS_TEST_ERROR), the former is false and the latter > > is true, return -EFSCORRUPTED. This should be caused by > > ioctl$XFS_IOC_ERROR_INJECTION I guess. > > Ah, that's how it happens. The error gets injected during the > revalidation of a bnobt that involved the cntbt btree, so the cntbt > cursor gets deleted. > > > Back to xchk_allocbt_xref_other(), after receiving -EFSCORRUPTED from > > xfs_alloc_get_rec(), kernel called xchk_should_check_xref(). In this > > function, *curpp (points to sc->sa.cnt_cur) is nullified. > > > > Back to xrep_revalidate_allocbt(), since sc->sa.cnt_cur has been > > nullified, it then triggered null-ptr-deref via xchk_allocbt() (second > > call) -> xchk_btree(). > > Yep. So you're right, the revalidation needs to check for > sc->sa.cnt_cur==NULL before calling xchk_allocbt a second time. Sounds good to me. Thanks for your work on XFS :) > > > I noticed that at the beginning of xchk_should_check_xref(), it > > checked whether xref should be skipped. Can this issue be fixed if > > kernel skips xref in this case? I'm not sure. > > > > I hope the analysis is helpful. Feel free to contact me if any further > > information is needed. > > That was very helpful. Could you please take a look at the proposed > fixes that I'm about to send? > > --D > > > > > Best Regards, > > Jiaming Zhang
On Fri, Jan 23, 2026 at 10:08:57AM +0800, Jiaming Zhang wrote: > Darrick J. Wong <djwong@kernel.org> 于2026年1月23日周五 07:10写道: > > > > On Thu, Jan 22, 2026 at 07:30:23PM +0800, Jiaming Zhang wrote: > > > Darrick J. Wong <djwong@kernel.org> 于2026年1月22日周四 03:23写道: > > > > > > > > On Wed, Jan 21, 2026 at 06:14:06PM +0800, Jiaming Zhang wrote: > > > > > Darrick J. Wong <djwong@kernel.org> 于2026年1月21日周三 03:17写道: > > > > > > > > > > > > On Tue, Jan 20, 2026 at 06:13:44PM +0800, Jiaming Zhang wrote: > > > > > > > Dear Linux kernel developers and maintainers, > > > > > > > > > > > > > > We are writing to report a general protection fault discovered in the > > > > > > > xfs subsystem with our generated syzkaller specifications. This issue > > > > > > > is reproducible on the latest version of linux (v6.19-rc6, commit > > > > > > > 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7). The KASAN report from > > > > > > > kernel is listed below (formatted by syz-symbolize): > > > > > > > > > > > > > > --- > > > > > > > > > > > > > > loop0: detected capacity change from 0 to 32768 > > > > > > > XFS (loop0): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > > > > XFS (loop0): Ending clean mount > > > > > > > XFS (loop0): Injecting error at file fs/xfs/libxfs/xfs_btree.c, line > > > > > > > 309, on filesystem "loop0" > > > > > > > Oops: general protection fault, probably for non-canonical address > > > > > > > 0xdffffc0000000009: 0000 [#1] SMP KASAN NOPTI > > > > > > > KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] > > > > > > > CPU: 1 UID: 0 PID: 9920 Comm: repro.out Not tainted 6.19.0-rc6 #24 PREEMPT(full) > > > > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > > > > CR2: 0000200000002700 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > > > > PKRU: 55555554 > > > > > > > Call Trace: > > > > > > > <TASK> > > > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > > > xrep_revalidate_allocbt+0xf3/0x160 fs/xfs/scrub/alloc_repair.c:930 > > > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > RIP: 0033:0x45a879 > > > > > > > Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 31 18 00 00 90 48 89 f8 48 > > > > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 > > > > > > > RSP: 002b:00007ffda72db7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > > > > RAX: ffffffffffffffda RBX: 00000000004004b8 RCX: 000000000045a879 > > > > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > > > > RBP: 00007ffda72db860 R08: 0000000000000004 R09: 0000000000000005 > > > > > > > R10: 0000000000000004 R11: 0000000000000246 R12: 000000000040b990 > > > > > > > R13: 0000000000000000 R14: 00000000004ca018 R15: 00000000004004b8 > > > > > > > </TASK> > > > > > > > Modules linked in: > > > > > > > ---[ end trace 0000000000000000 ]--- > > > > > > > RIP: 0010:xchk_btree+0xb9/0x1380 fs/xfs/scrub/btree.c:701 > > > > > > > Code: f2 00 66 43 c7 44 35 0d f3 f3 43 c6 44 35 0f f3 e8 1c 44 39 fe > > > > > > > 48 89 5c 24 40 48 83 c3 48 48 89 d8 48 c1 e8 03 48 89 44 24 30 <42> 0f > > > > > > > b6 04 30 84 c0 0f 85 d6 11 00 00 44 0f b6 33 41 ff ce bf 53 > > > > > > > RSP: 0018:ffffc9000854f360 EFLAGS: 00010206 > > > > > > > RAX: 0000000000000009 RBX: 0000000000000048 RCX: ffff888020bebd80 > > > > > > > RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff888044710e00 > > > > > > > RBP: ffffc9000854f510 R08: ffffc9000854f540 R09: 0000000000000002 > > > > > > > R10: 0000000000000006 R11: 0000000000000000 R12: ffffffff837c5b20 > > > > > > > R13: 1ffff920010a9e88 R14: dffffc0000000000 R15: ffffffff8ba6c880 > > > > > > > FS: 000000001d1543c0(0000) GS:ffff8880ec5e0000(0000) knlGS:0000000000000000 > > > > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > > > > CR2: 00007fbbbc0430c8 CR3: 00000000229e4000 CR4: 0000000000752ef0 > > > > > > > PKRU: 55555554 > > > > > > > ---------------- > > > > > > > Code disassembly (best guess): > > > > > > > 0: f2 00 66 43 repnz add %ah,0x43(%rsi) > > > > > > > 4: c7 44 35 0d f3 f3 43 movl $0xc643f3f3,0xd(%rbp,%rsi,1) > > > > > > > b: c6 > > > > > > > c: 44 35 0f f3 e8 1c rex.R xor $0x1ce8f30f,%eax > > > > > > > 12: 44 39 fe cmp %r15d,%esi > > > > > > > 15: 48 89 5c 24 40 mov %rbx,0x40(%rsp) > > > > > > > 1a: 48 83 c3 48 add $0x48,%rbx > > > > > > > 1e: 48 89 d8 mov %rbx,%rax > > > > > > > 21: 48 c1 e8 03 shr $0x3,%rax > > > > > > > 25: 48 89 44 24 30 mov %rax,0x30(%rsp) > > > > > > > * 2a: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax <-- trapping instruction > > > > > > > 2f: 84 c0 test %al,%al > > > > > > > 31: 0f 85 d6 11 00 00 jne 0x120d > > > > > > > 37: 44 0f b6 33 movzbl (%rbx),%r14d > > > > > > > 3b: 41 ff ce dec %r14d > > > > > > > 3e: bf .byte 0xbf > > > > > > > 3f: 53 push %rbx > > > > > > > > > > > > > > --- > > > > > > > > > > > > > > The root cause of this issue is that in xchk_btree(), where the > > > > > > > argument cur can be NULL but the function assume cur is not NULL, > > > > > > > leading to a NULL pointer dereference when accessing member > > > > > > > (https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L701). > > > > > > > > > > > > > > We can add a NULL check at the beginning of xchk_btree() to fix this issue: > > > > > > > ``` > > > > > > > --- a/fs/xfs/scrub/btree.c > > > > > > > +++ b/fs/xfs/scrub/btree.c > > > > > > > @@ -693,6 +693,9 @@ xchk_btree( > > > > > > > int level; > > > > > > > int error = 0; > > > > > > > > > > > > > > + if (!cur) > > > > > > > + return -EINVAL; > > > > > > > > > > > > Uh, no, don't just fling EINVAL up to userspace. Line 930 is the cntbt > > > > > > revalidation in xrep_revalidate_allocbt. Why is that pointer > > > > > > 0xdffffc0000000009? Did we somehow fail to allocate a cntbt cursor in > > > > > > xchk_ag_btcur_init? Did that xchk_should_check_xref free it? Did we > > > > > > fail to attach the AGF to sc->sa.agf_bp? > > > > > > > > > > Thanks for the feedback! I dug deeper into the root cause as you > > > > > suggested, here is what I found: > > > > > > > > > > (1) The program executes XFS_IOC_ERROR_INJECTION branch in > > > > > xfs_file_ioctl(), causes xfs_btree_check_block() to return > > > > > -EFSCORRUPTED, which consequently marks the AG as sick (via > > > > > xfs_btree_mark_sick). > > > > > > > > "marks the AG as sick" ... which structure, specifically? I'm guessing > > > > XFS_SICK_AG_CNTBT from context, but it'd be useful to state these things > > > > from the data you've collected rather than relying on me to infer what's > > > > going on. > > > > > > > > > (2) Then, the program executes XFS_IOC_SCRUBV_METADATA branch in > > > > > xfs_file_ioctl(), the setup function (xchk_setup_ag_allocbt()) > > > > > > > > Which scrub type is it calling, bnobt or cntbt? > > > > > > > > > attempts to initialize the cursor. However, the sick flag makes kernel > > > > > executes xchk_ag_btree_del_cursor_if_sick(), the cursor is freed and > > > > > nullified. > > > > > > > > Are you talking about the ->setup call after we've rebuilt both free > > > > space btrees, just prior to step three? When that happens, > > > > xchk_ag_btree_del_cursor_if_sick will see the XREP_ALREADY_FIXED flag > > > > and mask out sc->sick_mask from mask: > > > > > > > > /* > > > > * If we just repaired some AG metadata, sc->sick_mask will reflect all > > > > * the per-AG metadata types that were repaired. Exclude these from > > > > * the filesystem health query because we have not yet updated the > > > > * health status and we want everything to be scanned. > > > > */ > > > > if ((sc->flags & XREP_ALREADY_FIXED) && > > > > type_to_health_flag[sc->sm->sm_type].group == XHG_AG) > > > > mask &= ~sc->sick_mask; > > > > > > > > > (3) Lastly, the repair_eval function (xrep_revalidate_allocbt()) calls > > > > > xchk_allocbt(). Since xchk_allocbt() assumes the cursor is valid, it > > > > > passes the NULL pointer to xchk_btree, leading to the null-ptr-deref. > > > > > > > > Sure, but xrep_allocbt sets sc->sick_mask to XFS_SICK_AG_BNOBT | > > > > XFS_SICK_AG so any pre-existing bnobt or cntbt sick state in the > > > > xfs_group will be ignored and neither cursor will be deleted when > > > > setting up the revalidation. > > > > > > > > > Based on above analysis, I think sc->sa.cnt_cur being NULL is expected > > > > > when the AG is sick. I think the appropriate fix is to check NULL > > > > > inside xchk_allocbt(): > > > > > ``` > > > > > --- a/fs/xfs/scrub/alloc.c > > > > > +++ b/fs/xfs/scrub/alloc.c > > > > > @@ -170,6 +170,9 @@ xchk_allocbt( > > > > > return -EIO; > > > > > } > > > > > > > > > > + if (!cur) > > > > > + return -ENOENT; > > > > > > > > This is not correct either. We've just rebuilt the bnobt and cntbt for > > > > the AG which means that cursors for both btrees should be loaded and > > > > ready for revalidation. > > > > > > > > I think you need to look into xchk_ag_btree_del_cursor_if_sick to figure > > > > out exactly what the xfs_group's sick state is, what @mask is, and what > > > > sc->sick_mask is, and from that figure out if it's really deleting the > > > > cntbt cursor. This is made more difficult because XFS error injection > > > > is probabilistic so it could trigger on /any/ btree. > > > > > > > > --D > > > > > > > > > + > > > > > return xchk_btree(sc, cur, xchk_allocbt_rec, &XFS_RMAP_OINFO_AG, &ca); > > > > > } > > > > > ``` > > > > > What do you think? :) > > > > > > > > > > > > > > > > > > /* > > > > > > > * Allocate the btree scrub context from the heap, because this > > > > > > > * structure can get rather large. Don't let a caller feed us a > > > > > > > ``` > > > > > > > > > > > > > > After applying changes above and re-running reproducer, another issues > > > > > > > is triggered: > > > > > > > > > > > > > > --- > > > > > > > TITLE: KASAN: slab-use-after-free Read in xchk_btree_check_block_owner > > > > > > > > > > > > > > XFS (loop6): Mounting V5 Filesystem 9f91832a-3b79-45c3-9d6d-ed0bc7357fe4 > > > > > > > XFS (loop6): Ending clean mount > > > > > > > ================================================================== > > > > > > > BUG: KASAN: slab-use-after-free in > > > > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > > > > Read of size 8 at addr ffff88806af035d8 by task syz.6.59/14096 > > > > > > > > > > > > > > CPU: 1 UID: 0 PID: 14096 Comm: syz.6.59 Not tainted 6.19.0-rc6-dirty > > > > > > > #30 PREEMPT(full) > > > > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 > > > > > > > Call Trace: > > > > > > > <TASK> > > > > > > > __dump_stack lib/dump_stack.c:94 [inline] > > > > > > > dump_stack_lvl+0x10e/0x190 lib/dump_stack.c:120 > > > > > > > print_address_description mm/kasan/report.c:378 [inline] > > > > > > > print_report+0x17e/0x810 mm/kasan/report.c:482 > > > > > > > kasan_report+0x147/0x180 mm/kasan/report.c:595 > > > > > > > xchk_btree_check_block_owner+0x3a2/0x600 fs/xfs/scrub/btree.c:401 > > > > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > RIP: 0033:0x7f71bddb459d > > > > > > > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 > > > > > > > 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d > > > > > > > 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 > > > > > > > RSP: 002b:00007f71bed71f98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > > > > > > > RAX: ffffffffffffffda RBX: 00007f71be045fa0 RCX: 00007f71bddb459d > > > > > > > RDX: 00002000000000c0 RSI: 00000000c0285840 RDI: 0000000000000005 > > > > > > > RBP: 00007f71bde52610 R08: 0000000000000000 R09: 0000000000000000 > > > > > > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > > > > > > > R13: 00007f71be046038 R14: 00007f71be045fa0 R15: 00007f71bed52000 > > > > > > > </TASK> > > > > > > > > > > > > > > Allocated by task 14096: > > > > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > > > > unpoison_slab_object mm/kasan/common.c:340 [inline] > > > > > > > __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:366 > > > > > > > kasan_slab_alloc include/linux/kasan.h:253 [inline] > > > > > > > slab_post_alloc_hook mm/slub.c:4953 [inline] > > > > > > > slab_alloc_node mm/slub.c:5263 [inline] > > > > > > > kmem_cache_alloc_noprof+0x37d/0x710 mm/slub.c:5270 > > > > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > > > > xfs_bnobt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:485 > > > > > > > xchk_ag_btcur_init+0xe0/0x5d0 fs/xfs/scrub/common.c:612 > > > > > > > xchk_ag_init fs/xfs/scrub/common.c:698 [inline] > > > > > > > xchk_setup_ag_btree+0x295/0x310 fs/xfs/scrub/common.c:943 > > > > > > > xchk_setup_ag_allocbt+0x70/0x190 fs/xfs/scrub/alloc.c:35 > > > > > > > xfs_scrub_metadata+0xa9e/0x1920 fs/xfs/scrub/scrub.c:709 > > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > > > > > > > Freed by task 14096: > > > > > > > kasan_save_stack mm/kasan/common.c:57 [inline] > > > > > > > kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 > > > > > > > kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:584 > > > > > > > poison_slab_object mm/kasan/common.c:253 [inline] > > > > > > > __kasan_slab_free+0x58/0x80 mm/kasan/common.c:285 > > > > > > > kasan_slab_free include/linux/kasan.h:235 [inline] > > > > > > > slab_free_hook mm/slub.c:2540 [inline] > > > > > > > slab_free mm/slub.c:6670 [inline] > > > > > > > kmem_cache_free+0x197/0x620 mm/slub.c:6781 > > > > > > > xchk_should_check_xref+0xf9/0x420 fs/xfs/scrub/common.c:1351 > > > > > > > xchk_xref_is_used_space+0x14b/0x210 fs/xfs/scrub/alloc.c:190 > > > > > > > xchk_btree_check_block_owner+0x2fe/0x600 fs/xfs/scrub/btree.c:395 > > > > > > > xchk_btree+0x57e/0x1320 fs/xfs/scrub/btree.c:797 > > > > > > > xchk_allocbt+0x112/0x190 fs/xfs/scrub/alloc.c:173 > > > > > > > xrep_revalidate_allocbt+0x69/0x160 fs/xfs/scrub/alloc_repair.c:925 > > > > > > > xfs_scrub_metadata+0xc08/0x1920 fs/xfs/scrub/scrub.c:-1 > > > > > > > xfs_ioc_scrubv_metadata+0x74a/0xaf0 fs/xfs/scrub/scrub.c:981 > > > > > > > xfs_file_ioctl+0x751/0x1560 fs/xfs/xfs_ioctl.c:1266 > > > > > > > vfs_ioctl fs/ioctl.c:51 [inline] > > > > > > > __do_sys_ioctl fs/ioctl.c:597 [inline] > > > > > > > __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583 > > > > > > > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > > > > > > > do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94 > > > > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > > > > > > > The buggy address belongs to the object at ffff88806af035c8 > > > > > > > which belongs to the cache xfs_bnobt_cur of size 232 > > > > > > > The buggy address is located 16 bytes inside of > > > > > > > freed 232-byte region [ffff88806af035c8, ffff88806af036b0) > > > > > > > > > > > > > > The buggy address belongs to the physical page: > > > > > > > page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x6af03 > > > > > > > ksm flags: 0x4fff00000000000(node=1|zone=1|lastcpupid=0x7ff) > > > > > > > page_type: f5(slab) > > > > > > > raw: 04fff00000000000 ffff88801dd96a00 ffffea000094fdc0 0000000000000003 > > > > > > > raw: 0000000000000000 00000000800d000d 00000000f5000000 0000000000000000 > > > > > > > page dumped because: kasan: bad access detected > > > > > > > page_owner tracks the page as allocated > > > > > > > page last allocated via order 0, migratetype Unmovable, gfp_mask > > > > > > > 0x1052c40(GFP_NOFS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOLOCKDEP), > > > > > > > pid 13126, tgid 13119 (syz.4.29), ts 58027826746, free_ts 57929202822 > > > > > > > set_page_owner include/linux/page_owner.h:32 [inline] > > > > > > > post_alloc_hook+0x234/0x290 mm/page_alloc.c:1884 > > > > > > > prep_new_page mm/page_alloc.c:1892 [inline] > > > > > > > get_page_from_freelist+0x24e4/0x2580 mm/page_alloc.c:3945 > > > > > > > __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5240 > > > > > > > alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 > > > > > > > alloc_slab_page mm/slub.c:3075 [inline] > > > > > > > allocate_slab+0x86/0x3b0 mm/slub.c:3248 > > > > > > > new_slab mm/slub.c:3302 [inline] > > > > > > > ___slab_alloc+0xe70/0x1860 mm/slub.c:4656 > > > > > > > __slab_alloc+0x65/0x100 mm/slub.c:4779 > > > > > > > __slab_alloc_node mm/slub.c:4855 [inline] > > > > > > > slab_alloc_node mm/slub.c:5251 [inline] > > > > > > > kmem_cache_alloc_noprof+0x40f/0x710 mm/slub.c:5270 > > > > > > > xfs_btree_alloc_cursor fs/xfs/libxfs/xfs_btree.h:683 [inline] > > > > > > > xfs_cntbt_init_cursor+0x64/0x210 fs/xfs/libxfs/xfs_alloc_btree.c:511 > > > > > > > xfs_free_ag_extent+0x570/0x1890 fs/xfs/libxfs/xfs_alloc.c:2149 > > > > > > > __xfs_free_extent+0x2a7/0x460 fs/xfs/libxfs/xfs_alloc.c:4047 > > > > > > > xfs_extent_free_finish_item+0x299/0x840 fs/xfs/xfs_extfree_item.c:555 > > > > > > > xfs_defer_finish_one+0x5a6/0xcc0 fs/xfs/libxfs/xfs_defer.c:595 > > > > > > > xfs_defer_finish_noroll+0x94a/0x1300 fs/xfs/libxfs/xfs_defer.c:707 > > > > > > > xfs_defer_finish+0x1e/0x270 fs/xfs/libxfs/xfs_defer.c:741 > > > > > > > xrep_defer_finish+0x16e/0x240 fs/xfs/scrub/repair.c:242 > > > > > > > page last free pid 785 tgid 785 stack trace: > > > > > > > reset_page_owner include/linux/page_owner.h:25 [inline] > > > > > > > free_pages_prepare mm/page_alloc.c:1433 [inline] > > > > > > > __free_frozen_pages+0xbc4/0xd40 mm/page_alloc.c:2973 > > > > > > > vfree+0x25a/0x400 mm/vmalloc.c:3466 > > > > > > > delayed_vfree_work+0x55/0x80 mm/vmalloc.c:3385 > > > > > > > process_one_work kernel/workqueue.c:3257 [inline] > > > > > > > process_scheduled_works+0xa45/0x1670 kernel/workqueue.c:3340 > > > > > > > worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421 > > > > > > > kthread+0x711/0x8a0 kernel/kthread.c:463 > > > > > > > ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 > > > > > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 > > > > > > > > > > > > > > Memory state around the buggy address: > > > > > > > ffff88806af03480: fc fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb > > > > > > > ffff88806af03500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > > > > >ffff88806af03580: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb > > > > > > > ^ > > > > > > > ffff88806af03600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > > > > > > > ffff88806af03680: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb > > > > > > > ================================================================== > > > > > > > --- > > > > > > > > > > > > > > I also analyzed the root cause of this issue. In > > > > > > > xchk_btree_check_block_owner(), bs->cur is an alias for > > > > > > > bs->sc->sa.bnocur (or rmap_cur, > > > > > > > https://github.com/torvalds/linux/blob/v6.19-rc6/fs/xfs/scrub/btree.c#L396-L400). > > > > > > > The issue occurs when error injection triggers a failure path: > > > > > > > > > > > > > > 1. xchk_btree_check_block_owner() calls xchk_xref_is_used_space() > > > > > > > 2. In xchk_xref_is_used_space(), xfs_alloc_has_records() returns a > > > > > > > non-zero error due to error injection > > > > > > > 3. Non-zero error causes xchk_should_check_xref() to free curpp (which > > > > > > > points to bs->sc->sa.bnocur). > > > > > > > 4. Memory pointed to by bs->cur is freed. > > > > > > > > > > > > > > Control returns to xchk_btree_check_block_owner(), which subsequently > > > > > > > accesses bs->cur->bc_ops, triggering the UAF. > > > > > > > > > > > > > > P.S. this issue can also be triggered independently by syzkaller using > > > > > > > our generated specs. > > > > > > > > > > > > > > To fix this issue, we can cache values of > > > > > > > xfs_btree_is_bno(bs->cur->bc_ops) and > > > > > > > xfs_btree_is_rmap(bs->cur->bc_ops) at the beginning of the function: > > > > > > > ``` > > > > > > > --- a/fs/xfs/scrub/btree.c > > > > > > > +++ b/fs/xfs/scrub/btree.c > > > > > > > @@ -371,6 +371,8 @@ xchk_btree_check_block_owner( > > > > > > > xfs_agnumber_t agno; > > > > > > > xfs_agblock_t agbno; > > > > > > > bool init_sa; > > > > > > > + bool is_bno; > > > > > > > + bool is_rmap; > > > > > > > int error = 0; > > > > > > > > > > > > > > if (!bs->cur) > > > > > > > @@ -379,6 +381,9 @@ xchk_btree_check_block_owner( > > > > > > > agno = xfs_daddr_to_agno(bs->cur->bc_mp, daddr); > > > > > > > agbno = xfs_daddr_to_agbno(bs->cur->bc_mp, daddr); > > > > > > > > > > > > > > + is_bno = xfs_btree_is_bno(bs->cur->bc_ops); > > > > > > > + is_rmap = xfs_btree_is_rmap(bs->cur->bc_ops); > > > > > > > + > > > > > > > /* > > > > > > > * If the btree being examined is not itself a per-AG btree, initialize > > > > > > > * sc->sa so that we can check for the presence of an ownership record > > > > > > > @@ -398,11 +403,11 @@ xchk_btree_check_block_owner( > > > > > > > * have to nullify it (to shut down further block owner checks) if > > > > > > > * self-xref encounters problems. > > > > > > > */ > > > > > > > - if (!bs->sc->sa.bno_cur && xfs_btree_is_bno(bs->cur->bc_ops)) > > > > > > > + if (!bs->sc->sa.bno_cur && is_bno) > > > > > > > bs->cur = NULL; > > > > > > > > > > > > > > xchk_xref_is_only_owned_by(bs->sc, agbno, 1, bs->oinfo); > > > > > > > - if (!bs->sc->sa.rmap_cur && xfs_btree_is_rmap(bs->cur->bc_ops)) > > > > > > > + if (!bs->sc->sa.rmap_cur && is_rmap) > > > > > > > > > > > > Indentation problems notwithstanding, that looks like a correct > > > > > > resolution to the UAF problem. > > > > > > > > > > > > > bs->cur = NULL; > > > > > > > > > > > > > > out_free: > > > > > > > ``` > > > > > > > > > > > > > > After applying above changes, reproducer ran for ~35 minutes without > > > > > > > triggering any issues. > > > > > > > > > > > > > > If above solutions are acceptable, we are happy to submit patches :) > > > > > > > > > > > > > > The kernel console output, kernel config, syzkaller reproducer, and C > > > > > > > reproducer are also attached to help with analysis. > > > > > > > > > > > > > > Please let me know if any further information is required. > > > > > > > > > > > > > > Best Regards, > > > > > > > Jiaming Zhang > > > > > > > > > > > > Please just link to your dashboard, don't send a 1MB email to dozens > > > > > > of people. > > > > > > > > > > > > --D > > > > > > > > > > > Hi Darrick, > > > > > > I checked the execution path again and I have to apologize, my > > > analysis yesterday was partly incorrect. > > > > > > I have new findings today that point how the cursor is nullified > > > during the revalidation. I detailed below. > > > > > > In xrep_revalidate_allocbt(), xchk_allocbt() is called twice (first > > > for BNOBT, second for CNTBT). The cause of this issue is that the > > > first call nullified the cursor required by the second call. > > > > > > Let's first enter xrep_revalidate_allocbt() via following call chain: > > > > > > xfs_file_ioctl() -> > > > xfs_ioc_scrubv_metadata() -> > > > xfs_scrub_metadata() -> > > > `sc->ops->repair_eval(sc)` -> > > > xrep_revalidate_allocbt() > > > > > > xchk_allocbt() is called twice in this function. In the first call: > > > > > > /* Note that sc->sm->sm_type is XFS_SCRUB_TYPE_BNOPT now */ > > > xchk_allocbt() -> > > > xchk_btree() -> > > > `bs->scrub_rec(bs, recp)` -> > > > xchk_allocbt_rec() -> > > > xchk_allocbt_xref() -> > > > xchk_allocbt_xref_other() > > > > > > since sm_type is XFS_SCRUB_TYPE_BNOPT, pur is set to &sc->sa.cnt_cur. > > > Kernel called xfs_alloc_get_rec() and returned -EFSCORRUPTED. Call > > > chain: > > > > > > xfs_alloc_get_rec() -> > > > xfs_btree_get_rec() -> > > > xfs_btree_check_block() -> > > > (XFS_IS_CORRUPT || XFS_TEST_ERROR), the former is false and the latter > > > is true, return -EFSCORRUPTED. This should be caused by > > > ioctl$XFS_IOC_ERROR_INJECTION I guess. > > > > Ah, that's how it happens. The error gets injected during the > > revalidation of a bnobt that involved the cntbt btree, so the cntbt > > cursor gets deleted. > > > > > Back to xchk_allocbt_xref_other(), after receiving -EFSCORRUPTED from > > > xfs_alloc_get_rec(), kernel called xchk_should_check_xref(). In this > > > function, *curpp (points to sc->sa.cnt_cur) is nullified. > > > > > > Back to xrep_revalidate_allocbt(), since sc->sa.cnt_cur has been > > > nullified, it then triggered null-ptr-deref via xchk_allocbt() (second > > > call) -> xchk_btree(). > > > > Yep. So you're right, the revalidation needs to check for > > sc->sa.cnt_cur==NULL before calling xchk_allocbt a second time. > > Sounds good to me. Thanks for your work on XFS :) You're welcome! And thank /you/ for being willing to try to fix the problems you find; I very much appreciate that. :) --D > > > > > > I noticed that at the beginning of xchk_should_check_xref(), it > > > checked whether xref should be skipped. Can this issue be fixed if > > > kernel skips xref in this case? I'm not sure. > > > > > > I hope the analysis is helpful. Feel free to contact me if any further > > > information is needed. > > > > That was very helpful. Could you please take a look at the proposed > > fixes that I'm about to send? > > > > --D > > > > > > > > Best Regards, > > > Jiaming Zhang >
© 2016 - 2026 Red Hat, Inc.