[....] Starting periodic command scheduler: cron[?25l[?1c7[ ok 8[?25h[?0c. [....] Starting OpenBSD Secure Shell server: sshd[ 19.626239] random: sshd: uninitialized urandom read (32 bytes read) [?25l[?1c7[ ok 8[?25h[?0c. Debian GNU/Linux 7 syzkaller ttyS0 syzkaller login: [ 22.888433] random: sshd: uninitialized urandom read (32 bytes read) [ 23.184493] random: sshd: uninitialized urandom read (32 bytes read) [ 23.905588] random: sshd: uninitialized urandom read (32 bytes read) [ 27.962231] random: sshd: uninitialized urandom read (32 bytes read) Warning: Permanently added '10.128.10.14' (ECDSA) to the list of known hosts. [ 33.460385] random: sshd: uninitialized urandom read (32 bytes read) executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program [ 33.823648] [ 33.825306] ===================================================== [ 33.831510] WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected [ 33.838236] 4.17.0-rc1+ #12 Not tainted [ 33.842194] ----------------------------------------------------- [ 33.848402] syzkaller880831/4534 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: [ 33.855731] (ptrval) (fs_reclaim){+.+.}, at: fs_reclaim_acquire.part.82+0x0/0x30 [ 33.863947] [ 33.863947] and this task is already holding: [ 33.869888] (ptrval) (&(&dev->event_lock)->rlock){-.-.}, at: input_inject_event+0xe0/0x3ed [ 33.878970] which would create a new lock dependency: [ 33.884129] (&(&dev->event_lock)->rlock){-.-.} -> (fs_reclaim){+.+.} [ 33.890697] [ 33.890697] but this new dependency connects a HARDIRQ-irq-safe lock: [ 33.898729] (&(&dev->event_lock)->rlock){-.-.} [ 33.898737] [ 33.898737] ... which became HARDIRQ-irq-safe at: [ 33.909685] lock_acquire+0x1dc/0x520 [ 33.913936] _raw_spin_lock_irqsave+0x96/0xc0 [ 33.918495] input_event+0x67/0xa0 [ 33.922106] psmouse_report_standard_buttons+0x31/0x90 [ 33.927455] psmouse_process_byte+0x1ef/0x710 [ 33.932020] psmouse_handle_byte+0x4a/0x570 [ 33.936418] psmouse_interrupt+0x38a/0x1420 [ 33.940806] serio_interrupt+0x98/0x160 [ 33.944846] i8042_interrupt+0x385/0x5e0 [ 33.948975] __handle_irq_event_percpu+0x1c0/0xad0 [ 33.953964] handle_irq_event_percpu+0x98/0x1c0 [ 33.958701] handle_irq_event+0xa7/0x135 [ 33.962824] handle_edge_irq+0x20f/0x870 [ 33.966962] handle_irq+0x18c/0x2e7 [ 33.970650] do_IRQ+0x78/0x190 [ 33.973903] ret_from_intr+0x0/0x1e [ 33.977590] __do_softirq+0x298/0xaf5 [ 33.981453] irq_exit+0x1d1/0x200 [ 33.984967] smp_apic_timer_interrupt+0x17e/0x710 [ 33.989871] apic_timer_interrupt+0xf/0x20 [ 33.994169] lock_release+0x4d4/0xa10 [ 33.998374] fs_reclaim_release.part.83+0x1c/0x20 [ 34.003277] fs_reclaim_release+0x14/0x20 [ 34.007488] kmem_cache_alloc+0x30/0x760 [ 34.011613] __kernfs_new_node+0xe7/0x580 [ 34.016605] kernfs_new_node+0x80/0xf0 [ 34.020558] __kernfs_create_file+0x4d/0x330 [ 34.025039] sysfs_add_file_mode_ns+0x21a/0x560 [ 34.029770] internal_create_group+0x282/0x970 [ 34.034414] sysfs_create_groups+0x9b/0x150 [ 34.038801] device_add+0x84d/0x16d0 [ 34.042577] netdev_register_kobject+0x180/0x380 [ 34.047393] register_netdevice+0x997/0x11c0 [ 34.051862] register_netdev+0x30/0x50 [ 34.055812] sit_init_net+0x445/0xc50 [ 34.059675] ops_init+0xff/0x550 [ 34.063104] register_pernet_operations+0x49a/0x9f0 [ 34.068179] register_pernet_device+0x2a/0x80 [ 34.072737] sit_init+0x22/0x175 [ 34.076165] do_one_initcall+0x127/0x913 [ 34.080292] kernel_init_freeable+0x49b/0x58e [ 34.084854] kernel_init+0x11/0x1b3 [ 34.088889] ret_from_fork+0x3a/0x50 [ 34.092658] [ 34.092658] to a HARDIRQ-irq-unsafe lock: [ 34.098256] (fs_reclaim){+.+.} [ 34.098263] [ 34.098263] ... which became HARDIRQ-irq-unsafe at: [ 34.107975] ... [ 34.107984] lock_acquire+0x1dc/0x520 [ 34.114055] fs_reclaim_acquire.part.82+0x24/0x30 [ 34.118960] fs_reclaim_acquire+0x14/0x20 [ 34.123180] kmem_cache_alloc_node_trace+0x39/0x770 [ 34.128262] alloc_worker+0xbd/0x2e0 [ 34.132046] init_rescuer.part.25+0x1f/0x190 [ 34.136517] workqueue_init+0x51f/0x7d0 [ 34.140551] kernel_init_freeable+0x2ad/0x58e [ 34.145111] kernel_init+0x11/0x1b3 [ 34.148817] ret_from_fork+0x3a/0x50 [ 34.152588] [ 34.152588] other info that might help us debug this: [ 34.152588] [ 34.160709] Possible interrupt unsafe locking scenario: [ 34.160709] [ 34.167621] CPU0 CPU1 [ 34.172265] ---- ---- [ 34.176910] lock(fs_reclaim); [ 34.180168] local_irq_disable(); [ 34.186197] lock(&(&dev->event_lock)->rlock); [ 34.193359] lock(fs_reclaim); [ 34.199131] [ 34.201946] lock(&(&dev->event_lock)->rlock); [ 34.206762] [ 34.206762] *** DEADLOCK *** [ 34.206762] [ 34.212797] 3 locks held by syzkaller880831/4534: [ 34.217613] #0: (ptrval) (&evdev->mutex){+.+.}, at: evdev_write+0x1cc/0x860 [ 34.225501] #1: (ptrval) (&(&dev->event_lock)->rlock){-.-.}, at: input_inject_event+0xe0/0x3ed [ 34.235017] #2: (ptrval) (rcu_read_lock){....}, at: input_inject_event+0xc5/0x3ed [ 34.243406] [ 34.243406] the dependencies between HARDIRQ-irq-safe lock and the holding lock: [ 34.252393] -> (&(&dev->event_lock)->rlock){-.-.} ops: 1797 { [ 34.258258] IN-HARDIRQ-W at: [ 34.261516] lock_acquire+0x1dc/0x520 [ 34.266944] _raw_spin_lock_irqsave+0x96/0xc0 [ 34.273074] input_event+0x67/0xa0 [ 34.278241] psmouse_report_standard_buttons+0x31/0x90 [ 34.285143] psmouse_process_byte+0x1ef/0x710 [ 34.291263] psmouse_handle_byte+0x4a/0x570 [ 34.297209] psmouse_interrupt+0x38a/0x1420 [ 34.303154] serio_interrupt+0x98/0x160 [ 34.308753] i8042_interrupt+0x385/0x5e0 [ 34.314438] __handle_irq_event_percpu+0x1c0/0xad0 [ 34.320992] handle_irq_event_percpu+0x98/0x1c0 [ 34.327285] handle_irq_event+0xa7/0x135 [ 34.332978] handle_edge_irq+0x20f/0x870 [ 34.338677] handle_irq+0x18c/0x2e7 [ 34.343937] do_IRQ+0x78/0x190 [ 34.348753] ret_from_intr+0x0/0x1e [ 34.354014] __do_softirq+0x298/0xaf5 [ 34.359443] irq_exit+0x1d1/0x200 [ 34.364521] smp_apic_timer_interrupt+0x17e/0x710 [ 34.370998] apic_timer_interrupt+0xf/0x20 [ 34.376859] lock_release+0x4d4/0xa10 [ 34.382383] fs_reclaim_release.part.83+0x1c/0x20 [ 34.388867] fs_reclaim_release+0x14/0x20 [ 34.394655] kmem_cache_alloc+0x30/0x760 [ 34.400346] __kernfs_new_node+0xe7/0x580 [ 34.406117] kernfs_new_node+0x80/0xf0 [ 34.411629] __kernfs_create_file+0x4d/0x330 [ 34.417678] sysfs_add_file_mode_ns+0x21a/0x560 [ 34.423988] internal_create_group+0x282/0x970 [ 34.430208] sysfs_create_groups+0x9b/0x150 [ 34.436153] device_add+0x84d/0x16d0 [ 34.441494] netdev_register_kobject+0x180/0x380 [ 34.447878] register_netdevice+0x997/0x11c0 [ 34.453913] register_netdev+0x30/0x50 [ 34.459427] sit_init_net+0x445/0xc50 [ 34.464853] ops_init+0xff/0x550 [ 34.469842] register_pernet_operations+0x49a/0x9f0 [ 34.476483] register_pernet_device+0x2a/0x80 [ 34.482609] sit_init+0x22/0x175 [ 34.488038] do_one_initcall+0x127/0x913 [ 34.493723] kernel_init_freeable+0x49b/0x58e [ 34.499854] kernel_init+0x11/0x1b3 [ 34.505107] ret_from_fork+0x3a/0x50 [ 34.510461] IN-SOFTIRQ-W at: [ 34.513730] lock_acquire+0x1dc/0x520 [ 34.519158] _raw_spin_lock_irqsave+0x96/0xc0 [ 34.525281] input_event+0x67/0xa0 [ 34.530447] psmouse_report_standard_buttons+0x31/0x90 [ 34.537347] psmouse_process_byte+0x1ef/0x710 [ 34.543468] psmouse_handle_byte+0x4a/0x570 [ 34.549414] psmouse_interrupt+0x38a/0x1420 [ 34.555358] serio_interrupt+0x98/0x160 [ 34.560957] i8042_interrupt+0x385/0x5e0 [ 34.566644] __handle_irq_event_percpu+0x1c0/0xad0 [ 34.573198] handle_irq_event_percpu+0x98/0x1c0 [ 34.579491] handle_irq_event+0xa7/0x135 [ 34.585178] handle_edge_irq+0x20f/0x870 [ 34.590869] handle_irq+0x18c/0x2e7 [ 34.596129] do_IRQ+0x78/0x190 [ 34.600944] ret_from_intr+0x0/0x1e [ 34.606196] __do_softirq+0x298/0xaf5 [ 34.611620] irq_exit+0x1d1/0x200 [ 34.616695] smp_apic_timer_interrupt+0x17e/0x710 [ 34.623172] apic_timer_interrupt+0xf/0x20 [ 34.629727] lock_release+0x4d4/0xa10 [ 34.635152] fs_reclaim_release.part.83+0x1c/0x20 [ 34.641617] fs_reclaim_release+0x14/0x20 [ 34.647389] kmem_cache_alloc+0x30/0x760 [ 34.653082] __kernfs_new_node+0xe7/0x580 [ 34.658852] kernfs_new_node+0x80/0xf0 [ 34.664367] __kernfs_create_file+0x4d/0x330 [ 34.670951] sysfs_add_file_mode_ns+0x21a/0x560 [ 34.677247] internal_create_group+0x282/0x970 [ 34.683465] sysfs_create_groups+0x9b/0x150 [ 34.689412] device_add+0x84d/0x16d0 [ 34.694840] netdev_register_kobject+0x180/0x380 [ 34.701221] register_netdevice+0x997/0x11c0 [ 34.707251] register_netdev+0x30/0x50 [ 34.712763] sit_init_net+0x445/0xc50 [ 34.718187] ops_init+0xff/0x550 [ 34.723188] register_pernet_operations+0x49a/0x9f0 [ 34.729834] register_pernet_device+0x2a/0x80 [ 34.735954] sit_init+0x22/0x175 [ 34.740944] do_one_initcall+0x127/0x913 [ 34.746630] kernel_init_freeable+0x49b/0x58e [ 34.752750] kernel_init+0x11/0x1b3 [ 34.758006] ret_from_fork+0x3a/0x50 [ 34.763338] INITIAL USE at: [ 34.766510] lock_acquire+0x1dc/0x520 [ 34.771850] _raw_spin_lock_irqsave+0x96/0xc0 [ 34.777969] input_inject_event+0xe0/0x3ed [ 34.783754] input_leds_brightness_set+0x81/0xb0 [ 34.790051] led_set_brightness_nopm+0x4c/0xe0 [ 34.796172] led_set_brightness+0x113/0x220 [ 34.802032] led_trigger_event+0x77/0xd0 [ 34.807642] kbd_led_trigger_activate+0xed/0x120 [ 34.813936] led_trigger_set+0x668/0x930 [ 34.819534] led_trigger_set_default+0x10a/0x180 [ 34.825833] of_led_classdev_register+0x485/0x640 [ 34.832212] input_leds_connect+0x410/0x7c0 [ 34.838157] input_attach_handler+0x1b1/0x210 [ 34.844206] input_register_device.cold.22+0xe8/0x297 [ 34.850946] atkbd_connect+0x6fe/0x930 [ 34.856379] serio_connect_driver+0x4f/0x70 [ 34.862250] serio_driver_probe+0x47/0x60 [ 34.868026] driver_probe_device+0x69b/0x960 [ 34.873970] __driver_attach+0x1b2/0x1f0 [ 34.879574] bus_for_each_dev+0x151/0x1d0 [ 34.885256] driver_attach+0x3d/0x50 [ 34.890507] serio_handle_event+0x70a/0xb20 [ 34.896364] process_one_work+0xc1e/0x1b50 [ 34.902134] worker_thread+0x1cc/0x1440 [ 34.907645] kthread+0x345/0x410 [ 34.912554] ret_from_fork+0x3a/0x50 [ 34.917805] } [ 34.919587] ... key at: [] __key.33448+0x0/0x40 [ 34.926309] ... acquired at: [ 34.929388] lock_acquire+0x1dc/0x520 [ 34.933338] fs_reclaim_acquire.part.82+0x24/0x30 [ 34.938334] fs_reclaim_acquire+0x14/0x20 [ 34.942643] __kmalloc+0x45/0x760 [ 34.946256] crng_reseed+0x427/0x920 [ 34.950128] credit_entropy_bits+0x98d/0xa30 [ 34.954688] add_timer_randomness+0x26b/0x320 [ 34.959329] add_input_randomness+0xce/0x3e0 [ 34.963884] input_handle_event+0xb3/0x1210 [ 34.968354] input_inject_event+0x367/0x3ed [ 34.972847] evdev_write+0x4d1/0x860 [ 34.976709] __vfs_write+0x10b/0x960 [ 34.980568] vfs_write+0x1f8/0x560 [ 34.984264] ksys_write+0xf9/0x250 [ 34.988038] __x64_sys_write+0x73/0xb0 [ 34.992073] do_syscall_64+0x1b1/0x800 [ 34.996108] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 35.001441] [ 35.003038] [ 35.003038] the dependencies between the lock to be acquired [ 35.003041] and HARDIRQ-irq-unsafe lock: [ 35.014410] -> (fs_reclaim){+.+.} ops: 1058989 { [ 35.019152] HARDIRQ-ON-W at: [ 35.022411] lock_acquire+0x1dc/0x520 [ 35.027837] fs_reclaim_acquire.part.82+0x24/0x30 [ 35.034310] fs_reclaim_acquire+0x14/0x20 [ 35.040170] kmem_cache_alloc_node_trace+0x39/0x770 [ 35.046813] alloc_worker+0xbd/0x2e0 [ 35.052162] init_rescuer.part.25+0x1f/0x190 [ 35.058197] workqueue_init+0x51f/0x7d0 [ 35.063803] kernel_init_freeable+0x2ad/0x58e [ 35.069928] kernel_init+0x11/0x1b3 [ 35.075177] ret_from_fork+0x3a/0x50 [ 35.080511] SOFTIRQ-ON-W at: [ 35.083768] lock_acquire+0x1dc/0x520 [ 35.089191] fs_reclaim_acquire.part.82+0x24/0x30 [ 35.095657] fs_reclaim_acquire+0x14/0x20 [ 35.101436] kmem_cache_alloc_node_trace+0x39/0x770 [ 35.108076] alloc_worker+0xbd/0x2e0 [ 35.113411] init_rescuer.part.25+0x1f/0x190 [ 35.119446] workqueue_init+0x51f/0x7d0 [ 35.125043] kernel_init_freeable+0x2ad/0x58e [ 35.131162] kernel_init+0x11/0x1b3 [ 35.136414] ret_from_fork+0x3a/0x50 [ 35.141748] INITIAL USE at: [ 35.144919] lock_acquire+0x1dc/0x520 [ 35.150270] fs_reclaim_acquire.part.82+0x24/0x30 [ 35.156693] fs_reclaim_acquire+0x14/0x20 [ 35.162412] kmem_cache_alloc_node_trace+0x39/0x770 [ 35.168990] alloc_worker+0xbd/0x2e0 [ 35.174246] init_rescuer.part.25+0x1f/0x190 [ 35.180280] workqueue_init+0x51f/0x7d0 [ 35.185797] kernel_init_freeable+0x2ad/0x58e [ 35.191829] kernel_init+0x11/0x1b3 [ 35.196995] ret_from_fork+0x3a/0x50 [ 35.202241] } [ 35.204025] ... key at: [] __fs_reclaim_map+0x0/0x40 [ 35.211179] ... acquired at: [ 35.214263] lock_acquire+0x1dc/0x520 [ 35.218213] fs_reclaim_acquire.part.82+0x24/0x30 [ 35.223203] fs_reclaim_acquire+0x14/0x20 [ 35.227496] __kmalloc+0x45/0x760 [ 35.231099] crng_reseed+0x427/0x920 [ 35.234958] credit_entropy_bits+0x98d/0xa30 [ 35.239515] add_timer_randomness+0x26b/0x320 [ 35.244160] add_input_randomness+0xce/0x3e0 [ 35.248721] input_handle_event+0xb3/0x1210 [ 35.253191] input_inject_event+0x367/0x3ed [ 35.257657] evdev_write+0x4d1/0x860 [ 35.262129] __vfs_write+0x10b/0x960 [ 35.265999] vfs_write+0x1f8/0x560 [ 35.269688] ksys_write+0xf9/0x250 [ 35.273379] __x64_sys_write+0x73/0xb0 [ 35.277416] do_syscall_64+0x1b1/0x800 [ 35.281452] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 35.286783] [ 35.288381] [ 35.288381] stack backtrace: [ 35.292860] CPU: 0 PID: 4534 Comm: syzkaller880831 Not tainted 4.17.0-rc1+ #12 [ 35.300190] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 35.309523] Call Trace: [ 35.312085] dump_stack+0x1b9/0x294 [ 35.315695] ? dump_stack_print_info.cold.2+0x52/0x52 [ 35.320861] ? print_shortest_lock_dependencies.cold.55+0x1af/0x22a [ 35.327248] ? vprintk_func+0x81/0xe7 [ 35.331023] check_usage.cold.58+0x6d5/0xac7 [ 35.335403] ? is_bpf_text_address+0xae/0x170 [ 35.339873] ? check_usage_forwards+0x3a0/0x3a0 [ 35.344511] ? __bfs+0xa8/0x790 [ 35.347770] ? rcu_is_watching+0x85/0x140 [ 35.351895] ? rcu_bh_force_quiescent_state+0x20/0x20 [ 35.357057] ? lockdep_on+0x50/0x50 [ 35.360666] ? lock_pin_lock+0x350/0x350 [ 35.364705] ? __unwind_start+0x166/0x330 [ 35.368829] ? __kernel_text_address+0xd/0x40 [ 35.373315] ? unwind_get_return_address+0x61/0xa0 [ 35.378221] ? add_lock_to_list.isra.29+0x1e4/0x490 [ 35.383212] __lock_acquire+0x2417/0x5140 [ 35.387335] ? __lock_acquire+0x2417/0x5140 [ 35.391628] ? save_trace+0xe0/0x290 [ 35.395319] ? debug_check_no_locks_freed+0x310/0x310 [ 35.400496] ? debug_check_no_locks_freed+0x310/0x310 [ 35.405659] ? lock_downgrade+0x8e0/0x8e0 [ 35.409892] ? __mix_pool_bytes+0xde/0x400 [ 35.414122] ? do_raw_spin_trylock+0x1b0/0x1b0 [ 35.418692] ? memzero_explicit+0xe/0x10 [ 35.422744] ? extract_buf+0x3a3/0x4c0 [ 35.426608] ? crng_fast_load+0x3b0/0x3b0 [ 35.430733] ? graph_lock+0x170/0x170 [ 35.434516] lock_acquire+0x1dc/0x520 [ 35.438290] ? bad_range+0x160/0x160 [ 35.441979] ? lock_release+0xa10/0xa10 [ 35.445927] ? lock_downgrade+0x8e0/0x8e0 [ 35.450046] ? lock_release+0xa10/0xa10 [ 35.453995] ? lock_downgrade+0x8e0/0x8e0 [ 35.458118] fs_reclaim_acquire.part.82+0x24/0x30 [ 35.462931] ? bad_range+0x160/0x160 [ 35.466619] fs_reclaim_acquire+0x14/0x20 [ 35.470756] __kmalloc+0x45/0x760 [ 35.474185] ? trace_hardirqs_off+0xd/0x10 [ 35.478397] ? _raw_write_unlock_irqrestore+0x63/0xc0 [ 35.483562] ? crng_reseed+0x427/0x920 [ 35.487423] crng_reseed+0x427/0x920 [ 35.491113] ? _extract_entropy.constprop.32+0x150/0x150 [ 35.496534] ? find_held_lock+0x36/0x1c0 [ 35.500571] ? __lock_is_held+0xb5/0x140 [ 35.504609] credit_entropy_bits+0x98d/0xa30 [ 35.509000] ? add_timer_randomness+0x26b/0x320 [ 35.513646] ? crng_reseed+0x920/0x920 [ 35.517514] ? _raw_spin_unlock_irqrestore+0x63/0xc0 [ 35.522591] ? mix_pool_bytes+0xf7/0x410 [ 35.526639] ? add_timer_randomness+0x12f/0x320 [ 35.531282] ? __bpf_trace_random_read+0x40/0x40 [ 35.536016] ? graph_lock+0x170/0x170 [ 35.539791] ? graph_lock+0x170/0x170 [ 35.543567] add_timer_randomness+0x26b/0x320 [ 35.548037] ? credit_entropy_bits+0xa30/0xa30 [ 35.552594] add_input_randomness+0xce/0x3e0 [ 35.556977] ? add_timer_randomness+0x320/0x320 [ 35.561621] ? lock_acquire+0x1dc/0x520 [ 35.565573] ? input_inject_event+0xc5/0x3ed [ 35.569959] ? __sanitizer_cov_trace_switch+0x53/0x90 [ 35.575125] input_handle_event+0xb3/0x1210 [ 35.579424] input_inject_event+0x367/0x3ed [ 35.583719] ? input_event+0xa0/0xa0 [ 35.587408] evdev_write+0x4d1/0x860 [ 35.591100] ? do_syscall_64+0x1b1/0x800 [ 35.595144] ? evdev_connect+0x5a0/0x5a0 [ 35.599181] ? do_raw_spin_unlock+0x9e/0x2e0 [ 35.603568] ? do_raw_spin_trylock+0x1b0/0x1b0 [ 35.608126] __vfs_write+0x10b/0x960 [ 35.611815] ? __fget_light+0x2ef/0x430 [ 35.615773] ? evdev_connect+0x5a0/0x5a0 [ 35.619810] ? kernel_read+0x120/0x120 [ 35.623675] ? debug_check_no_obj_freed+0x2ff/0x584 [ 35.628664] ? kasan_check_read+0x11/0x20 [ 35.632789] ? rcu_is_watching+0x85/0x140 [ 35.636912] ? rcu_pm_notify+0xc0/0xc0 [ 35.640780] ? trace_hardirqs_off+0xd/0x10 [ 35.644992] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20 [ 35.650504] ? security_file_permission+0x1c6/0x240 [ 35.655492] ? rw_verify_area+0x118/0x360 [ 35.659615] vfs_write+0x1f8/0x560 [ 35.663131] ksys_write+0xf9/0x250 [ 35.666645] ? __ia32_sys_read+0xb0/0xb0 [ 35.670682] ? syscall_slow_exit_work+0x4f0/0x4f0 [ 35.675496] __x64_sys_write+0x73/0xb0 [ 35.679358] do_syscall_64+0x1b1/0x800 [ 35.683313] ? syscall_return_slowpath+0x5c0/0x5c0 [ 35.688217] ? syscall_return_slowpath+0x30f/0x5c0 [ 35.693121] ? entry_SYSCALL_64_after_hwframe+0x59/0xbe [ 35.698463] ? trace_hardirqs_off_thunk+0x1a/0x1c [ 35.703848] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 35.709021] RIP: 0033:0x443db9 [ 35.712185] RSP: 002b:00007ffd62c88e88 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [ 35.719870] RAX: ffffffffffffffda RBX: 0008000040000002 RCX: 0000000000443db9 [ 35.727116] RDX: 0000000000000030 RSI: 00000000200000c0 RDI: 00000000000003ff [ 35.734358] RBP: 746e6576652f7475 R08: 00000000004002e0 R09: 00000000004002e0 [ 35.742274] R10: 0000000000000000 R11: 0000000000000246 R12: 706e692f7665642f [ 35.749523] R13: 0000000000401af0 R14: 0000000000000000 R15: 0000000000000000 [ 35.756774] BUG: sleeping function called from invalid context at mm/slab.h:421 [ 35.764194] in_atomic(): 1, irqs_disabled(): 1, pid: 4534, name: syzkaller880831 [ 35.771697] INFO: lockdep is turned off. [ 35.775731] irq event stamp: 74430 [ 35.779255] hardirqs last enabled at (74429): [] do_syscall_64+0x92/0x800 [ 35.787810] hardirqs last disabled at (74430): [] _raw_spin_lock_irqsave+0x74/0xc0 [ 35.797059] softirqs last enabled at (74408): [] __do_softirq+0x778/0xaf5 [ 35.805613] softirqs last disabled at (74401): [] irq_exit+0x1d1/0x200 [ 35.813818] CPU: 0 PID: 4534 Comm: syzkaller880831 Not tainted 4.17.0-rc1+ #12 [ 35.821151] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 35.830476] Call Trace: [ 35.833052] dump_stack+0x1b9/0x294 [ 35.836659] ? dump_stack_print_info.cold.2+0x52/0x52 [ 35.841836] ? fs_reclaim_acquire+0x20/0x20 [ 35.846135] ? irq_exit+0x1d1/0x200 [ 35.849757] ? irq_exit+0x1d1/0x200 [ 35.853550] ___might_sleep.cold.87+0x11f/0x13a [ 35.858199] ? check_same_owner+0x320/0x320 [ 35.862498] ? lock_release+0xa10/0xa10 [ 35.866459] __might_sleep+0x95/0x190 [ 35.870244] __kmalloc+0x2b9/0x760 [ 35.873766] ? trace_hardirqs_off+0xd/0x10 [ 35.877989] ? _raw_write_unlock_irqrestore+0x63/0xc0 [ 35.883161] ? crng_reseed+0x427/0x920 [ 35.887030] crng_reseed+0x427/0x920 [ 35.890734] ? _extract_entropy.constprop.32+0x150/0x150 [ 35.896160] ? find_held_lock+0x36/0x1c0 [ 35.900199] ? __lock_is_held+0xb5/0x140 [ 35.904240] credit_entropy_bits+0x98d/0xa30 [ 35.908624] ? add_timer_randomness+0x26b/0x320 [ 35.913271] ? crng_reseed+0x920/0x920 [ 35.917142] ? _raw_spin_unlock_irqrestore+0x63/0xc0 [ 35.922222] ? mix_pool_bytes+0xf7/0x410 [ 35.926260] ? add_timer_randomness+0x12f/0x320 [ 35.930993] ? __bpf_trace_random_read+0x40/0x40 [ 35.935736] ? graph_lock+0x170/0x170 [ 35.939511] ? graph_lock+0x170/0x170 [ 35.943292] add_timer_randomness+0x26b/0x320 [ 35.947771] ? credit_entropy_bits+0xa30/0xa30 [ 35.952332] add_input_randomness+0xce/0x3e0 [ 35.956721] ? add_timer_randomness+0x320/0x320 [ 35.961382] ? lock_acquire+0x1dc/0x520 [ 35.965336] ? input_inject_event+0xc5/0x3ed [ 35.969733] ? __sanitizer_cov_trace_switch+0x53/0x90 [ 35.974902] input_handle_event+0xb3/0x1210 [ 35.979210] input_inject_event+0x367/0x3ed [ 35.983508] ? input_event+0xa0/0xa0 [ 35.987205] evdev_write+0x4d1/0x860 [ 35.990909] ? do_syscall_64+0x1b1/0x800 [ 35.994945] ? evdev_connect+0x5a0/0x5a0 [ 35.998990] ? do_raw_spin_unlock+0x9e/0x2e0 [ 36.003382] ? do_raw_spin_trylock+0x1b0/0x1b0 [ 36.007940] __vfs_write+0x10b/0x960 [ 36.011640] ? __fget_light+0x2ef/0x430 [ 36.015591] ? evdev_connect+0x5a0/0x5a0 [ 36.019628] ? kernel_read+0x120/0x120 [ 36.023493] ? debug_check_no_obj_freed+0x2ff/0x584 [ 36.028487] ? kasan_check_read+0x11/0x20 [ 36.032613] ? rcu_is_watching+0x85/0x140 [ 36.036739] ? rcu_pm_notify+0xc0/0xc0 [ 36.040606] ? trace_hardirqs_off+0xd/0x10 [ 36.044826] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20 [ 36.050341] ? security_file_permission+0x1c6/0x240 [ 36.055333] ? rw_verify_area+0x118/0x360 [ 36.059456] vfs_write+0x1f8/0x560 [ 36.062973] ksys_write+0xf9/0x250 [ 36.066489] ? __ia32_sys_read+0xb0/0xb0 [ 36.070527] ? syscall_slow_exit_work+0x4f0/0x4f0 [ 36.075348] __x64_sys_write+0x73/0xb0 [ 36.079215] do_syscall_64+0x1b1/0x800 [ 36.083082] ? syscall_return_slowpath+0x5c0/0x5c0 [ 36.087989] ? syscall_return_slowpath+0x30f/0x5c0 [ 36.092904] ? entry_SYSCALL_64_after_hwframe+0x59/0xbe [ 36.098248] ? trace_hardirqs_off_thunk+0x1a/0x1c [ 36.103067] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 36.108241] RIP: 0033:0x443db9 [ 36.111411] RSP: 002b:00007ffd62c88e88 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [ 36.119096] RAX: ffffffffffffffda RBX: 0008000040000002 RCX: 0000000000443db9 [ 36.126341] RDX: 0000000000000030 RSI: 00000000200000c0 RDI: 00000000000003ff executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program [ 36.133592] RBP: 746e6576652f7475 R08: 00000000004002e0 R09: 00000000004002e0 [ 36.140851] R10: 0000000000000000 R11: 0000000000000246 R12: 706e692f7665642f [ 36.148101] R13: 0000000000401af0 R14: 0000000000000000 R15: 0000000000000000 [ 36.155385] random: crng init done executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executi