diff --git a/.cargo/config.toml b/.cargo/config.toml index 9e5a563..11e0184 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -9,4 +9,4 @@ runner = "probe-rs run --chip STM32U5A5ZJTx" # rustflags = ["-C", "link-arg=-Tlink.x"] [env] -DEFMT_LOG = "trace" \ No newline at end of file +DEFMT_LOG = "trace" diff --git a/.vscode/launch.json b/.vscode/launch.json index fcfbd7f..85ae037 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -27,7 +27,7 @@ { "coreIndex": 0, //!MODIFY - "programBinary": "/home/zong/Code/u5_example/target/thumbv8m.main-none-eabihf/debug/u5_example", + "programBinary": "/home/zong/Code/u5_example/target/thumbv8m.main-none-eabihf/debug/usb_hs", //!MODIFY "svdFile": "stm32u5a5.svd", "rttEnabled": true diff --git a/.vscode/taks.json b/.vscode/taks.json index e009d5a..4674002 100644 --- a/.vscode/taks.json +++ b/.vscode/taks.json @@ -6,7 +6,7 @@ "command": "build", "args": [ "--bin", - "u5_example" + "usb_hs" ], "problemMatcher": [ "$rustc" diff --git a/Cargo.lock b/Cargo.lock index 2d235cb..6108584 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -95,7 +95,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -106,7 +106,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -139,7 +139,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -194,7 +194,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -380,6 +380,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + [[package]] name = "nb" version = "0.1.3" @@ -439,18 +445,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "a56dea16b0a29e94408b9aa5e2940a4eedbd128a1ba20e8f7ae60fd3d465af0e" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -502,7 +508,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -524,7 +530,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stm32-metapac" version = "15.0.0" -source = "git+https://gitea.ggeta.com/guangzong/stm32-data-generated#a9f7568e7fb17705922cd5947523ee1869774234" +source = "git+https://gitea.ggeta.com/guangzong/stm32-data-generated#a3820c27dc77a06f0178e9f829220da6959bd240" dependencies = [ "cortex-m", "cortex-m-rt", @@ -549,9 +555,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.57" +version = "2.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" +checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a" dependencies = [ "proc-macro2", "quote", @@ -575,13 +581,12 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] name = "u5-lib" version = "0.1.0" -source = "git+ssh://gitea@git.ggeta.com:2002/guangzong/u5_new.git?branch=dev#985cbf34c6d9e1fb75cf015f0bcdf8b693fd8b2d" dependencies = [ "cortex-m", "cortex-m-rt", @@ -596,8 +601,10 @@ dependencies = [ "embassy-usb-driver", "futures", "heapless", + "log", "sdio-host", "stm32-metapac", + "usb-device", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8ee5f9e..0f738c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,20 +4,23 @@ version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[[bin]] -name = "i2c" -path = "src/bin/i2c.rs" +# [[bin]] +# name = "i2c" +# path = "src/bin/i2c.rs" -[net] -git-fetch-with-cli = true +# [net] +# git-fetch-with-cli = true [dependencies] # cortex-m = "0.7.0" cortex-m = { version = "0.7.7" } -u5-lib = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/u5_new.git", features = [ +#u5-lib = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/u5_new.git", features = [ +# "stm32u5a5qj", +#], default-features = false, branch = "dev" } +u5-lib = { path="../u5_new", features = [ "stm32u5a5qj", -], default-features = false, branch = "dev" } +], default-features = false } eb_cmds = { git = "ssh://gitea@git.ggeta.com:2002/guangzong/eb_cmds.git" } #critical-section = "1.1.2" diff --git a/src/bin/i2c.rs b/src/bin/i2c.rs.bak similarity index 100% rename from src/bin/i2c.rs rename to src/bin/i2c.rs.bak diff --git a/src/bin/usb_hs.rs b/src/bin/usb_hs.rs new file mode 100644 index 0000000..12937cb --- /dev/null +++ b/src/bin/usb_hs.rs @@ -0,0 +1,157 @@ +#![feature(noop_waker)] +#![no_std] +#![no_main] +#![feature(type_alias_impl_trait)] + +use core::default::Default; +use core::panic::PanicInfo; + +use defmt_rtt as _; +use embassy_executor::Spawner; +use embassy_usb::{ + class::cdc_acm::{CdcAcmClass, State}, + driver::EndpointError, + Builder, +}; +use futures::future::join; +// use stm32_metapac; + +use u5_lib::{pwr::vddusb_monitor_up, usb_otg_hs::mod_new::{power_up_init, setup_process}, *}; + +// define defmt format +#[derive(defmt::Format)] +pub enum UsbError { + BufferOverflow, + Disabled, +} + +const GREEN: gpio::GpioPort = gpio::PB7; + +#[embassy_executor::main] +async fn main(spawner: Spawner) { + clock::init_clock(false, true, true, clock::ClockFreqs::KernelFreq160Mhz); + low_power::no_deep_sleep_request(); + GREEN.setup(); + // low_power::no_deep_sleep_request(); + // mcu_no_deep_sleep(); + defmt::info!("setup led finished!"); + // spawner.spawn(btn()).unwrap(); + // spawner.spawn(pwr::vddusb_monitor_up()).unwrap(); + // spawner.spawn(usb_task()).unwrap(); + // use some delay to wait for usb power up + pwr::vddusb_monitor_up_tmp(); + power_up_init(); + defmt::info!("vddusb monitor finished!"); + // + + spawner.spawn( setup_process()).unwrap(); + + + defmt::info!("usb init finished!"); + loop { + exti::EXTI13_PC13.wait_for_raising().await; + GREEN.toggle(); + } +} + +#[panic_handler] +fn panic(_info: &PanicInfo) -> ! { + defmt::info!("panic"); + defmt::error!( + "Location file name: {:?}, line: {:?}, col: {:?}", + _info.location().unwrap().file(), + _info.location().unwrap().line(), + _info.location().unwrap().column() + ); + + loop {} +} + +#[embassy_executor::task] +pub async fn usb_task() { + let _ep_out_buffer = [0u8; 256]; + let mut config = usb_otg_hs::Config::default(); + config.vbus_detection = false; + let driver = usb_otg_hs::Driver::new(config, gpio::USB_DM_PA11, gpio::USB_DP_PA12); + + // // Create embassy-usb Config + let mut config = embassy_usb::Config::new(0xaaaa, 0xefba); + config.manufacturer = Some("ggeta"); + config.product = Some("USB-serial example"); + config.serial_number = Some("12345678"); + + config.device_class = 0xEF; + config.device_sub_class = 0x02; + config.device_protocol = 0x01; + config.composite_with_iads = true; + + let mut device_descriptor = [0; 512]; + let mut config_descriptor = [0; 512]; + let mut bos_descriptor = [0; 512]; + let mut control_buf = [0; 64]; + let mut msos_descriptor = [0; 512]; + + let mut state = State::new(); + // USART1.send("starting usb task new!\n\n".as_bytes()); + + let mut builder = Builder::new( + driver, + config, + &mut device_descriptor, + &mut config_descriptor, + &mut bos_descriptor, + &mut msos_descriptor, + &mut control_buf, + ); + + let mut class = CdcAcmClass::new(&mut builder, &mut state, 64); + // USART1.send("declare class success!\n".as_bytes()); + // Build the builder. + let mut usb = builder.build(); + // USART1.send("success!\n".as_bytes()); + let usb_fut = usb.run(); // Run the USB device. + let handler_fut = async { + loop { + class.wait_connection().await; + defmt::info!("connected"); + let _ = usb_handler(&mut class).await; + defmt::info!("disconnected"); + } + }; + // USART1.send("start usb task success!\n".as_bytes()); + join(usb_fut, handler_fut).await; // Run everything concurrently. +} + +struct Disconnected {} + +impl From for Disconnected { + fn from(val: EndpointError) -> Self { + match val { + EndpointError::BufferOverflow => panic!("Buffer overflow"), + EndpointError::Disabled => Disconnected {}, + } + } +} + +async fn usb_handler<'d>( + class: &mut CdcAcmClass<'d, usb_otg_hs::Driver>, +) -> Result<(), Disconnected> { + let mut buf: [u8; 128] = [0; 128]; + // the maximum size of the command is 64 bytes + defmt::info!("start usb handler"); + loop { + // select(future1, future2) + let ret = class.read_packet(&mut buf).await; + match ret { + Ok(n) => { + defmt::info!("read {} bytes", n); + class.write_packet(&buf[0..n]).await.unwrap(); + } + Err(e) => { + defmt::info!("error: {:?}", e); + return Err(e.into()); + } + } + // class.write_packet(&buf[0..n]).await.unwrap(); + } +} diff --git a/src/main.rs b/src/main.rs index 191cf09..c01a7f9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -220,7 +220,7 @@ fn set_dcmi() -> dcmi::DcmiPort { #[task] async fn async_main(spawner: Spawner) { // clock::init_clock(true, false, clock::ClockFreqs::KernelFreq4Mhz); - clock::init_clock(false, true, true, clock::ClockFreqs::KernelFreq160Mhz); + // clock::init_clock(false, true, true, clock::ClockFreqs::KernelFreq160Mhz); // cam_down.set_high(); delay_ms(200); let green = setup_led(); @@ -332,9 +332,9 @@ async fn btn() { #[embassy_executor::task] pub async fn usb_task() { let _ep_out_buffer = [0u8; 256]; - let mut config = usb_otg::Config::default(); + let mut config = usb_otg_hs::Config::default(); config.vbus_detection = false; - let driver = usb_otg::Driver::new(config, gpio::USB_DM_PA11, gpio::USB_DP_PA12); + let driver = usb_otg_hs::Driver::new(config, gpio::USB_DM_PA11, gpio::USB_DP_PA12); // // Create embassy-usb Config let mut config = embassy_usb::Config::new(0xaaaa, 0xefba); @@ -399,7 +399,7 @@ const IMG_SIZE: u32 = 2000; // 2000 block = 2000 * 512 = 1M const SIZE_BLOCK: u32 = 1; // first block store the number of image files -async fn usb_handler<'d>(class: &mut CdcAcmClass<'d, usb_otg::Driver>) -> Result<(), Disconnected> { +async fn usb_handler<'d>(class: &mut CdcAcmClass<'d, usb_otg_hs::Driver>) -> Result<(), Disconnected> { let mut in_buf: [u8; 128] = [0; 128]; // the maximum size of the command is 64 bytes diff --git a/tmp.log b/tmp.log new file mode 100755 index 0000000..172b214 --- /dev/null +++ b/tmp.log @@ -0,0 +1,231 @@ +ffff9f802a787a40 690792870 S Ci:3:067:0 s 80 06 0100 0000 0012 18 < +ffff9f802a787a40 690795417 C Ci:3:067:0 0 18 = 12011001 02000040 34127856 00020102 0301 +ffff9f802a787a40 690795431 S Ci:3:067:0 s 80 06 0200 0000 0009 9 < +ffff9f802a787a40 690799416 C Ci:3:067:0 0 9 = 09024b00 02010080 32 +ffff9f802a787a40 690799424 S Ci:3:067:0 s 80 06 0200 0000 004b 75 < +ffff9f802a787a40 690803415 C Ci:3:067:0 0 75 = 09024b00 02010080 32080b00 02020201 00090400 00010202 01000524 00100105 +ffff9f802a787e00 690803427 S Ci:3:067:0 s 80 06 0300 0000 00ff 255 < +ffff9f802a787e00 690807416 C Ci:3:067:0 0 4 = 04030904 +ffff9f802a787e00 690807422 S Ci:3:067:0 s 80 06 0302 0409 00ff 255 < +ffff9f802a787e00 690811416 C Ci:3:067:0 0 38 = 26035500 53004200 20004500 78006100 6d007000 6c006500 20004400 65007600 +ffff9f802a787e00 690811425 S Ci:3:067:0 s 80 06 0301 0409 00ff 255 < +ffff9f802a787e00 690815416 C Ci:3:067:0 0 12 = 0c034700 47004500 54004100 +ffff9f802a787e00 690815425 S Ci:3:067:0 s 80 06 0303 0409 00ff 255 < +ffff9f802a787e00 690819415 C Ci:3:067:0 0 14 = 0e033100 32003300 34003500 3600 +ffff9f802a787e00 690855564 S Co:3:067:0 s 00 09 0001 0000 0000 0 +ffff9f802a787e00 690856537 C Co:3:067:0 0 0 +ffff9f802a7866c0 690856587 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 80250000 000008 +ffff9f802a7866c0 690860412 C Co:3:067:0 0 7 > +ffff9f802a787e00 691476571 S Ii:3:067:1 -115:8 64 < +ffff9f802a7863c0 691476585 S Bi:3:067:2 -115 128 < +ffff9f802a786000 691476587 S Bi:3:067:2 -115 128 < +ffff9f802a787680 691476589 S Bi:3:067:2 -115 128 < +ffff9f802a786d80 691476591 S Bi:3:067:2 -115 128 < +ffff9f802a787c80 691476593 S Bi:3:067:2 -115 128 < +ffff9f802a786240 691476595 S Bi:3:067:2 -115 128 < +ffff9f802a787080 691476597 S Bi:3:067:2 -115 128 < +ffff9f802a787800 691476599 S Bi:3:067:2 -115 128 < +ffff9f802a786780 691476601 S Bi:3:067:2 -115 128 < +ffff9f802a786fc0 691476603 S Bi:3:067:2 -115 128 < +ffff9f802a786b40 691476605 S Bi:3:067:2 -115 128 < +ffff9f802a786480 691476608 S Bi:3:067:2 -115 128 < +ffff9f802a786c00 691476610 S Bi:3:067:2 -115 128 < +ffff9f802a787500 691476612 S Bi:3:067:2 -115 128 < +ffff9f802a786300 691476614 S Bi:3:067:2 -115 128 < +ffff9f802a787bc0 691476616 S Bi:3:067:2 -115 128 < +ffff9f7e7e7eb680 691476621 S Co:3:067:0 s 21 22 0003 0000 0000 0 +ffff9f802a7863c0 695583608 C Bi:3:067:2 -32 0 +ffff9f7e7e7eb680 695583644 C Co:3:067:0 -32 0 +ffff9f7e7e7eb680 695583681 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 00c20100 000008 +ffff9f802a786000 695583683 C Bi:3:067:2 -2 0 +ffff9f802a787e00 695583725 C Ii:3:067:1 -32:8 0 +ffff9f802a787e00 695583726 S Ii:3:067:1 -115:8 64 < +ffff9f802a787680 695583759 C Bi:3:067:2 -2 0 +ffff9f802a786d80 695583877 C Bi:3:067:2 -2 0 +ffff9f802a787c80 695583926 C Bi:3:067:2 -2 0 +ffff9f7e7e7eb680 695583967 C Co:3:067:0 -71 0 +ffff9f7e7e7eb680 695583997 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 00093d00 000008 +ffff9f802a786240 695584037 C Bi:3:067:2 -2 0 +ffff9f802a787080 695584115 C Bi:3:067:2 -2 0 +ffff9f802a787800 695584194 C Bi:3:067:2 -2 0 +ffff9f802a786780 695584274 C Bi:3:067:2 -2 0 +ffff9f802a786fc0 695584352 C Bi:3:067:2 -2 0 +ffff9f802a786b40 695584432 C Bi:3:067:2 -2 0 +ffff9f802a786480 695584511 C Bi:3:067:2 -2 0 +ffff9f802a786c00 695584594 C Bi:3:067:2 -2 0 +ffff9f7e7e7eb680 695584633 C Co:3:067:0 -71 0 +ffff9f7e7e7eb680 695584646 S Co:3:067:0 s 21 20 0000 0000 0007 7 = 00c20100 000008 +ffff9f802a787500 695584710 C Bi:3:067:2 -2 0 +ffff9f802a786300 695584790 C Bi:3:067:2 -2 0 +ffff9f802a787bc0 695584869 C Bi:3:067:2 -2 0 +ffff9f802a786e40 695584872 S Co:3:067:0 s 02 01 0000 0082 0000 0 +ffff9f7e7e7eb680 695585029 C Co:3:067:0 -71 0 +ffff9f7e7e7eb680 695585052 S Co:3:067:0 s 21 22 0002 0000 0000 0 +ffff9f802a786e40 695587486 C Co:3:067:0 -71 0 +ffff9f802a7863c0 695587489 S Bi:3:067:2 -115 128 < +ffff9f802a786000 695587491 S Bi:3:067:2 -115 128 < +ffff9f802a787680 695587492 S Bi:3:067:2 -115 128 < +ffff9f802a786d80 695587494 S Bi:3:067:2 -115 128 < +ffff9f802a787c80 695587496 S Bi:3:067:2 -115 128 < +ffff9f802a786240 695587498 S Bi:3:067:2 -115 128 < +ffff9f802a787080 695587500 S Bi:3:067:2 -115 128 < +ffff9f802a787800 695587501 S Bi:3:067:2 -115 128 < +ffff9f802a786780 695587503 S Bi:3:067:2 -115 128 < +ffff9f802a786fc0 695587505 S Bi:3:067:2 -115 128 < +ffff9f802a786b40 695587506 S Bi:3:067:2 -115 128 < +ffff9f802a786480 695587508 S Bi:3:067:2 -115 128 < +ffff9f802a786c00 695587509 S Bi:3:067:2 -115 128 < +ffff9f802a787500 695587512 S Bi:3:067:2 -115 128 < +ffff9f802a786300 695587513 S Bi:3:067:2 -115 128 < +ffff9f802a787bc0 695587515 S Bi:3:067:2 -115 128 < +ffff9f802a7863c0 695587605 C Bi:3:067:2 -71 0 +ffff9f7e7e7eb680 695588155 C Co:3:067:0 -71 0 +ffff9f802a786000 695588156 C Bi:3:067:2 -71 0 +ffff9f802a787680 695588900 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695589030 C Co:3:004:0 0 0 +ffff9f802a7866c0 695589072 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786d80 695589149 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695589280 C Co:3:004:0 0 0 +ffff9f802a7866c0 695589322 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a787c80 695589400 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695589530 C Co:3:004:0 0 0 +ffff9f802a7866c0 695589575 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786240 695589649 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695589781 C Co:3:004:0 0 0 +ffff9f802a7866c0 695589823 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a787080 695589899 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695590030 C Co:3:004:0 0 0 +ffff9f802a7866c0 695590073 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a787800 695590150 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695590280 C Co:3:004:0 0 0 +ffff9f802a7866c0 695590323 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786780 695590401 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695590530 C Co:3:004:0 0 0 +ffff9f802a7866c0 695590573 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786fc0 695590650 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695590780 C Co:3:004:0 0 0 +ffff9f802a7866c0 695590822 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786b40 695590900 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695591030 C Co:3:004:0 0 0 +ffff9f802a7866c0 695591072 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786480 695591150 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695591280 C Co:3:004:0 0 0 +ffff9f802a7866c0 695591322 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786c00 695591400 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695591439 C Co:3:004:0 0 0 +ffff9f802a7866c0 695591481 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a787500 695591559 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695591560 C Co:3:004:0 0 0 +ffff9f802a7866c0 695591601 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a786300 695591680 C Bi:3:067:2 -71 0 +ffff9f802a7866c0 695591681 C Co:3:004:0 0 0 +ffff9f802a787e00 695591760 C Ii:3:067:1 -32:8 0 +ffff9f802a787e00 695591761 S Ii:3:067:1 -115:8 64 < +ffff9f802a7866c0 695591765 S Co:3:004:0 s 23 08 9052 0001 0000 0 +ffff9f802a7866c0 695591799 C Co:3:004:0 0 0 +ffff9f802a787bc0 695591838 C Bi:3:067:2 -71 0 +ffff9f802a787e00 695599736 C Ii:3:067:1 -32:8 0 +ffff9f802a787e00 695599738 S Ii:3:067:1 -115:8 64 < +ffff9f802a787e00 695607736 C Ii:3:067:1 -32:8 0 +ffff9f802a787e00 695607737 S Ii:3:067:1 -115:8 64 < +ffff9f802a787e00 695615736 C Ii:3:067:1 -32:8 0 +ffff9f802a787e00 695615737 S Ii:3:067:1 -115:8 64 < +ffff9f802a787e00 695623736 C Ii:3:067:1 -32:8 0 +ffff9f802a787e00 695623737 S Ii:3:067:1 -115:8 64 < +ffff9f7e456ea0c0 695623911 C Ii:3:004:1 0:2048 1 = 04 +ffff9f7e456ea0c0 695623915 S Ii:3:004:1 -115:2048 1 < +ffff9f802a7866c0 695623923 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a7866c0 695624156 C Ci:3:004:0 0 4 = 00010100 +ffff9f802a7866c0 695624159 S Co:3:004:0 s 23 01 0010 0002 0000 0 +ffff9f802a7866c0 695624405 C Co:3:004:0 0 0 +ffff9f802a787e00 695624512 C Ii:3:067:1 -108:8 0 +ffff9f802a787bc0 695655522 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695655783 C Ci:3:004:0 0 4 = 00010000 +ffff9f802a787bc0 695689530 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695689783 C Ci:3:004:0 0 4 = 00010000 +ffff9f802a787bc0 695726198 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695726410 C Ci:3:004:0 0 4 = 01010100 +ffff9f802a787bc0 695726416 S Co:3:004:0 s 23 01 0010 0002 0000 0 +ffff9f802a787bc0 695726656 C Co:3:004:0 0 0 +ffff9f802a787bc0 695759536 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695759785 C Ci:3:004:0 0 4 = 01010000 +ffff9f802a787bc0 695792872 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695793035 C Ci:3:004:0 0 4 = 01010000 +ffff9f802a787bc0 695826195 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695826408 C Ci:3:004:0 0 4 = 01010000 +ffff9f802a787bc0 695859527 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695859783 C Ci:3:004:0 0 4 = 01010000 +ffff9f802a787bc0 695859846 S Co:3:004:0 s 23 03 0004 0002 0000 0 +ffff9f802a787bc0 695860031 C Co:3:004:0 0 0 +ffff9f802a787bc0 695876196 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695876408 C Ci:3:004:0 0 4 = 11010000 +ffff9f7e456ea0c0 695879908 C Ii:3:004:1 0:2048 1 = 04 +ffff9f7e456ea0c0 695879911 S Ii:3:004:1 -115:2048 1 < +ffff9f802a787bc0 695892862 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 695893033 C Ci:3:004:0 0 4 = 03011000 +ffff9f802a787bc0 695893037 S Co:3:004:0 s 23 01 0014 0002 0000 0 +ffff9f802a787bc0 695893281 C Co:3:004:0 0 0 +ffff9f802a787bc0 696049558 S Ci:3:000:0 s 80 06 0100 0000 0040 64 < +ffff9f802a787bc0 696052417 C Ci:3:000:0 0 18 = 12011001 02000040 34127856 00020102 0301 +ffff9f802a787bc0 696052421 S Co:3:004:0 s 23 03 0004 0002 0000 0 +ffff9f802a787bc0 696052656 C Co:3:004:0 0 0 +ffff9f802a787bc0 696066192 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 696066408 C Ci:3:004:0 0 4 = 11010000 +ffff9f802a787bc0 696082860 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 696083032 C Ci:3:004:0 0 4 = 03011000 +ffff9f802a787bc0 696083036 S Co:3:004:0 s 23 01 0014 0002 0000 0 +ffff9f802a787bc0 696083281 C Co:3:004:0 0 0 +ffff9f802a787bc0 696259527 S Ci:3:068:0 s 80 06 0100 0000 0012 18 < +ffff9f802a787bc0 696259666 C Ci:3:068:0 -32 0 +ffff9f802a787bc0 696259670 S Ci:3:068:0 s 80 06 0100 0000 0012 18 < +ffff9f802a787bc0 696259805 C Ci:3:068:0 -32 0 +ffff9f802a787bc0 696259809 S Ci:3:068:0 s 80 06 0100 0000 0012 18 < +ffff9f802a787bc0 696259945 C Ci:3:068:0 -32 0 +ffff9f802a787bc0 696259953 S Co:3:004:0 s 23 01 0001 0002 0000 0 +ffff9f802a787bc0 696260031 C Co:3:004:0 0 0 +ffff9f802a787bc0 696260133 S Co:3:004:0 s 23 03 0004 0002 0000 0 +ffff9f802a787bc0 696260281 C Co:3:004:0 0 0 +ffff9f802a787bc0 696276192 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 696276408 C Ci:3:004:0 0 4 = 11010000 +ffff9f802a787bc0 696292862 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 696293033 C Ci:3:004:0 0 4 = 03011000 +ffff9f802a787bc0 696293036 S Co:3:004:0 s 23 01 0014 0002 0000 0 +ffff9f802a787bc0 696293280 C Co:3:004:0 0 0 +ffff9f802a787bc0 696449565 S Ci:3:000:0 s 80 06 0100 0000 0040 64 < +ffff9f802a787bc0 696452419 C Ci:3:000:0 0 18 = 12011001 02000040 34127856 00020102 0301 +ffff9f802a787bc0 696452425 S Co:3:004:0 s 23 03 0004 0002 0000 0 +ffff9f802a787bc0 696452657 C Co:3:004:0 0 0 +ffff9f802a787bc0 696466197 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 696466410 C Ci:3:004:0 0 4 = 11010000 +ffff9f802a787bc0 696482862 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a787bc0 696483034 C Ci:3:004:0 0 4 = 03011000 +ffff9f802a787bc0 696483040 S Co:3:004:0 s 23 01 0014 0002 0000 0 +ffff9f802a787bc0 696483282 C Co:3:004:0 0 0 +ffff9f7e455f09c0 696529582 S Bo:3:005:3 -115 31 = 55534243 01090000 00000000 00000600 00000000 00000000 00000000 000000 +ffff9f7e455f09c0 696529602 C Bo:3:005:3 0 31 > +ffff9f7e455f09c0 696529611 S Bi:3:005:3 -115 13 < +ffff9f7e455f09c0 696529640 C Bi:3:005:3 0 13 = 55534253 01090000 00000000 00 +ffff9f802a787bc0 696656208 S Ci:3:069:0 s 80 06 0100 0000 0012 18 < +ffff9f802a787bc0 696658422 C Ci:3:069:0 0 18 = 12011001 02000040 34127856 00020102 0301 +ffff9f802a787bc0 696658436 S Ci:3:069:0 s 80 06 0200 0000 0009 9 < +ffff9f802a787bc0 696662418 C Ci:3:069:0 0 9 = 09024b00 02010080 32 +ffff9f802a787bc0 696662425 S Ci:3:069:0 s 80 06 0200 0000 004b 75 < +ffff9f802a787bc0 696665420 C Ci:3:069:0 0 75 = 09024b00 02010080 32080b00 02020201 00090400 00010202 01000524 00100105 +ffff9f802a786300 696665433 S Ci:3:069:0 s 80 06 0300 0000 00ff 255 < +ffff9f802a786300 696669418 C Ci:3:069:0 0 4 = 04030904 +ffff9f802a786300 696669425 S Ci:3:069:0 s 80 06 0302 0409 00ff 255 < +ffff9f802a786300 696672420 C Ci:3:069:0 0 38 = 26035500 53004200 20004500 78006100 6d007000 6c006500 20004400 65007600 +ffff9f802a786300 696672431 S Ci:3:069:0 s 80 06 0301 0409 00ff 255 < +ffff9f802a786300 696676418 C Ci:3:069:0 0 12 = 0c034700 47004500 54004100 +ffff9f802a786300 696676426 S Ci:3:069:0 s 80 06 0303 0409 00ff 255 < +ffff9f802a786300 696680422 C Ci:3:069:0 0 14 = 0e033100 32003300 34003500 3600 +ffff9f802a786300 696743567 S Co:3:069:0 s 00 09 0001 0000 0000 0 +ffff9f802a786300 696744541 C Co:3:069:0 0 0 +ffff9f802a786e40 696744602 S Co:3:069:0 s 21 20 0000 0000 0007 7 = 80250000 000008 +ffff9f802a786e40 696748416 C Co:3:069:0 0 7 > +ffff9f802a786e40 696748604 S Ci:3:004:0 s a3 00 0000 0002 0004 4 < +ffff9f802a786e40 696748783 C Ci:3:004:0 0 4 = 03010000 +ffff9f7e455f09c0 698662926 S Bo:3:005:3 -115 31 = 55534243 02090000 00000000 00000600 00000000 00000000 00000000 000000 +ffff9f7e455f09c0 698662953 C Bo:3:005:3 0 31 > +ffff9f7e455f09c0 698662963 S Bi:3:005:3 -115 13 < +ffff9f7e455f09c0 698662988 C Bi:3:005:3 0 13 = 55534253 02090000 00000000 00