[INFO] fetching crate liburing2-sys 0.3.0+f4e42a5... [INFO] checking liburing2-sys-0.3.0+f4e42a5 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate liburing2-sys 0.3.0+f4e42a5 into /workspace/builds/worker-1-tc2/source [INFO] validating manifest of crates.io crate liburing2-sys 0.3.0+f4e42a5 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate liburing2-sys 0.3.0+f4e42a5 [INFO] finished tweaking crates.io crate liburing2-sys 0.3.0+f4e42a5 [INFO] tweaked toml for crates.io crate liburing2-sys 0.3.0+f4e42a5 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 43 packages to latest compatible versions [INFO] [stderr] Adding bindgen v0.69.4 (available: v0.70.1) [INFO] [stderr] Adding itertools v0.12.1 (available: v0.13.0) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding rustc-hash v1.1.0 (available: v2.0.0) [INFO] [stderr] Adding which v4.4.2 (available: v6.0.3) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a6030551b6dcee20a56a1571a996e9b70afa238da986bc81615487a6e61a47b0 [INFO] running `Command { std: "docker" "start" "-a" "a6030551b6dcee20a56a1571a996e9b70afa238da986bc81615487a6e61a47b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a6030551b6dcee20a56a1571a996e9b70afa238da986bc81615487a6e61a47b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6030551b6dcee20a56a1571a996e9b70afa238da986bc81615487a6e61a47b0", kill_on_drop: false }` [INFO] [stdout] a6030551b6dcee20a56a1571a996e9b70afa238da986bc81615487a6e61a47b0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 57291719c64e3ce502da528592d6e20045a5adeeac13cdcb9d808cfef553396f [INFO] running `Command { std: "docker" "start" "-a" "57291719c64e3ce502da528592d6e20045a5adeeac13cdcb9d808cfef553396f", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling prettyplease v0.2.22 [INFO] [stderr] Compiling bindgen v0.69.4 [INFO] [stderr] Compiling liburing2-sys v0.3.0+f4e42a5 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Fixed /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs (3 fixes) [INFO] [stderr] Migrating tests/version.rs from 2021 edition to 2024 [INFO] [stderr] Migrating tests/nop.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.45s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling liburing2-sys v0.3.0+f4e42a5 (/tmp/fixit) [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:20483 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn io_uring_get_probe_ring (ring : * mut io_uring) -> * mut io_uring_probe ; pub fn io_uring_get_probe () -> * mut io_uring_probe ; pub fn io_uring_free_probe (probe : * mut io_uring_probe) ; pub fn io_uring_opcode_supported (p : * const io_uring_probe , op : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_init_mem (entries : :: core :: ffi :: c_uint , ring : * mut io_uring , p : * mut io_uring_params , buf : * mut :: core :: ffi :: c_void , buf_size : usize) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_init_params (entries : :: core :: ffi :: c_uint , ring : * mut io_uring , p : * mut io_uring_params) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_init (entries : :: core :: ffi :: c_uint , ring : * mut io_uring , flags : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_mmap (fd : :: core :: ffi :: c_int , p : * mut io_uring_params , ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_ring_dontfork (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_exit (ring : * mut io_uring) ; pub fn io_uring_peek_batch_cqe (ring : * mut io_uring , cqes : * mut * mut io_uring_cqe , count : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_uint ; pub fn io_uring_wait_cqes (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , wait_nr : :: core :: ffi :: c_uint , ts : * mut __kernel_timespec , sigmask : * mut sigset_t) -> :: core :: ffi :: c_int ; pub fn io_uring_wait_cqe_timeout (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , ts : * mut __kernel_timespec) -> :: core :: ffi :: c_int ; pub fn io_uring_submit (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_submit_and_wait (ring : * mut io_uring , wait_nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_submit_and_wait_timeout (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , wait_nr : :: core :: ffi :: c_uint , ts : * mut __kernel_timespec , sigmask : * mut sigset_t) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers (ring : * mut io_uring , iovecs : * const iovec , nr_iovecs : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers_tags (ring : * mut io_uring , iovecs : * const iovec , tags : * const __u64 , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers_sparse (ring : * mut io_uring , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers_update_tag (ring : * mut io_uring , off : :: core :: ffi :: c_uint , iovecs : * const iovec , tags : * const __u64 , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_buffers (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files (ring : * mut io_uring , files : * const :: core :: ffi :: c_int , nr_files : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_tags (ring : * mut io_uring , files : * const :: core :: ffi :: c_int , tags : * const __u64 , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_sparse (ring : * mut io_uring , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_update_tag (ring : * mut io_uring , off : :: core :: ffi :: c_uint , files : * const :: core :: ffi :: c_int , tags : * const __u64 , nr_files : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_files (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_update (ring : * mut io_uring , off : :: core :: ffi :: c_uint , files : * const :: core :: ffi :: c_int , nr_files : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_eventfd (ring : * mut io_uring , fd : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_register_eventfd_async (ring : * mut io_uring , fd : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_eventfd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_probe (ring : * mut io_uring , p : * mut io_uring_probe , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_personality (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_personality (ring : * mut io_uring , id : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_register_restrictions (ring : * mut io_uring , res : * mut io_uring_restriction , nr_res : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_enable_rings (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_iowq_aff (ring : * mut io_uring , cpusz : usize , mask : * const cpu_set_t) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_iowq_aff (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_iowq_max_workers (ring : * mut io_uring , values : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_ring_fd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_ring_fd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_close_ring_fd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buf_ring (ring : * mut io_uring , reg : * mut io_uring_buf_reg , flags : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_buf_ring (ring : * mut io_uring , bgid : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_register_sync_cancel (ring : * mut io_uring , reg : * mut io_uring_sync_cancel_reg) -> :: core :: ffi :: c_int ; pub fn io_uring_register_file_alloc_range (ring : * mut io_uring , off : :: core :: ffi :: c_uint , len : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_get_events (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_submit_and_get_events (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_enter (fd : :: core :: ffi :: c_uint , to_submit : :: core :: ffi :: c_uint , min_complete : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint , sig : * mut sigset_t) -> :: core :: ffi :: c_int ; pub fn io_uring_enter2 (fd : :: core :: ffi :: c_uint , to_submit : :: core :: ffi :: c_uint , min_complete : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint , sig : * mut sigset_t , sz : usize) -> :: core :: ffi :: c_int ; pub fn io_uring_setup (entries : :: core :: ffi :: c_uint , p : * mut io_uring_params) -> :: core :: ffi :: c_int ; pub fn io_uring_register (fd : :: core :: ffi :: c_uint , opcode : :: core :: ffi :: c_uint , arg : * const :: core :: ffi :: c_void , nr_args : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_setup_buf_ring (ring : * mut io_uring , nentries : :: core :: ffi :: c_uint , bgid : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint , ret : * mut :: core :: ffi :: c_int) -> * mut io_uring_buf_ring ; pub fn io_uring_free_buf_ring (ring : * mut io_uring , br : * mut io_uring_buf_ring , nentries : :: core :: ffi :: c_uint , bgid : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_cq_advance (ring : * mut io_uring , nr : :: core :: ffi :: c_uint) ; pub fn io_uring_cqe_seen (ring : * mut io_uring , cqe : * mut io_uring_cqe) ; pub fn io_uring_sqe_set_data (sqe : * mut io_uring_sqe , data : * mut :: core :: ffi :: c_void) ; pub fn io_uring_cqe_get_data (cqe : * const io_uring_cqe) -> * mut :: core :: ffi :: c_void ; pub fn io_uring_sqe_set_data64 (sqe : * mut io_uring_sqe , data : __u64) ; pub fn io_uring_cqe_get_data64 (cqe : * const io_uring_cqe) -> __u64 ; pub fn io_uring_sqe_set_flags (sqe : * mut io_uring_sqe , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_rw (op : :: core :: ffi :: c_int , sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * const :: core :: ffi :: c_void , len : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_splice (sqe : * mut io_uring_sqe , fd_in : :: core :: ffi :: c_int , off_in : i64 , fd_out : :: core :: ffi :: c_int , off_out : i64 , nbytes : :: core :: ffi :: c_uint , splice_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_tee (sqe : * mut io_uring_sqe , fd_in : :: core :: ffi :: c_int , fd_out : :: core :: ffi :: c_int , nbytes : :: core :: ffi :: c_uint , splice_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_readv (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_readv2 (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_read_fixed (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64 , buf_index : :: core :: ffi :: c_int) ; pub fn io_uring_prep_writev (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_writev2 (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_write_fixed (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64 , buf_index : :: core :: ffi :: c_int) ; pub fn io_uring_prep_recvmsg (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * mut msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_recvmsg_multishot (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * mut msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_sendmsg (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * const msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_poll_add (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , poll_mask : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_poll_multishot (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , poll_mask : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_poll_remove (sqe : * mut io_uring_sqe , user_data : __u64) ; pub fn io_uring_prep_poll_update (sqe : * mut io_uring_sqe , old_user_data : __u64 , new_user_data : __u64 , poll_mask : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_fsync (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , fsync_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_nop (sqe : * mut io_uring_sqe) ; pub fn io_uring_prep_timeout (sqe : * mut io_uring_sqe , ts : * mut __kernel_timespec , count : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_timeout_remove (sqe : * mut io_uring_sqe , user_data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_timeout_update (sqe : * mut io_uring_sqe , ts : * mut __kernel_timespec , user_data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_accept (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_accept_direct (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_multishot_accept (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_multishot_accept_direct (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_cancel64 (sqe : * mut io_uring_sqe , user_data : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_cancel (sqe : * mut io_uring_sqe , user_data : * mut :: core :: ffi :: c_void , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_cancel_fd (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_link_timeout (sqe : * mut io_uring_sqe , ts : * mut __kernel_timespec , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_connect (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * const sockaddr , addrlen : socklen_t) ; pub fn io_uring_prep_files_update (sqe : * mut io_uring_sqe , fds : * mut :: core :: ffi :: c_int , nr_fds : :: core :: ffi :: c_uint , offset : :: core :: ffi :: c_int) ; pub fn io_uring_prep_fallocate (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , mode : :: core :: ffi :: c_int , offset : __u64 , len : __u64) ; pub fn io_uring_prep_openat (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , mode : mode_t) ; pub fn io_uring_prep_openat_direct (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , mode : mode_t , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_close (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int) ; pub fn io_uring_prep_close_direct (sqe : * mut io_uring_sqe , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_read (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_write (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_statx (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , mask : :: core :: ffi :: c_uint , statxbuf : * mut statx) ; pub fn io_uring_prep_fadvise (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , offset : __u64 , len : off_t , advice : :: core :: ffi :: c_int) ; pub fn io_uring_prep_madvise (sqe : * mut io_uring_sqe , addr : * mut :: core :: ffi :: c_void , length : off_t , advice : :: core :: ffi :: c_int) ; pub fn io_uring_prep_send (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_send_set_addr (sqe : * mut io_uring_sqe , dest_addr : * const sockaddr , addr_len : __u16) ; pub fn io_uring_prep_sendto (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int , addr : * const sockaddr , addrlen : socklen_t) ; pub fn io_uring_prep_send_zc (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int , zc_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_send_zc_fixed (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int , zc_flags : :: core :: ffi :: c_uint , buf_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_sendmsg_zc (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * const msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_recv (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_recv_multishot (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int) ; pub fn io_uring_recvmsg_validate (buf : * mut :: core :: ffi :: c_void , buf_len : :: core :: ffi :: c_int , msgh : * mut msghdr) -> * mut io_uring_recvmsg_out ; pub fn io_uring_recvmsg_name (o : * mut io_uring_recvmsg_out) -> * mut :: core :: ffi :: c_void ; pub fn io_uring_recvmsg_cmsg_firsthdr (o : * mut io_uring_recvmsg_out , msgh : * mut msghdr) -> * mut cmsghdr ; pub fn io_uring_recvmsg_cmsg_nexthdr (o : * mut io_uring_recvmsg_out , msgh : * mut msghdr , cmsg : * mut cmsghdr) -> * mut cmsghdr ; pub fn io_uring_recvmsg_payload (o : * mut io_uring_recvmsg_out , msgh : * mut msghdr) -> * mut :: core :: ffi :: c_void ; pub fn io_uring_recvmsg_payload_length (o : * mut io_uring_recvmsg_out , buf_len : :: core :: ffi :: c_int , msgh : * mut msghdr) -> :: core :: ffi :: c_uint ; pub fn io_uring_prep_openat2 (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , how : * mut open_how) ; pub fn io_uring_prep_openat2_direct (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , how : * mut open_how , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_epoll_ctl (sqe : * mut io_uring_sqe , epfd : :: core :: ffi :: c_int , fd : :: core :: ffi :: c_int , op : :: core :: ffi :: c_int , ev : * mut epoll_event) ; pub fn io_uring_prep_provide_buffers (sqe : * mut io_uring_sqe , addr : * mut :: core :: ffi :: c_void , len : :: core :: ffi :: c_int , nr : :: core :: ffi :: c_int , bgid : :: core :: ffi :: c_int , bid : :: core :: ffi :: c_int) ; pub fn io_uring_prep_remove_buffers (sqe : * mut io_uring_sqe , nr : :: core :: ffi :: c_int , bgid : :: core :: ffi :: c_int) ; pub fn io_uring_prep_shutdown (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , how : :: core :: ffi :: c_int) ; pub fn io_uring_prep_unlinkat (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_unlink (sqe : * mut io_uring_sqe , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_renameat (sqe : * mut io_uring_sqe , olddfd : :: core :: ffi :: c_int , oldpath : * const :: core :: ffi :: c_char , newdfd : :: core :: ffi :: c_int , newpath : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_rename (sqe : * mut io_uring_sqe , oldpath : * const :: core :: ffi :: c_char , newpath : * const :: core :: ffi :: c_char) ; pub fn io_uring_prep_sync_file_range (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint , offset : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_mkdirat (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , mode : mode_t) ; pub fn io_uring_prep_mkdir (sqe : * mut io_uring_sqe , path : * const :: core :: ffi :: c_char , mode : mode_t) ; pub fn io_uring_prep_symlinkat (sqe : * mut io_uring_sqe , target : * const :: core :: ffi :: c_char , newdirfd : :: core :: ffi :: c_int , linkpath : * const :: core :: ffi :: c_char) ; pub fn io_uring_prep_symlink (sqe : * mut io_uring_sqe , target : * const :: core :: ffi :: c_char , linkpath : * const :: core :: ffi :: c_char) ; pub fn io_uring_prep_linkat (sqe : * mut io_uring_sqe , olddfd : :: core :: ffi :: c_int , oldpath : * const :: core :: ffi :: c_char , newdfd : :: core :: ffi :: c_int , newpath : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_link (sqe : * mut io_uring_sqe , oldpath : * const :: core :: ffi :: c_char , newpath : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_msg_ring_cqe_flags (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint , data : __u64 , flags : :: core :: ffi :: c_uint , cqe_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_msg_ring (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint , data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_msg_ring_fd (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , source_fd : :: core :: ffi :: c_int , target_fd : :: core :: ffi :: c_int , data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_msg_ring_fd_alloc (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , source_fd : :: core :: ffi :: c_int , data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_getxattr (sqe : * mut io_uring_sqe , name : * const :: core :: ffi :: c_char , value : * mut :: core :: ffi :: c_char , path : * const :: core :: ffi :: c_char , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_setxattr (sqe : * mut io_uring_sqe , name : * const :: core :: ffi :: c_char , value : * const :: core :: ffi :: c_char , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_fgetxattr (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , name : * const :: core :: ffi :: c_char , value : * mut :: core :: ffi :: c_char , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_fsetxattr (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , name : * const :: core :: ffi :: c_char , value : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_socket (sqe : * mut io_uring_sqe , domain : :: core :: ffi :: c_int , type_ : :: core :: ffi :: c_int , protocol : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_socket_direct (sqe : * mut io_uring_sqe , domain : :: core :: ffi :: c_int , type_ : :: core :: ffi :: c_int , protocol : :: core :: ffi :: c_int , file_index : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_socket_direct_alloc (sqe : * mut io_uring_sqe , domain : :: core :: ffi :: c_int , type_ : :: core :: ffi :: c_int , protocol : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_cmd_sock (sqe : * mut io_uring_sqe , cmd_op : :: core :: ffi :: c_int , fd : :: core :: ffi :: c_int , level : :: core :: ffi :: c_int , optname : :: core :: ffi :: c_int , optval : * mut :: core :: ffi :: c_void , optlen : :: core :: ffi :: c_int) ; pub fn io_uring_sq_ready (ring : * const io_uring) -> :: core :: ffi :: c_uint ; pub fn io_uring_sq_space_left (ring : * const io_uring) -> :: core :: ffi :: c_uint ; pub fn io_uring_sqring_wait (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_cq_ready (ring : * const io_uring) -> :: core :: ffi :: c_uint ; pub fn io_uring_cq_has_overflow (ring : * const io_uring) -> bool ; pub fn io_uring_cq_eventfd_enabled (ring : * const io_uring) -> bool ; pub fn io_uring_cq_eventfd_toggle (ring : * mut io_uring , enabled : bool) -> :: core :: ffi :: c_int ; pub fn io_uring_wait_cqe_nr (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , wait_nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_peek_cqe (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe) -> :: core :: ffi :: c_int ; pub fn io_uring_wait_cqe (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe) -> :: core :: ffi :: c_int ; pub fn io_uring_buf_ring_mask (ring_entries : __u32) -> :: core :: ffi :: c_int ; pub fn io_uring_buf_ring_init (br : * mut io_uring_buf_ring) ; pub fn io_uring_buf_ring_add (br : * mut io_uring_buf_ring , addr : * mut :: core :: ffi :: c_void , len : :: core :: ffi :: c_uint , bid : :: core :: ffi :: c_ushort , mask : :: core :: ffi :: c_int , buf_offset : :: core :: ffi :: c_int) ; pub fn io_uring_buf_ring_advance (br : * mut io_uring_buf_ring , count : :: core :: ffi :: c_int) ; pub fn io_uring_buf_ring_cq_advance (ring : * mut io_uring , br : * mut io_uring_buf_ring , count : :: core :: ffi :: c_int) ; pub fn io_uring_get_sqe (ring : * mut io_uring) -> * mut io_uring_sqe ; pub fn io_uring_mlock_size (entries : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) -> isize ; pub fn io_uring_mlock_size_params (entries : :: core :: ffi :: c_uint , p : * mut io_uring_params) -> isize ; pub fn io_uring_major_version () -> :: core :: ffi :: c_int ; pub fn io_uring_minor_version () -> :: core :: ffi :: c_int ; pub fn io_uring_check_version (major : :: core :: ffi :: c_int , minor : :: core :: ffi :: c_int) -> bool ; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:20483 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn io_uring_get_probe_ring (ring : * mut io_uring) -> * mut io_uring_probe ; pub fn io_uring_get_probe () -> * mut io_uring_probe ; pub fn io_uring_free_probe (probe : * mut io_uring_probe) ; pub fn io_uring_opcode_supported (p : * const io_uring_probe , op : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_init_mem (entries : :: core :: ffi :: c_uint , ring : * mut io_uring , p : * mut io_uring_params , buf : * mut :: core :: ffi :: c_void , buf_size : usize) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_init_params (entries : :: core :: ffi :: c_uint , ring : * mut io_uring , p : * mut io_uring_params) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_init (entries : :: core :: ffi :: c_uint , ring : * mut io_uring , flags : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_mmap (fd : :: core :: ffi :: c_int , p : * mut io_uring_params , ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_ring_dontfork (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_queue_exit (ring : * mut io_uring) ; pub fn io_uring_peek_batch_cqe (ring : * mut io_uring , cqes : * mut * mut io_uring_cqe , count : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_uint ; pub fn io_uring_wait_cqes (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , wait_nr : :: core :: ffi :: c_uint , ts : * mut __kernel_timespec , sigmask : * mut sigset_t) -> :: core :: ffi :: c_int ; pub fn io_uring_wait_cqe_timeout (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , ts : * mut __kernel_timespec) -> :: core :: ffi :: c_int ; pub fn io_uring_submit (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_submit_and_wait (ring : * mut io_uring , wait_nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_submit_and_wait_timeout (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , wait_nr : :: core :: ffi :: c_uint , ts : * mut __kernel_timespec , sigmask : * mut sigset_t) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers (ring : * mut io_uring , iovecs : * const iovec , nr_iovecs : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers_tags (ring : * mut io_uring , iovecs : * const iovec , tags : * const __u64 , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers_sparse (ring : * mut io_uring , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buffers_update_tag (ring : * mut io_uring , off : :: core :: ffi :: c_uint , iovecs : * const iovec , tags : * const __u64 , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_buffers (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files (ring : * mut io_uring , files : * const :: core :: ffi :: c_int , nr_files : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_tags (ring : * mut io_uring , files : * const :: core :: ffi :: c_int , tags : * const __u64 , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_sparse (ring : * mut io_uring , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_update_tag (ring : * mut io_uring , off : :: core :: ffi :: c_uint , files : * const :: core :: ffi :: c_int , tags : * const __u64 , nr_files : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_files (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_files_update (ring : * mut io_uring , off : :: core :: ffi :: c_uint , files : * const :: core :: ffi :: c_int , nr_files : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_eventfd (ring : * mut io_uring , fd : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_register_eventfd_async (ring : * mut io_uring , fd : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_eventfd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_probe (ring : * mut io_uring , p : * mut io_uring_probe , nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_personality (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_personality (ring : * mut io_uring , id : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_register_restrictions (ring : * mut io_uring , res : * mut io_uring_restriction , nr_res : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_enable_rings (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_iowq_aff (ring : * mut io_uring , cpusz : usize , mask : * const cpu_set_t) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_iowq_aff (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_iowq_max_workers (ring : * mut io_uring , values : * mut :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_register_ring_fd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_ring_fd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_close_ring_fd (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_register_buf_ring (ring : * mut io_uring , reg : * mut io_uring_buf_reg , flags : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_unregister_buf_ring (ring : * mut io_uring , bgid : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_register_sync_cancel (ring : * mut io_uring , reg : * mut io_uring_sync_cancel_reg) -> :: core :: ffi :: c_int ; pub fn io_uring_register_file_alloc_range (ring : * mut io_uring , off : :: core :: ffi :: c_uint , len : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_get_events (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_submit_and_get_events (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_enter (fd : :: core :: ffi :: c_uint , to_submit : :: core :: ffi :: c_uint , min_complete : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint , sig : * mut sigset_t) -> :: core :: ffi :: c_int ; pub fn io_uring_enter2 (fd : :: core :: ffi :: c_uint , to_submit : :: core :: ffi :: c_uint , min_complete : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint , sig : * mut sigset_t , sz : usize) -> :: core :: ffi :: c_int ; pub fn io_uring_setup (entries : :: core :: ffi :: c_uint , p : * mut io_uring_params) -> :: core :: ffi :: c_int ; pub fn io_uring_register (fd : :: core :: ffi :: c_uint , opcode : :: core :: ffi :: c_uint , arg : * const :: core :: ffi :: c_void , nr_args : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_setup_buf_ring (ring : * mut io_uring , nentries : :: core :: ffi :: c_uint , bgid : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint , ret : * mut :: core :: ffi :: c_int) -> * mut io_uring_buf_ring ; pub fn io_uring_free_buf_ring (ring : * mut io_uring , br : * mut io_uring_buf_ring , nentries : :: core :: ffi :: c_uint , bgid : :: core :: ffi :: c_int) -> :: core :: ffi :: c_int ; pub fn io_uring_cq_advance (ring : * mut io_uring , nr : :: core :: ffi :: c_uint) ; pub fn io_uring_cqe_seen (ring : * mut io_uring , cqe : * mut io_uring_cqe) ; pub fn io_uring_sqe_set_data (sqe : * mut io_uring_sqe , data : * mut :: core :: ffi :: c_void) ; pub fn io_uring_cqe_get_data (cqe : * const io_uring_cqe) -> * mut :: core :: ffi :: c_void ; pub fn io_uring_sqe_set_data64 (sqe : * mut io_uring_sqe , data : __u64) ; pub fn io_uring_cqe_get_data64 (cqe : * const io_uring_cqe) -> __u64 ; pub fn io_uring_sqe_set_flags (sqe : * mut io_uring_sqe , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_rw (op : :: core :: ffi :: c_int , sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * const :: core :: ffi :: c_void , len : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_splice (sqe : * mut io_uring_sqe , fd_in : :: core :: ffi :: c_int , off_in : i64 , fd_out : :: core :: ffi :: c_int , off_out : i64 , nbytes : :: core :: ffi :: c_uint , splice_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_tee (sqe : * mut io_uring_sqe , fd_in : :: core :: ffi :: c_int , fd_out : :: core :: ffi :: c_int , nbytes : :: core :: ffi :: c_uint , splice_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_readv (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_readv2 (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_read_fixed (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64 , buf_index : :: core :: ffi :: c_int) ; pub fn io_uring_prep_writev (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_writev2 (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , iovecs : * const iovec , nr_vecs : :: core :: ffi :: c_uint , offset : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_write_fixed (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64 , buf_index : :: core :: ffi :: c_int) ; pub fn io_uring_prep_recvmsg (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * mut msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_recvmsg_multishot (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * mut msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_sendmsg (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * const msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_poll_add (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , poll_mask : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_poll_multishot (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , poll_mask : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_poll_remove (sqe : * mut io_uring_sqe , user_data : __u64) ; pub fn io_uring_prep_poll_update (sqe : * mut io_uring_sqe , old_user_data : __u64 , new_user_data : __u64 , poll_mask : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_fsync (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , fsync_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_nop (sqe : * mut io_uring_sqe) ; pub fn io_uring_prep_timeout (sqe : * mut io_uring_sqe , ts : * mut __kernel_timespec , count : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_timeout_remove (sqe : * mut io_uring_sqe , user_data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_timeout_update (sqe : * mut io_uring_sqe , ts : * mut __kernel_timespec , user_data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_accept (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_accept_direct (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_multishot_accept (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_multishot_accept_direct (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * mut sockaddr , addrlen : * mut socklen_t , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_cancel64 (sqe : * mut io_uring_sqe , user_data : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_cancel (sqe : * mut io_uring_sqe , user_data : * mut :: core :: ffi :: c_void , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_cancel_fd (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_link_timeout (sqe : * mut io_uring_sqe , ts : * mut __kernel_timespec , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_connect (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , addr : * const sockaddr , addrlen : socklen_t) ; pub fn io_uring_prep_files_update (sqe : * mut io_uring_sqe , fds : * mut :: core :: ffi :: c_int , nr_fds : :: core :: ffi :: c_uint , offset : :: core :: ffi :: c_int) ; pub fn io_uring_prep_fallocate (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , mode : :: core :: ffi :: c_int , offset : __u64 , len : __u64) ; pub fn io_uring_prep_openat (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , mode : mode_t) ; pub fn io_uring_prep_openat_direct (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , mode : mode_t , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_close (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int) ; pub fn io_uring_prep_close_direct (sqe : * mut io_uring_sqe , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_read (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_write (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , nbytes : :: core :: ffi :: c_uint , offset : __u64) ; pub fn io_uring_prep_statx (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , mask : :: core :: ffi :: c_uint , statxbuf : * mut statx) ; pub fn io_uring_prep_fadvise (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , offset : __u64 , len : off_t , advice : :: core :: ffi :: c_int) ; pub fn io_uring_prep_madvise (sqe : * mut io_uring_sqe , addr : * mut :: core :: ffi :: c_void , length : off_t , advice : :: core :: ffi :: c_int) ; pub fn io_uring_prep_send (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_send_set_addr (sqe : * mut io_uring_sqe , dest_addr : * const sockaddr , addr_len : __u16) ; pub fn io_uring_prep_sendto (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int , addr : * const sockaddr , addrlen : socklen_t) ; pub fn io_uring_prep_send_zc (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int , zc_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_send_zc_fixed (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * const :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int , zc_flags : :: core :: ffi :: c_uint , buf_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_sendmsg_zc (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , msg : * const msghdr , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_recv (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_recv_multishot (sqe : * mut io_uring_sqe , sockfd : :: core :: ffi :: c_int , buf : * mut :: core :: ffi :: c_void , len : usize , flags : :: core :: ffi :: c_int) ; pub fn io_uring_recvmsg_validate (buf : * mut :: core :: ffi :: c_void , buf_len : :: core :: ffi :: c_int , msgh : * mut msghdr) -> * mut io_uring_recvmsg_out ; pub fn io_uring_recvmsg_name (o : * mut io_uring_recvmsg_out) -> * mut :: core :: ffi :: c_void ; pub fn io_uring_recvmsg_cmsg_firsthdr (o : * mut io_uring_recvmsg_out , msgh : * mut msghdr) -> * mut cmsghdr ; pub fn io_uring_recvmsg_cmsg_nexthdr (o : * mut io_uring_recvmsg_out , msgh : * mut msghdr , cmsg : * mut cmsghdr) -> * mut cmsghdr ; pub fn io_uring_recvmsg_payload (o : * mut io_uring_recvmsg_out , msgh : * mut msghdr) -> * mut :: core :: ffi :: c_void ; pub fn io_uring_recvmsg_payload_length (o : * mut io_uring_recvmsg_out , buf_len : :: core :: ffi :: c_int , msgh : * mut msghdr) -> :: core :: ffi :: c_uint ; pub fn io_uring_prep_openat2 (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , how : * mut open_how) ; pub fn io_uring_prep_openat2_direct (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , how : * mut open_how , file_index : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_epoll_ctl (sqe : * mut io_uring_sqe , epfd : :: core :: ffi :: c_int , fd : :: core :: ffi :: c_int , op : :: core :: ffi :: c_int , ev : * mut epoll_event) ; pub fn io_uring_prep_provide_buffers (sqe : * mut io_uring_sqe , addr : * mut :: core :: ffi :: c_void , len : :: core :: ffi :: c_int , nr : :: core :: ffi :: c_int , bgid : :: core :: ffi :: c_int , bid : :: core :: ffi :: c_int) ; pub fn io_uring_prep_remove_buffers (sqe : * mut io_uring_sqe , nr : :: core :: ffi :: c_int , bgid : :: core :: ffi :: c_int) ; pub fn io_uring_prep_shutdown (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , how : :: core :: ffi :: c_int) ; pub fn io_uring_prep_unlinkat (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_unlink (sqe : * mut io_uring_sqe , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_renameat (sqe : * mut io_uring_sqe , olddfd : :: core :: ffi :: c_int , oldpath : * const :: core :: ffi :: c_char , newdfd : :: core :: ffi :: c_int , newpath : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_rename (sqe : * mut io_uring_sqe , oldpath : * const :: core :: ffi :: c_char , newpath : * const :: core :: ffi :: c_char) ; pub fn io_uring_prep_sync_file_range (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint , offset : __u64 , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_mkdirat (sqe : * mut io_uring_sqe , dfd : :: core :: ffi :: c_int , path : * const :: core :: ffi :: c_char , mode : mode_t) ; pub fn io_uring_prep_mkdir (sqe : * mut io_uring_sqe , path : * const :: core :: ffi :: c_char , mode : mode_t) ; pub fn io_uring_prep_symlinkat (sqe : * mut io_uring_sqe , target : * const :: core :: ffi :: c_char , newdirfd : :: core :: ffi :: c_int , linkpath : * const :: core :: ffi :: c_char) ; pub fn io_uring_prep_symlink (sqe : * mut io_uring_sqe , target : * const :: core :: ffi :: c_char , linkpath : * const :: core :: ffi :: c_char) ; pub fn io_uring_prep_linkat (sqe : * mut io_uring_sqe , olddfd : :: core :: ffi :: c_int , oldpath : * const :: core :: ffi :: c_char , newdfd : :: core :: ffi :: c_int , newpath : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_link (sqe : * mut io_uring_sqe , oldpath : * const :: core :: ffi :: c_char , newpath : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int) ; pub fn io_uring_prep_msg_ring_cqe_flags (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint , data : __u64 , flags : :: core :: ffi :: c_uint , cqe_flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_msg_ring (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint , data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_msg_ring_fd (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , source_fd : :: core :: ffi :: c_int , target_fd : :: core :: ffi :: c_int , data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_msg_ring_fd_alloc (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , source_fd : :: core :: ffi :: c_int , data : __u64 , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_getxattr (sqe : * mut io_uring_sqe , name : * const :: core :: ffi :: c_char , value : * mut :: core :: ffi :: c_char , path : * const :: core :: ffi :: c_char , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_setxattr (sqe : * mut io_uring_sqe , name : * const :: core :: ffi :: c_char , value : * const :: core :: ffi :: c_char , path : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_fgetxattr (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , name : * const :: core :: ffi :: c_char , value : * mut :: core :: ffi :: c_char , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_fsetxattr (sqe : * mut io_uring_sqe , fd : :: core :: ffi :: c_int , name : * const :: core :: ffi :: c_char , value : * const :: core :: ffi :: c_char , flags : :: core :: ffi :: c_int , len : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_socket (sqe : * mut io_uring_sqe , domain : :: core :: ffi :: c_int , type_ : :: core :: ffi :: c_int , protocol : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_socket_direct (sqe : * mut io_uring_sqe , domain : :: core :: ffi :: c_int , type_ : :: core :: ffi :: c_int , protocol : :: core :: ffi :: c_int , file_index : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_socket_direct_alloc (sqe : * mut io_uring_sqe , domain : :: core :: ffi :: c_int , type_ : :: core :: ffi :: c_int , protocol : :: core :: ffi :: c_int , flags : :: core :: ffi :: c_uint) ; pub fn io_uring_prep_cmd_sock (sqe : * mut io_uring_sqe , cmd_op : :: core :: ffi :: c_int , fd : :: core :: ffi :: c_int , level : :: core :: ffi :: c_int , optname : :: core :: ffi :: c_int , optval : * mut :: core :: ffi :: c_void , optlen : :: core :: ffi :: c_int) ; pub fn io_uring_sq_ready (ring : * const io_uring) -> :: core :: ffi :: c_uint ; pub fn io_uring_sq_space_left (ring : * const io_uring) -> :: core :: ffi :: c_uint ; pub fn io_uring_sqring_wait (ring : * mut io_uring) -> :: core :: ffi :: c_int ; pub fn io_uring_cq_ready (ring : * const io_uring) -> :: core :: ffi :: c_uint ; pub fn io_uring_cq_has_overflow (ring : * const io_uring) -> bool ; pub fn io_uring_cq_eventfd_enabled (ring : * const io_uring) -> bool ; pub fn io_uring_cq_eventfd_toggle (ring : * mut io_uring , enabled : bool) -> :: core :: ffi :: c_int ; pub fn io_uring_wait_cqe_nr (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe , wait_nr : :: core :: ffi :: c_uint) -> :: core :: ffi :: c_int ; pub fn io_uring_peek_cqe (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe) -> :: core :: ffi :: c_int ; pub fn io_uring_wait_cqe (ring : * mut io_uring , cqe_ptr : * mut * mut io_uring_cqe) -> :: core :: ffi :: c_int ; pub fn io_uring_buf_ring_mask (ring_entries : __u32) -> :: core :: ffi :: c_int ; pub fn io_uring_buf_ring_init (br : * mut io_uring_buf_ring) ; pub fn io_uring_buf_ring_add (br : * mut io_uring_buf_ring , addr : * mut :: core :: ffi :: c_void , len : :: core :: ffi :: c_uint , bid : :: core :: ffi :: c_ushort , mask : :: core :: ffi :: c_int , buf_offset : :: core :: ffi :: c_int) ; pub fn io_uring_buf_ring_advance (br : * mut io_uring_buf_ring , count : :: core :: ffi :: c_int) ; pub fn io_uring_buf_ring_cq_advance (ring : * mut io_uring , br : * mut io_uring_buf_ring , count : :: core :: ffi :: c_int) ; pub fn io_uring_get_sqe (ring : * mut io_uring) -> * mut io_uring_sqe ; pub fn io_uring_mlock_size (entries : :: core :: ffi :: c_uint , flags : :: core :: ffi :: c_uint) -> isize ; pub fn io_uring_mlock_size_params (entries : :: core :: ffi :: c_uint , p : * mut io_uring_params) -> isize ; pub fn io_uring_major_version () -> :: core :: ffi :: c_int ; pub fn io_uring_minor_version () -> :: core :: ffi :: c_int ; pub fn io_uring_check_version (major : :: core :: ffi :: c_int , minor : :: core :: ffi :: c_int) -> bool ; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:510 [INFO] [stdout] | [INFO] [stdout] 3 | ... len : usize) -> & [T] { :: core :: slice :: from_raw_parts (self . as_ptr () , len) } # [inline] pub unsafe fn as_mut_slice (& mut se... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:453 [INFO] [stdout] | [INFO] [stdout] 3 | ...self as * mut _ as * mut T } # [inline] pub unsafe fn as_slice (& self , len : usize) -> & [T] { :: core :: slice :: from_raw_parts (s... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:510 [INFO] [stdout] | [INFO] [stdout] 3 | ... len : usize) -> & [T] { :: core :: slice :: from_raw_parts (self . as_ptr () , len) } # [inline] pub unsafe fn as_mut_slice (& mut se... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:453 [INFO] [stdout] | [INFO] [stdout] 3 | ...self as * mut _ as * mut T } # [inline] pub unsafe fn as_slice (& self , len : usize) -> & [T] { :: core :: slice :: from_raw_parts (s... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:652 [INFO] [stdout] | [INFO] [stdout] 3 | ...size) -> & mut [T] { :: core :: slice :: from_raw_parts_mut (self . as_mut_ptr () , len) } } impl < T > :: core :: fmt :: Debug for __... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:583 [INFO] [stdout] | [INFO] [stdout] 3 | ...f . as_ptr () , len) } # [inline] pub unsafe fn as_mut_slice (& mut self , len : usize) -> & mut [T] { :: core :: slice :: from_raw_pa... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:652 [INFO] [stdout] | [INFO] [stdout] 3 | ...size) -> & mut [T] { :: core :: slice :: from_raw_parts_mut (self . as_mut_ptr () , len) } } impl < T > :: core :: fmt :: Debug for __... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> /opt/rustwide/target/debug/build/liburing2-sys-ab856c1ef43d7fec/out/bindings.rs:3:583 [INFO] [stdout] | [INFO] [stdout] 3 | ...f . as_ptr () , len) } # [inline] pub unsafe fn as_mut_slice (& mut self , len : usize) -> & mut [T] { :: core :: slice :: from_raw_pa... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `liburing2-sys` (lib test) due to 2 previous errors; 2 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `liburing2-sys` (lib) due to 2 previous errors; 2 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "57291719c64e3ce502da528592d6e20045a5adeeac13cdcb9d808cfef553396f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "57291719c64e3ce502da528592d6e20045a5adeeac13cdcb9d808cfef553396f", kill_on_drop: false }` [INFO] [stdout] 57291719c64e3ce502da528592d6e20045a5adeeac13cdcb9d808cfef553396f